Compute — CLI Guide
The Compute domain is reachable through four dodil ignite command groups. The dodil CLI mirrors the platform’s services — app (Compute), plus dodil ignite models, dodil ignite secret, and dodil ignite build for the other three. This guide covers the Compute groups.
| Page | Command groups | Maps to API |
|---|---|---|
dodil ignite app | create · get · list · delete · update · state | Apps |
dodil ignite draft + dodil ignite version | draft save/info/compile/publish/test/compile-logs · version list/get/rollback/code/test | Drafts · Versions |
dodil ignite invoke + dodil ignite execution (alias exec) | invoke · execution get/list/logs/stream/watch | Invocation & Executions |
For install, auth, the config file, global flags, output formats, and exit codes see CLI Basics — this guide does not repeat them. For the underlying contracts see Compute — API Reference.
App management
The app management group is dodil ignite app (create / get / list / update / delete / state); it maps to ComputeService → Apps.
A couple of things worth knowing up front:
- ID form is
org:app. Every id argument isorg:app. Omit theorg:prefix and the CLI falls back to the org in your config (org_name, thenorg_id). Note thatapp listtable output prints ids asorg/name(slash), but you pass them back with a colon. - Invocation.
dodil ignite invoke <id>runs a published app and prints the result.
Quick session
# 1. Create the app definition (metadata only, no code yet)
dodil ignite app create org:hello --runtime python
# 2. Upload code to the draft slot, then publish a version
dodil ignite draft save org:hello -c ./src
dodil ignite draft publish org:hello
# 3. Invoke it
dodil ignite invoke org:hello -p '{"name":"world"}'
# 4. Inspect the run
dodil ignite app get org:hello -o json | jq '{state: .deployment_state, version: .active_version}'
dodil ignite execution get <exec-id> -o json | jq '{status, metrics}'Add -o json to almost any command to get machine-readable output for piping into jq. See CLI Basics → Global Flags for the full list (table default, json, yaml, wide).
CLI vs API coverage
The CLI covers the common Compute lifecycle. A handful of ComputeService RPCs have no CLI equivalent — reach for the API directly for those.
| Group (CLI) | API coverage | CLI coverage | Use the API directly for |
|---|---|---|---|
| Apps (Apps) | CreateApp · GetApp · ListApps · UpdateAppConfig · DeleteApp · GetAppState | app create · get · list · update · delete · state — full | — ✅ complete |
| Drafts (Drafts) | SaveDraft · GetDraftInfo · CompileDraft · PublishDraft · TestDraft + StreamCompileLogs | draft save/info/compile/publish/test/compile-logs — full | — ✅ complete |
| Versions (Versions) | ListAppVersions · GetAppVersion · RollbackApp · TestAppVersion · GetAppCode | version list/get/rollback/test/code — full | — ✅ complete |
| Invocation (Invocation) | Invoke (server-stream) · InvokeAsync · GetExecution · WatchExecution · GetExecutionStats | invoke (sync) · execution get/watch | GetExecutionStats (aggregate metrics) · the structured streaming frames of Invoke |
| Observability (Observability) | GetAppLogs · StreamAppLogs · GetAppEvents · StreamAppEvents · ListAppReplicas · GetBuildLog · StreamCompileLogs | execution logs/stream (per-execution) · draft compile-logs | App-level logs/events (GetAppLogs, StreamAppEvents), ListAppReplicas |
| Catalog & MCP (Catalog) | ListCatalog · ListPublicCatalog · GetPublicCatalogDetail · GetMcpToolDefinition · ListMcpTools · HealthCheck | — none | All of them. The MCP feature still exists (app create --mcp-enabled), but it’s inspected through the API — there is no ignite mcp command. |
ComputeService RPCs with no CLI:
HealthCheck, the catalog RPCs (ListCatalog/ListPublicCatalog/GetPublicCatalogDetail),GetExecutionStats, and the MCP RPCs (GetMcpToolDefinition/ListMcpTools). Use the API for these.
See also
- Compute — API Reference — full ComputeService surface
- Core Concepts —
AppMeta,CodeSource,Execution, enums - CLI Basics — install, auth, config, global flags, exit codes