Skip to main content
All commands also accept the universal flags (--json, --quiet, --schema, and --dry-run on mutating commands) - see the overview.

Account

engini login

Store an Engini API key.
On a TTY without --api-key, the CLI offers to open the key-creation page and prompts for the key (hidden input). Non-interactive without --api-key exits 2.

engini logout

Clear the stored credentials. Prints {"logged_out": true} (or "noop": true when nothing was stored).

engini whoami

Report the authenticated identity: full_name, email, current_company, role, user_type (apiuser for an API key, user for a JWT).

Tools

engini tools list

engini tools get <tool_id>

Full canonical detail for one tool - including input_schema, output_schema, and the supports_filters / supports_sort / supports_top_offset capability flags.

engini tools call <tool_id>

Execute a tool against a connection.
Connection precedence: --connection > --toolset > the application’s default. Default output envelope: {output, history_id, execution_info}; results larger than --max-bytes are stored locally and replaced by a handle.

engini tools result [handle]

Drill into a stored (sandboxed) result.

Applications

engini applications list

--search <query>, --available (only apps you can use), --limit <n>.

engini applications get <slug>

Adds supports_object_selection, help_url, and authentication_methods - how you discover --auth <id> and credential field names for connecting.

Connect

engini connect [<app>]

The guided way to create a connection - interactive on a TTY, agent-resumable when piped (see the machine contract).
Flow: discover auth methods → collect credentials (or run OAuth) → create → check → refresh objects → select objects → {"connection_id", "is_alive", "objects_selected"}.

Connections

engini connections list | get

Credential fields and metadata are deliberately omitted from get - they can carry secrets.

engini connections create <application>

Direct-credential connections (--auth <id>, --name <name>, repeatable --field key=value). OAuth2 apps use engini connect instead.

engini connections delete <connection_id>

Prompts on a TTY; requires --force non-interactively.

engini connections check <connection_id>

Liveness test. A conclusive failure exits 1; an inconclusive check reports is_alive: null and exits 0.

engini connections refresh <connection_id>

Async object refresh - waits by default (--no-wait to return immediately, --timeout default 300s). A failed refresh exits 1; a timeout exits 124.

engini connections objects | select-objects <connection_id>

engini connections sign-in-url | oauth-complete <application>

The OAuth primitives behind connect: