General Input
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.json

Output (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.json

Switch later with geni workspace switch <slug>.

Flags

FlagNotes
--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

CodeMeaning
0Authenticated successfully
1User cancelled / declined in the browser
2Approval timeout (no response within 10 minutes)
125Network or server error

On this page