Skip to main content
Uses: CLI
The CLI is built for this: no interactive login required, stable exit codes, and JSON whenever output is piped.

Authenticate without login

Skip engini login entirely - set the environment variable and the CLI picks it up:
GitHub Actions
Store the key as a masked secret. Never engini login in CI - it writes credentials to a config file on the runner.

Branch on exit codes, not output

Every command exits with a documented code, so a pipeline can react precisely instead of grepping text:
Exit 124 deserves that softer treatment: it means a polled async job didn’t finish inside the timeout, not that it failed. The work often completes server-side afterwards, so failing the build on it causes false alarms.

Parse with jq

Output is JSON automatically when piped - no --json needed, though it’s harmless to be explicit:

A nightly sync, end to end

Preview before you automate

--dry-run validates inputs and prints the request without executing - ideal on a pull request, so a bad payload fails review instead of production:

Discover flags programmatically

--schema returns each command’s typed signature as JSON, so a generator or an agent can build invocations without scraping help text:

Handling large outputs

By default, results over 4 KB spill to a local handle rather than flooding stdout. In CI you usually want the whole payload in a file:
Leave the default in place when an agent is driving - that’s when drilling into a handle beats paying for the whole payload.