As a human (TTY)
As an agent (piped / non-TTY)
Same commands - but nothing ever blocks. Output is JSON automatically, exit codes are stable, andconnect returns resumable gates instead of prompting:
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:
--dry-run; discover any command’s arguments with --schema. The full contract (exit codes, output modes, gate payloads): machine contract.