Authentication

IsonForge authenticates against isonai.net and stores a long-lived API key locally.

Login

isonforge auth login

This opens a browser to https://www.isonai.net/forge/auth?session=<id> where you sign in with your IsonAI account. After approval, your terminal exchanges the session for an API key and saves it to ~/.isonforge/config.json with file mode 0600.

Polling timeout is 5 minutes. If the browser doesn't open automatically, copy the printed URL.

Headless / SSH / CI

If no browser is reachable, fall back to manual entry:

isonforge auth login --manual

The prompt accepts the API key string you've generated elsewhere (Dashboard at isonai.net/dashboard -> API keys). Input is hidden.

For long-lived CI use, generate a key via the dashboard and either:

# GitHub Actions example
env:
  ISONFORGE_API_KEY: ${{ secrets.ISONFORGE_API_KEY }}
run: isonforge -p --output-format json "review the diff" < diff.patch

Check status

isonforge auth status

Prints the key prefix (isonforge_sk_...) and the API endpoint. Exits 0 if logged in, 1 if not. Useful in scripts:

isonforge auth status || isonforge auth login --manual

Logout

isonforge auth logout

Deletes the key from ~/.isonforge/config.json. Session files remain (delete ~/.isonforge/sessions/ if you want them gone too).

Key format

IsonForge API keys are 64-char hex strings prefixed isonforge_sk_. Treat them as bearer secrets - never commit, never log, never share. Rotate from the dashboard if a key leaks.

Environment override

ISONFORGE_API_KEY always wins over ~/.isonforge/config.json. Use for ephemeral overrides:

ISONFORGE_API_KEY=isonforge_sk_xxxxx isonforge -p "task"

Endpoint override

By default IsonForge talks to https://www.isonai.net. Self-hosted gateways override via the api_base field in ~/.isonforge/config.json:

{
  "api_base": "https://forge.your-domain.com",
  "api_key": "isonforge_sk_..."
}