Use the Web UI

3xcode ui launches a local, single-user browser workspace for uploading files, running conversions, and tracking sessions. It covers everything the CLI can do, with live progress and a file browser.

Launching the Web UI

The web UI is a local web server the CLI starts on your machine. It is not a hosted app. It's localhost-only and single-user, meant as a friendlier surface over the same workspace/session engine the CLI uses, not a replacement for it.

Terminal
# Launch on the default port (3210)
3xcode ui

# Launch on a different port
3xcode ui --port 8080

Running 3xcode ui opens http://localhost:3210 (or your chosen port) in your default browser after a short delay. Any active backend announcements are printed to the terminal first, then the server starts.

You must be logged in first. If you open the UI without an active session, it shows an auth-gate banner: "Not logged in. Run 3xcode login in your terminal to get started." Run 3xcode login in a terminal, then reload the page.

The Dashboard

The Dashboard is the landing page after login: an at-a-glance view of your account and recent activity. From here, the sidebar gives you every other page: Convert, Sessions, Files, Workspaces, Settings, and Help.

Account & Plan Status

Shows your plan tier, conversions used this month, and license state, pulled live from your account.

Announcements

Any active platform announcements from the 3XDE backend surface here first, same as in the CLI.

Starting a Conversion

The Convert section covers both single-file and batch conversion, the browser equivalent of 3xcode pyspark convert and the batch command group, through a short creation wizard: upload files, configure a worker ceiling and model tier, then convert.

Single File

Upload one .sql file and run it through the pipeline with live progress. A quick, fire-and-forget mode is also available for a single detached run.

Batch Convert

Upload multiple .sql files as a batch: the same batch engine behind 3xcode batch create / seal / run, with adaptive parallel workers under the hood.

Every conversion started from the UI runs the same 5-phase pipeline as the CLI (discovery, planning, conversion, validation, and auto-fix), so results, gotcha detection, and confidence grading are identical to what you'd get from 3xcode pyspark convert. See Web UI for the full feature reference, including batch cards and filter chips.

Monitoring Progress

The Sessions page is a live dashboard: every batch appears as a card with a confidence-distribution bar and done/failed counts, updating in real time as files complete. It mirrors the CLI's 3xcode session and 3xcode batch command groups with a visual layer on top.

Session & batch actions

ActionWhat it doesCLI equivalent
ListSee every session and batch in the current workspace with state, file counts, and cost3xcode session list / 3xcode batch list
CreateStart a new named session, or a new batch inside one3xcode session create / 3xcode batch create
ResumeContinue an interrupted or partially-completed batch3xcode batch resume <session_id> <batch_id>
Pause / CancelPause a running batch, or cancel it cleanly (already-completed files stay completed)3xcode batch pause / 3xcode batch cancel
Rename / DeleteRename a session, or delete its session record and files3xcode session rename / 3xcode session delete

Live Batch Cards

Each batch card shows a confidence-distribution bar and live counts; expand it for a per-file table with phase, status, and worker heartbeat, updating without a manual refresh.

Filter Chips

Narrow the batch list by state or confidence band using chip toggles above the card list, useful once you have more than a couple of batches running or finished.

Browsing Output Files

The Files page lets you browse and download everything a session produced, and also browse the source SQL files already in your active workspace.

Converted Output

Browse generated PySpark modules, audit reports (.md / .json), and per-object reports for any completed session, and download individual files.

Workspace Source Files

Browse the .sql files already present in your workspace's input directory without leaving the browser.

Workspaces & Settings

Two more pages round out the UI: Workspaces and Settings, both browser equivalents of CLI commands you'd otherwise run in the terminal.

Workspaces

Set up, switch, initialize, or delete local workspaces using a native directory browser, instead of typing 3xcode workspace init/switch by hand.

Settings

Configure app settings, enter and test BYOK provider keys (Anthropic, Bedrock, Vertex, Azure Foundry), and see auto-detected provider info.

BYOK keys entered in Settings are stored the same way as 3xcode keys store: locally on your machine, never sent to the 3XDE backend.

Troubleshooting

UI shows "Not logged in" even though I ran 3xcode login in the terminal

The UI mints a fresh session cookie each time 3xcode ui starts. A browser tab left open from before a restart can serve a stale cached page and get stuck failing on every API call. Hard-refresh or close and reopen the UI tab after restarting 3xcode ui.

Conversion prompt is unavailable

Prompts and the knowledge base are served exclusively by the 3XDE backend and are never shipped locally. If both the live fetch and the local cache fail, run 3xcode login, confirm you have network connectivity, and retry the conversion.

Discovery failed for a file

The analysis phase couldn't return a usable object inventory. The file may be malformed or truncated, or the model response failed to parse. Check the input file isn't corrupted or cut off, then retry.

A phase timed out

A pipeline phase exceeded its timeout, usually on a large or very complex file, or under slow network conditions. Retry (this is often transient), or split a very large SQL file into smaller pieces before converting.

AI runtime process failed / connection dropped

The AI runtime exited unexpectedly, or the connection dropped before returning a result. Retry the conversion; if it keeps happening, check the embedded error text for the specific cause (often an auth issue, try 3xcode login again).

No workspace found

The UI couldn't resolve an active workspace. Open the Workspaces page and use the directory browser to switch to an existing workspace, or initialize one from a terminal with 3xcode workspace init <path> --name <name>.