# Set up Kaptain (the first-run wizard)

Seven steps, in your browser, once. Nothing is a lock-in — everything is changeable later in Settings. Hover any (i) for a plain-words explanation.

## 1. Account
Tabs: Sign in / Create account; Forgot password?; 2FA asks its 6-digit code; Continue with Google/GitHub appear when offered. No skip — an account is required (the trial stays free, card-free). Signing in enrolls the device certificate automatically — a release build starts entitled. Passwords 12+ chars.
Email verification is separate: a new account works immediately, but the free trial won't start for an unverified address — verify, then press the button again. Paid licences unaffected.

## 2. Plan
Shows exactly one of: Start Free Trial (3 days, no card, clock starts on press) / Continue Free Trial (days left) / License active / Trial expired. "Have a license key?" reveals the key field (already visible on an expired machine). Buttons stay disabled until the licence probe answers. Trial binds to the device — reinstalling doesn't restart it. NOTE: pasting a licence key alone does NOT certify the device — signing in or `kaptain device register` does. See https://chynj.ca/kaptain/docs/how-to/fix-402/

## 3. Models
Detects GPU, Ollama (installed/running), llama.cpp + GGUF files, Claude/Codex CLIs + sign-in state. Uninstalled runtimes can't be selected; Claude/Codex checkboxes are mutually exclusive here; the pick becomes the default provider (changeable in Settings). Rules of thumb: an already-used CLI is the lightest start; 4B local ~8 GB RAM, 12B ~16 GB. Full guide: https://chynj.ca/kaptain/docs/how-to/models/

## 4. Install
Kaptain installs user-space things only: Ollama MODELS (real pulls), llama.cpp (built for your GPU — needs git + cmake), portable Git on Windows. It detects but refuses to install Ollama itself (you get the per-OS command); it will auto-START an installed Ollama. Failures show the real reason.

## 5. Project folder
The folder Kaptain works inside — reads, plans, edits THERE only. Blank field is refused. Adds `.planning/` (context + task board); never overwrites an existing one.

## 6. Network
- Local only (preselected): binds 127.0.0.1 — nothing off the machine connects.
- Tailscale: binds your tailnet address for phone/other devices. Guide: https://chynj.ca/kaptain/docs/how-to/tailscale/
Exactly two choices — plain LAN/public binds are refused by the binary; unrecognised values fall back to Local only (Settings calls it "Localhost only").

## 7. Done — the access code
Shows your device access code (`chynj_...`) ONCE, labelled save-it-now, with Copy and the true connect address. Every browser/phone signs in with it. Lost it? `kaptain device register` on the machine mints a fresh one (paired devices re-pair once).

Send one small chat message before scheduling anything.

## Re-running setup
Setup is complete only when the wizard finishes. Revisit deliberately at `/?force_setup=1`, or use Settings.
