Overview
3xcode ui starts a local web server and opens it in your default browser. It is a visual alternative to the CLI and interactive shell for the same underlying operations: creating a batch, running a single or bulk conversion, tracking progress, and browsing output. It reads and writes the same workspace and session data the CLI uses, so a batch started in one shows up correctly in the other.
It is not a hosted product. Beyond the same authenticated calls the CLI already makes (login, license and quota checks, conversion), it doesn't sync anything to the cloud on its own: your source SQL, generated PySpark, and session history stay on your machine, and, exactly like the CLI, conversion itself calls your configured AI provider directly rather than routing through 3XDE's servers.
Launching the UI
# Launch on the default port (3210) 3xcode ui # Launch on a custom port 3xcode ui --port 8080
| Flag | Default | Purpose |
|---|---|---|
--port | 3210 | Port the local web server listens on |
The command starts a local server and, after a short delay, opens http://localhost:3210 (or your chosen port) in your default browser. Leave the terminal running: closing it stops the server.
The Batch Creation Wizard
Starting a batch from the browser walks you through three steps, the same batch lifecycle as the CLI's batch create / seal / run, without needing to remember the commands.
Upload Files
Drop in the .sql files for this batch, or point at files already in your workspace.
Configure
Set a worker ceiling and an optional model override before running.
Convert
Seals the batch and runs it, with live progress from the moment it starts.
Upload Files
Add one file for a quick single-file conversion, or many for a batch. This is the browser equivalent of batch create --dir.
Configure
The worker field sets a ceiling adaptive tuning is allowed to grow to, not a fixed count, same as -w on the CLI. Leave it at auto unless you have a reason to cap it.
Batch Cards & Live Dashboard
The Sessions page lists every batch as a card, collapsed by default: done/total file counts, a failed count, and a confidence-distribution bar so you can see the shape of a batch's quality without opening it. Expand a card for the full per-file table.
Confidence-distribution bar
Each batch card shows a bar segmented by confidence band (Low / Medium / High / Perfect), the same bands used in the CLI's BATCH_SUMMARY.md report, updating live as files complete.
Filter chips
Narrow the list by batch state (running, completed, failed, ...) or by confidence band, using chip toggles above the card list. Clear a chip to widen the view again.
Progress updates live while a batch runs, no manual refreshing needed, with a polling fallback if the live connection ever drops.
Session & batch actions
| Action | What it does | CLI equivalent |
|---|---|---|
| Create | Start a new session, or a new batch inside one | session create / batch create |
| Resume | Continue an interrupted or partially-completed batch | batch resume |
| Pause / Cancel | Pause a running batch, or cancel it cleanly | batch pause / batch cancel |
| Per-file detail | Drill into a batch card to see individual file status, cost, duration, and errors | session info |
The Rest of the Sidebar
Dashboard
Landing page after login: account and plan status, a usage ring chart (confidence, success rate, cost this month), and your active provider (BYOK vs platform key).
Files
Browse and download converted output for any completed batch, and browse the source files already in your active workspace.
Workspaces
Set up, switch, initialize, or delete local workspaces, with a native directory browser for picking a folder.
Settings
App configuration, BYOK provider key entry and testing, and provider auto-detection.
Help
In-app reference for getting unstuck without leaving the browser.
Cross-cutting elements
Your account profile and plan usage, a theme toggle (light/dark/auto), and a responsive sidebar all appear throughout rather than as their own page.
Local-Only by Design
127.0.0.1 Only
The server binds to your local machine. It is not exposed to your network or the internet.
Single-User
Built for one developer working locally. There is no multi-user login screen or shared team session.
Data flow matches the CLI
Source SQL is read from and written to your workspace directory. Conversion sends it directly to your configured AI provider, the same as the CLI, never to 3XDE's servers.
Login & Session Cookie
The UI does not have its own login form. It relies on the same credentials as the CLI: if you're not logged in, the UI shows an auth gate banner: "Not logged in. Run 3xcode login in your terminal to get started." This stays until you authenticate from a terminal.
Each time you run 3xcode ui, a fresh session cookie is minted for that launch. If you restart the server while a browser tab from a previous launch is still open, that tab can get stuck failing every request with a 403 because it's serving a cached page tied to the old cookie. Hard-refresh or reopen the tab after restarting 3xcode ui to pick up the new session.