Working on an Anvil app from Cursor (or any external editor) usually means copy-pasting Python into the Server Console and pasting the result back. I kept doing that enough times to build a small CLI that removes the round-trip.
[anvil-uplink-cli](https://github.com/matshoppenbrouwers/anvil-uplink-cli) wraps anvil-uplink so you can, from your shell:
- list tables and schemas (
anvil-bridge tables) - query a Data Table (
anvil-bridge query projects --filter status=open --limit 5) - invoke a
@anvil.server.callable(anvil-bridge call my_fn arg1 arg2) - run a local script with the uplink pre-connected (
anvil-bridge run ./diag.py) - drop into a REPL with
anvil,anvil.server, andapp_tableslive
It’s a runtime tool, not a source-sync tool — complementary to the official anvil CLI (checkout/watch), not a replacement. Use both.
Other bits: multi-app profiles, OS-keyring or .env key storage, pretty/JSON output for rows, Media, datetimes, and portable classes. There’s also an “agent-safe” mode where the Server Uplink key stays in a gitignored .env and never touches a tool call — nice for anyone driving Anvil apps from Claude Code or similar.
Early alpha, install via pip install git+.... Would love feedback from anyone who’s been living in the Server Console — especially on the command surface and what’s missing.