Overview
3xcode ui starts a local web server and opens it in your default browser. It gives you a visual alternative to the CLI and interactive shell for the same underlying operations: uploading files, running single or bulk conversions, tracking sessions, and browsing output. It's backed by the same workspace and session data the CLI uses.
It is not a hosted product and does not sync anything to the cloud beyond the same authenticated calls the CLI already makes (login, license validation, conversion). Everything else (your source SQL, your generated PySpark, your session history) stays on your machine.
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. Any active backend announcements are printed to the terminal first. Leave the terminal running: closing it stops the server.
Pages & Features
The UI is a single-page app with a sidebar covering every stage of a conversion, from upload to downloadable output.
Dashboard
Landing page after login: account status and any active platform announcements at a glance.
Convert: Single File
Upload one SQL file and run a conversion with live progress, or fire off a quick detached conversion.
Convert: Bulk
Upload and convert multiple SQL files in a single batch, the same engine behind `3xcode pyspark convert --dir`.
Sessions
List, create, resume, pause, cancel, rename, and delete sessions, with per-file status and a live event stream.
Files
Browse and download converted output, and browse the source files 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 appear throughout the UI rather than as their own page: your account profile and plan usage, a theme toggle (light/dark/auto), and a responsive sidebar for smaller windows.
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.
Your Code Stays Local
Source SQL is read from and written to your workspace directory only. Conversion still requires the same login and license check as the CLI.
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.