Skip to Content
We are live but in Staging 🎉
ComputeCLI GuideOverview

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.

PageCommand groupsMaps to API
dodil ignite appcreate · get · list · delete · update · stateApps
dodil ignite draft + dodil ignite versiondraft save/info/compile/publish/test/compile-logs · version list/get/rollback/code/testDrafts · Versions
dodil ignite invoke + dodil ignite execution (alias exec)invoke · execution get/list/logs/stream/watchInvocation & 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 is org:app. Omit the org: prefix and the CLI falls back to the org in your config (org_name, then org_id). Note that app list table output prints ids as org/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 coverageCLI coverageUse the API directly for
Apps (Apps)CreateApp · GetApp · ListApps · UpdateAppConfig · DeleteApp · GetAppStateapp create · get · list · update · delete · state — full— ✅ complete
Drafts (Drafts)SaveDraft · GetDraftInfo · CompileDraft · PublishDraft · TestDraft + StreamCompileLogsdraft save/info/compile/publish/test/compile-logs — full— ✅ complete
Versions (Versions)ListAppVersions · GetAppVersion · RollbackApp · TestAppVersion · GetAppCodeversion list/get/rollback/test/code — full— ✅ complete
Invocation (Invocation)Invoke (server-stream) · InvokeAsync · GetExecution · WatchExecution · GetExecutionStatsinvoke (sync) · execution get/watchGetExecutionStats (aggregate metrics) · the structured streaming frames of Invoke
Observability (Observability)GetAppLogs · StreamAppLogs · GetAppEvents · StreamAppEvents · ListAppReplicas · GetBuildLog · StreamCompileLogsexecution logs/stream (per-execution) · draft compile-logsApp-level logs/events (GetAppLogs, StreamAppEvents), ListAppReplicas
Catalog & MCP (Catalog)ListCatalog · ListPublicCatalog · GetPublicCatalogDetail · GetMcpToolDefinition · ListMcpTools · HealthCheck— noneAll 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