AMX Studio¶
AMX Studio is the local web UI that mirrors the CLI in a browser. It runs on
127.0.0.1, opens automatically when you type /studio, and exposes the same
human-in-the-loop workflow the REPL drives — browse, run, review, apply,
audit — alongside Studio-only conveniences like the per-row pinned-cells
drawer, the live-cost progress card, and the keyboard command palette.
Studio is not a separate service. It boots in-process from /studio,
binds to the loopback interface only, and tears down when the REPL exits.
Two Studio tabs are isolated — opening a second browser tab on a different
DB profile never collides with the first.
Launching¶
Flags:
| Flag | Effect |
|---|---|
--port N |
Bind on port N instead of the default 47821. Useful when 47821 is taken |
--no-open |
Don't auto-open the browser. AMX prints the URL and a one-shot bearer token to paste in |
Stop the server with Ctrl-C in the REPL. The next /studio invocation
generates a fresh bearer token, so older browser tabs lose access on restart.
Security model¶
- Loopback only. Studio's HTTP server binds to
127.0.0.1— not0.0.0.0. A coworker on the same network cannot reach it; only processes on this machine can. - One-shot bearer token. Every
/studiolaunch generates a fresh token, embeds it in the auto-opened URL (?t=…), and immediately strips it from the browser address bar. The token lives inlocalStoragefrom there. - No OpenAPI surface.
/docsand/redocare not exposed; Studio's router is treated as an internal surface. - Secret masking. Password / API-key / access-token fields are sent to
the browser as
********. PUTs that resend the masked placeholder are treated as "leave unchanged."
If you need to share Studio with a teammate, use SSH port-forwarding —
never rebind to 0.0.0.0.
What's where¶
| Page | URL | What it covers |
|---|---|---|
| Overview | / and /overview |
Landing card + dashboard with lifetime tokens, USD cost, success rate, recent runs |
| Browse | /db/:profile/… or /cat/:profile/… |
Database → schema → table → column with inline edits and per-asset Generate |
| Runs | /runs |
Filterable list of every /run, /run-apply, /generate, /ask, scheduled run |
| Run detail | /runs/:id |
Summary / Results / Scope / Settings tabs, live progress, ReRun, pinned cells |
| Compare | /runs/compare |
Pick 2–4 runs, side-by-side aggregate metrics, per-column grid, winner rings |
| Ask | /ask |
Multi-profile chat agent with sessions, scope dropdown, focus detection, tool-call trace |
| Pending | /pending |
Review queue with Preview-SQL modal, Apply confirmation, inline edits |
| Audit | /audit |
Day-grouped timeline of every applied change, identity / run / profile filters |
| Settings | /settings |
DB / LLM / Docs / Code profile wizards with test-connection and profile linking |
| System | /system |
Doctor, token-usage windowing, catalog status, team-history toggle, maintenance |
| Schedules | /runs/schedules |
Schedule lifecycle, scope tree, daemon install, review strategy |
| Pricing | /pricing |
Searchable pricing table sourced from LiteLLM + OpenRouter, staleness banner |
| DB cache | /db-cache |
Per-profile cache stats and clear actions |
| Keyboard | — | Command palette (⌘K / Ctrl-K) and other shortcuts |
Responsive¶
Studio is responsive by default — every page is usable on a phone-sized
viewport. Layout breakpoints follow Tailwind's sm:, md:, and lg:
prefixes; DataTables hide non-critical columns on narrow screens via a
hideOnMobile flag; the sidebar collapses to an off-canvas drawer below
md:. See Responsive Studio for the
pattern catalogue.
CLI parity¶
Every workflow available in Studio also works from the REPL. The reverse
isn't quite true — a handful of CLI commands (e.g. /restore-config,
/doctor-style diagnostics) are surfaced only inside the System page or
not exposed at all. Where parity exists, the relevant Studio page links to
the equivalent CLI command(s).