--json, --quiet, --schema, and --dry-run on mutating commands) - see the overview.
Account
engini login
Store an Engini API key.
--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 > --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).
{"connection_id", "is_alive", "objects_selected"}.
Connections
engini connections list | get
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: