CLI command surface
Understand how the shipped alti binary routes a command line, which namespaces are reachable in this release, what every exit code means, and where each command actually runs.
Overview
This page indexes the native CLI, customer action manifest, and backend-specific connections. Use Engine Commands for local design work and Job and Cloud Commands for service operations. Examples apply to the 0.1.9 interface.
Two Parsers, One Binary
The native parser handles release, capabilities, rtl, sv, verification, trace, labs, tcl, eidb, eda, reports, physical, px, isa, ide, job, xls, and compute. It also handles analyze run and the explicit Evolve forms capabilities, analyze, run, cx-search, measured-ppa, and artifact. The remaining customer commands use the embedded action manifest. mcp serve starts the stdio MCP server.
What This Routing Rules Out
eda inspect, reports parse, ide init, and the listed Evolve forms are routed native commands. Their availability is no longer limited by the older archive’s dispatch omissions. Engine capabilities still determine which input or operation is supported.
The one-word customer evolve action is separate from native evolve run and compute rtl-evolve. Their request schemas are not interchangeable. The manifest’s one-word trace action remains shadowed by the native trace namespace; use the native subcommands rather than assuming manifest enumeration guarantees a matching CLI spelling.
Global Flags
Use a leading --json for native structured output, for example alti --json xls capabilities. Place it before the namespace or after the complete native subcommand, not between the words of a routed Evolve form. Use alti --help for the top-level summary and --help on the leaf operation for accepted arguments and limits. Native leaf commands also accept -h.
JSON output is command-specific. Engine envelopes contain the child’s result as a string, service commands return receipts, and terminal attachments stream bytes. See Command Reference.
Meta and Account Commands
Command | Behavior |
|---|---|
| Print the CLI version |
| Print the 25-entry customer action manifest |
| Inspect the authenticated installation and its capabilities |
| Report environment configuration without verifying server identity |
| Legacy top-level commands refuse unverified identity with exit |
| Legacy command cannot remove credentials inherited from its parent process |
| Start the native browser PKCE flow and store a private CLI session |
| Ask the server for the current session identity |
| Refresh or revoke the native CLI session |
| Serve stdio MCP in the selected customer or local XLS mode |
Cloud sessions and legacy environment credentials are distinct. See CLI Authentication.
Exit Codes
Treat every nonzero result as failure unless the specific command’s contract defines a recovery action. Parsing/admission commonly returns 2, runtime and HTTP failures 1, unavailable engines 127, and invalid installed execution or launch failures 126. Engines can pass through their own statuses. The customer manifest separately uses 3 for a class rejection and 4 for a pre-dispatch refusal. A status number alone does not identify its source.
What Runs Where
Surface | Execution and authority |
|---|---|
| Packaged native engines on the current machine |
| Separately installed, pinned Google XLS tools on the current Linux machine |
| The selected local directory, including recovery and serialized native mutations |
| Native API routes with browser-issued bearer session and server-checked organization/project permissions |
| An operator-selected legacy DDS HTTP service with its existing service-secret contract |
| Offline source and envelope validation only |
| The configured Cloud job service, subject to readiness and permissions |
Default customer MCP | Cloud client dispatch; stdio transport does not make execution local |
| Fixed local XLS tools, without customer Cloud dispatch |
Which subcommands carry –runner
The compatibility commands rtl compile, rtl synthesize, physical run, px analyze, and isa run default to local. Selecting cloud or private on those commands emits a scaffold dispatch plan; it is not remote execution. Their -- engine arguments are accepted only for local dispatch.
The job family’s --runner selects a Job Service and is a different contract. The retired alti-engine-job adapter is not in the 24-runner release inventory; do not interpret accepted local/private syntax as a delivered service.
How a local engine is found
Keep the installed release intact. XLS, compute, packed RTL, native DDS, and the typed PX/CX paths require their named sibling executable. The installed trust check binds protected runners to catalog hashes and receipts; no PATH fallback or user-supplied receipt repairs that boundary. Older compatibility resolvers can report sibling or path; inspect the receipt for the operation you actually ran. External tools such as Icarus have separate host configuration.
Which engine backs which namespace
The payload contains alti, alti-mcp, and these 24 engine runners:
Commands | Packaged engines |
|---|---|
RTL, analysis, SV, verification |
|
ISA, Evolve |
|
Physical, PX |
|
Trace, Labs |
|
Tcl, EIDB, EDA, reports |
|
XLS and compute |
|
Native DDS |
|
alti-rtl-runner is not packaged. The committed-identity compatibility commands that request it do not gain support merely because their help exists. The desktop executable used by ide open is distributed separately.
Receipt Envelopes
Schema or output | Interpretation |
|---|---|
| With |
| Offline validation; |
| Bounded installed Tcl evaluation result |
| Desktop process launch status, not proof that a project finished loading |
| Legacy service HTTP status and bounded response body |
| Installer/uninstaller completion status with helper diagnostics on stderr |
Cloud terminal stdout | Streamed terminal bytes, not a single JSON receipt |
An engine envelope’s stdout is a string containing the native result. Without --json, that native output can be saved directly and passed intact to a matching DDS apply command. Never reduce an authoring plan to its hash alone.
Environment Variables
Variable | Scope |
|---|---|
| Legacy customer action/job client credentials and organization scope |
| Legacy API origin override; default |
| Legacy principal-kind selection; not permission to execute |
| Source-upload consent for customer MCP actions |
|
|
| Explicit legacy DDS service origin; native Cloud uses its own endpoint/session arguments |
| Existing legacy service authentication; not a native Cloud bearer session |
| Host-owned external Icarus tool locations for the native RTL evaluator |
Native Cloud uses --session-dir, defaulting to ~/.local/state/altifigence/cloud-cli. Do not copy desktop session files into it, log tokens, or send service secrets to arbitrary endpoints.
Engine Results
Read the actual engine result and its limits. GPU discovery is not GPU execution, a content digest is not a signature, and a non-signoff timing estimate is not implementation signoff. The next page lists the relevant engine commands.
Resolve a command before scripting
alti --version
alti --help
alti ide cloud --help
alti xls run --help
Check help on the exact leaf you plan to invoke. A matching name in alti commands does not replace native parser help, installed capabilities or runtime availability. Keep the CLI version with scripts because request schemas and receipts are versioned.