The browser UIยป
A companion to the migration walkthrough: the same pipeline, driven from a page.
The UI is in beta. The CLI is the blessed path (run by hand, or driven by an agent), and it is what every other page here documents.
The UI runs those same commands and can do nothing they cannot, but it is newer and rougher; when something looks wrong, the terminal is the answer.
That is what --beta below consents to, and the page repeats it on first open before it will let you in.
liftoff ui serves a browser UI for the workspace and opens it.
It is a window onto the same migration every other surface drives: the step rail on the left shows where the migration stands and unlocks steps as you reach them, each step carries its own screen (with the embedded walkthrough readable beside it), and every action the page takes runs a real liftoff command under the hood.
Anything the UI can do, the CLI can do; the UI can never do more.
1 | |
--beta is the global consent flag for anything still in beta, and the UI is its first user.
Without it, the command refuses and says so:
1 2 3 4 5 | |
Opening the page asks once more: the first screen states the same thing and will not let you past until you accept it.
The command prints a URL and keeps serving until you stop it (Ctrl-C).
The UI is only reachable from the machine it runs on.
--port picks the port (the default is an ephemeral free one), and --no-browser prints the URL without opening anything.
That's the option for a machine where no browser can open; you open the printed URL yourself.
The URL is a credentialยป
Actions taken in the UI count as you acting: steps that normally stop and ask for a person (approvals, consent to destructive operations) treat a click in the UI the way they treat you running the command in your terminal.
The URL carries the session token that makes that true, so treat it like a password: don't share it, don't paste it anywhere, and don't hand it to an AI agent.
Each run mints a fresh token; stopping liftoff ui invalidates its URL.
People onlyยป
Agents are refused outright; this is the refusal as liftoff ui --output json prints it from inside an agent session:
1 | |
There is no proof token or approval that lifts this: an agent has the whole CLI and needs nothing from the UI. If you are a person and were refused, run the command from a plain terminal rather than from inside an agent session.
Command explorerยป
Beyond the curated screens, the UI lists every liftoff command with a generated form for its flags. New commands appear there automatically; the UI reads the command surface from the binary itself rather than keeping its own copy.