Skip to main content

As a human (TTY)

Interactive prompts handle auth-method choice, credential fields, OAuth browser hand-off, and object selection.

As an agent (piped / non-TTY)

Same commands - but nothing ever blocks. Output is JSON automatically, exit codes are stable, and connect returns resumable gates instead of prompting:
OAuth apps never open a browser for an agent - the gate returns sign_in_url + state to show the user, then engini connect <app> --oauth-state <state> finishes the job. Big results become handles instead of flooding the context window:
And results can come back already shaped for an LLM conversation:
Preview any mutation first with --dry-run; discover any command’s arguments with --schema. The full contract (exit codes, output modes, gate payloads): machine contract.