Auth
geni login
One-time browser auth that pairs the CLI with the operator's General Input account.
geni login [flags]Opens the operator's browser to a one-time approval page (device-code flow), mints a runner-session token on approval, and stores it in ~/.config/geni/runner-session.json. If the account belongs to multiple workspaces, prompts to pick one as the active workspace.
After this, every subsequent geni exec, geni credential, geni integration invocation talks to the cloud as the operator, in the active workspace's context.
Output (single workspace)
Opening https://generalinput.com/cli/login?code=A4B2-9F1C
↳ approve in your browser
✓ Authenticated as jack@generalinput.com
✓ Active workspace: acme (Acme Inc.)
✓ Session saved to ~/.config/geni/runner-session.jsonOutput (multiple workspaces, interactive)
✓ Authenticated as jack@generalinput.com
Your account belongs to 3 workspaces:
1. acme Acme Inc. admin
2. personal Personal owner
3. client-co ClientCo (consulting) member
Pick a workspace to start in [1]: 2
✓ Active workspace: personal (Personal)
✓ Session saved to ~/.config/geni/runner-session.jsonSwitch later with geni workspace switch <slug>.
Flags
| Flag | Notes |
|---|---|
--workspace <slug> | Skip the workspace prompt; set the active workspace to this slug directly. Useful in non-interactive setups. |
--server <url> | Override the API base URL. Default reads from $GENI_API_URL, then falls back to https://cloud.generalinput.com. Useful for self-hosted or staging. The flag takes precedence over the env var. |
Notes
- The session is runner-scoped — it can resolve the operator's credentials and run shell commands on their behalf. It cannot create or edit anything in their account.
- Device-code flow works in any environment, including remote ssh and CI sessions where there's no usable localhost callback.
Exit codes
| Code | Meaning |
|---|---|
0 | Authenticated successfully |
1 | User cancelled / declined in the browser |
2 | Approval timeout (no response within 10 minutes) |
125 | Network or server error |