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

alti version, alti --version

Print the CLI version

alti commands

Print the 25-entry customer action manifest

alti capabilities

Inspect the authenticated installation and its capabilities

alti auth status

Report environment configuration without verifying server identity

alti login, alti whoami

Legacy top-level commands refuse unverified identity with exit 4

alti logout

Legacy command cannot remove credentials inherited from its parent process

alti ide cloud login

Start the native browser PKCE flow and store a private CLI session

alti ide cloud whoami

Ask the server for the current session identity

alti ide cloud refresh, alti ide cloud logout

Refresh or revoke the native CLI session

alti mcp serve

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

xls, compute, typed local engine commands

Packaged native engines on the current machine

xls upstream

Separately installed, pinned Google XLS tools on the current Linux machine

ide workspace

The selected local directory, including recovery and serialized native mutations

ide cloud

Native API routes with browser-issued bearer session and server-checked organization/project permissions

ide service

An operator-selected legacy DDS HTTP service with its existing service-secret contract

job validate

Offline source and envelope validation only

job ... --runner cloud, analyze run

The configured Cloud job service, subject to readiness and permissions

Default customer MCP

Cloud client dispatch; stdio transport does not make execution local

ALTI_MCP_MODE=local-xls MCP

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

alti-rtlc, alti-rtl, alti-rtl-analyze, alti-sv-frontend, alti-sv-immediate-review, alti-sv-interprocess-review, alti-golden-diff

ISA, Evolve

alti-cx, alti-evolve

Physical, PX

alti-physical-runner, alti-px-runner, alti-px-sta-graph-check

Trace, Labs

alti-trace, alti-lab

Tcl, EIDB, EDA, reports

alti-tcl, alti-tcl-local-runner, alti-eidb-local-runner, alti-eda-artifact-inspect, alti-reports

XLS and compute

alti-xls, alti-compute, alti-packed-cuda, alti-rtl-cuda

Native DDS

alti-ide-workspace

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

altifigence.local-engine-execution.v1

With --json, the command, executable, resolution, status, exitCode, and captured engine streams

altifigence.cli.engine-job-preflight.v1

Offline validation; submitted and server_authority_verified remain false

altifigence.cli.tcl-evaluation.v1

Bounded installed Tcl evaluation result

altifigence.ide-launcher-receipt.v1

Desktop process launch status, not proof that a project finished loading

altifigence.dds.service-receipt.v1

Legacy service HTTP status and bounded response body

altifigence.cli.release-bootstrap.v1

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

ALTI_TOKEN, ALTI_ORG_ID

Legacy customer action/job client credentials and organization scope

ALTI_API_BASE

Legacy API origin override; default https://api.altifigence.com

ALTI_BYO

Legacy principal-kind selection; not permission to execute

ALTI_ALLOW_SOURCE_UPLOAD

Source-upload consent for customer MCP actions

ALTI_MCP_MODE

customer by default, or explicit local-xls

ALTI_STUDIO_ENDPOINT

Explicit legacy DDS service origin; native Cloud uses its own endpoint/session arguments

ALTI_STUDIO_SERVICE_SECRET

Existing legacy service authentication; not a native Cloud bearer session

ALTIF_RTL_IVERILOG, ALTIF_RTL_VVP

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

Bash
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.