First run is one keypress.

jcode finds the logins you already have, Codex, Claude, Gemini, Copilot, Cursor, and imports them with one press of Import. Below is the complete modeled state space: 12 states, every screen rendered headlessly from the real terminal code.

The happy path: . Everything else on this page is what happens when that path is not available.

login_import · the happy path

Import existing logins

Detected Codex, Claude, Gemini, Copilot, Cursor, OpenCode, and pi credentials are listed read-only with Import preselected. One keypress and onboarding is effectively over.

jcode onboarding listing seven detected logins with Import preselected
Seven detected logins, Import preselected. This is the whole happy path.
jcode onboarding per-login yes and no checkbox list
Import less opens a per-login yes/no list.
jcode onboarding telemetry settings with three levels
Telemetry is a first-class choice on the same screen.
jcode importing detected logins with a progress card
Import runs in place, then advances on its own.

The graph is a tested contract.

The same authored graph ships inside jcode's test suite, which checks it for dead ends, unrecoverable failures, unbounded work, and missing escape hatches. Every screenshot on this page is rendered headlessly from the exact ratatui state the terminal draws, not a mockup.

Read the graph source