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:
- Save it once with
isonforge auth login --manual. - Or set
ISONFORGE_API_KEYin the CI environment (overrides config.json).
# 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_..."
}