CLI

[ AxiomCore · Documentation ]

axiom extensions

Reference for every axiom extensions subcommand that builds, signs, resolves, verifies, reviews and runs sandboxed executable extensions.

axiom extensions builds sandboxed executable extensions from Rust, TypeScript or Python source, signs and resolves their packages, reviews the authority they request, and verifies or runs them for a target host. This page covers all 19 subcommands in Axiom CLI 0.149.1.

All axiom extensions commands run locally without Cloud login. verify, test, inspect, permissions, graph and run work offline.

Extension commands from source to a verified host handoff
Extension commands from source to a verified host handoff
Diagram source
flowchart LR
  SRC[Extension source] --> SB[source-build]
  SRC --> SR[source-release]
  DRAFT[Package draft] --> B[build]
  B --> SG[sign]
  SG --> RS[resolve]
  SR --> WF[AxiomExtensions.toml]
  RS --> WF
  WF --> V[verify]
  WF --> P[permissions and diff]
  V --> T[test]
  T --> RUN[run]

There are two paths to a release workflow. source-release compiles one registered source module, signs it with local keys and writes the workflow file in one step. The manual path builds a package from a draft, signs it, and resolves it into the package lock that your workflow file references. Either way, verify and test check the workflow offline, permissions and diff review authority, and run emits the exact descriptor a target host receives.

axiom extensions

Usage
axiom extensions <COMMAND>
SubcommandPurpose
prepare-ideWrite digest-bound IDE helpers without compiling guests.
rust-inspectInspect Rust macro lowering, bindings and workspace.
typescript-inspectInspect generated TypeScript declarations and bridge entry.
python-inspectInspect generated Python stubs, lowering and source map.
migrate-rustMove a legacy low-level Rust extension to the raw compatibility surface.
interfaceEmit the language-neutral SDK interface.
interface-diffCompare two SDK interface artifacts.
source-buildCompile one source module into verified WASM.
source-releaseBuild, sign and register one source module in a local release workflow.
buildEncode an extension package draft.
signSign a package and write a detached proof.
resolveResolve local extension packages into the package lock.
verifyVerify the release workflow offline.
inspectExplain one extension's identity, provenance and authority.
permissionsShow requested, granted and effective authority.
graphShow extension dependencies and origins.
diffDiff two authority locks and enforce approval of increases.
testRun offline release conformance checks.
runEmit or execute the verified host handoff.

Shared inputs

InputMeaning
<ALIAS>Extension alias. Source commands look it up in AxiomDeps.toml; workflow commands look it up in AxiomExtensions.toml.
--depsAuthored dependency manifest that registers source extensions. Default AxiomDeps.toml.
--manifestRelease workflow file (axiom-extension-workflow/v1). It names the application, package manifest and lock, and for each extension its authority lock and digest, signed request, signed grant, signed per-target policies, dependencies and runtime identities. Default AxiomExtensions.toml. Ordinary axiom run commands consume the same file.
--targetTarget host: android, ios, web or server.

Third-party packages used inside extension source are managed separately with axiom dependencies.

Author and inspect source

axiom extensions prepare-ide

Generate editor helpers for one extension so the editor can check calls into it. No guest compiler, extractor, runtime or package script runs. Helpers and a receipt bound to input digests are written under .axiom/extensions/ide/<alias>/.

Usage
axiom extensions prepare-ide [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredSource extension in AxiomDeps.toml, or a locked packaged extension.
--depspathAxiomDeps.tomlDependency manifest.
--interfacepathnoneCanonical SDK interface artifact inside the project. Omitted means the interface generated from the manifest. Required for packaged extensions.
--jsonflagoffPrint the full result as JSON instead of a one-line receipt.

axiom extensions rust-inspect

Show how a Rust source extension lowers: its macros, generated bindings, SDK interface and hidden build workspace.

Usage
axiom extensions rust-inspect [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredRust extension in AxiomDeps.toml.
--depspathAxiomDeps.tomlDependency manifest.
--viewsummary, macros, interface, workspace, bindingssummaryEvidence to print.
--jsonflagoffJSON output.
Terminal
axiom extensions rust-inspect pricing

axiom extensions typescript-inspect

Show the generated TypeScript declarations, bridge entry, SDK interface and dependencies of a TypeScript source extension.

Usage
axiom extensions typescript-inspect [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredTypeScript extension in AxiomDeps.toml.
--depspathAxiomDeps.tomlDependency manifest.
--viewsummary, declarations, entry, interfacesummaryEvidence to print.
--jsonflagoffJSON output.

axiom extensions python-inspect

Show the generated Python stubs, ahead-of-time lowering, source map, SDK interface and dependencies of a Python source extension.

Usage
axiom extensions python-inspect [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredPython extension in AxiomDeps.toml.
--depspathAxiomDeps.tomlDependency manifest.
--viewsummary, stubs, lowering, source-map, interfacesummaryEvidence to print.
--jsonflagoffJSON output.

axiom extensions migrate-rust

Move a legacy low-level Rust extension onto the explicit raw compatibility surface while preserving behavior. Without --out, --write or --check it is a dry run that prints the planned changes.

Usage
axiom extensions migrate-rust [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredRegistered Rust extension alias.
--depspathAxiomDeps.tomlDependency manifest.
--outpathnoneWrite the migrated source to a new file. The file must not exist.
--writeflagoffAtomically replace the registered source.
--checkflagoffFail when legacy top-level SDK imports remain. Use in CI.
--jsonflagoffJSON report.

--out, --write and --check are mutually exclusive.

Terminal
axiom extensions migrate-rust pricing
axiom extensions migrate-rust pricing --check

Interfaces

axiom extensions interface

Emit the canonical, language-neutral SDK interface of one authored extension: exports, requested imports, types and language mappings. Add an authority lock and target to see the surface that target actually receives.

Usage
axiom extensions interface [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredSource extension in AxiomDeps.toml.
--depspathAxiomDeps.tomlDependency manifest.
--authority-lockpathnoneResolved authority lock used to show a target-effective surface. Its interface digest must match.
--targettargetnoneTarget for the effective surface. Required with --authority-lock.
-o, --outpathnoneWrite the canonical requested-interface artifact.
--jsonflagoffJSON output instead of a summary.

axiom extensions interface-diff

Compare two SDK interface artifacts semantically. Each change is classified as compatible, authority-increase or breaking.

Usage
axiom extensions interface-diff [OPTIONS] <BEFORE> <AFTER>
OptionValueDefaultMeaning
<BEFORE>pathrequiredEarlier interface artifact.
<AFTER>pathrequiredLater interface artifact.
--jsonflagoffJSON output.

Build, sign and resolve

axiom extensions source-build

Compile one registered Rust, TypeScript or Python source module into verified WASM. It needs the language toolchain and the matching Axiom extension SDK installed in the extension project; see Build an extension.

Usage
axiom extensions source-build [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredRegistered AxiomDeps.toml extension alias.
--depspathAxiomDeps.tomlDependency manifest.
--outdirectory.axiom/extensionsApplication-local generated artifact and cache directory.
--targettargetwebTarget to build for.
--cleanflagoffIgnore a matching verified build cache entry.

The build result prints as JSON.

Terminal
axiom extensions source-build pricing --target web

axiom extensions source-release

Build and sign one registered source module into a local release workflow that ordinary axiom run commands consume. The grant covers exactly the authority the module requests for its declared targets.

Usage
axiom extensions source-release [OPTIONS] --application <APPLICATION> <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredRegistered AxiomDeps.toml extension alias.
--depspathAxiomDeps.tomlDependency manifest.
--outdirectory.axiom/extensionsApplication-local generated artifact and cache directory.
--workflowpathAxiomExtensions.tomlWorkflow file to write. It must sit in the AxiomDeps.toml directory.
--applicationIDrequiredApplication identity the grant is issued to.
--application-versionversion0.1.0Application version.
--cleanflagoffIgnore a matching verified build cache entry.

Release files go to <out>/release/<alias>/. Locally generated owner-only signing keys go to <out>/keys/<alias>/; keep them out of source control. An extension with dependencies needs those modules released separately first.

Terminal
axiom extensions source-release checkout --deps AxiomDeps.toml --application example.checkout

axiom extensions build

Validate an extension package draft (a JSON package envelope with extension contents) and write its canonical encoding. It prints the output path and SHA-256 digest.

Usage
axiom extensions build --out <OUT> <SOURCE>
OptionValueDefaultMeaning
<SOURCE>pathrequiredExtension package draft.
-o, --outpathrequiredCanonical package to write.
Terminal
axiom extensions build pricing.draft.json --out pricing.axiom

axiom extensions sign

Sign a canonical package and write a detached axiom-package-proof/v1 document with the artifact digest, signature and public key.

Usage
axiom extensions sign --key <KEY> --out <OUT> <ARTIFACT>
OptionValueDefaultMeaning
<ARTIFACT>pathrequiredCanonical package to sign.
--keypathrequiredFile containing a hex-encoded 32-byte Ed25519 seed. Keep it owner-only and out of source control.
-o, --outpathrequiredProof document to write.
Terminal
axiom extensions sign pricing.axiom --key pricing.key --out pricing.proof.json

axiom extensions resolve

Resolve local extension packages from the dependency manifest into the committed package lock.

Usage
axiom extensions resolve [OPTIONS]
OptionValueDefaultMeaning
--depspathAxiomDeps.tomlDependency manifest.
--lockpath.axiom/AxiomPackages.lockPackage lock to write.
Terminal
axiom extensions resolve

Verify and review authority

axiom extensions verify

Verify every signed package, authority input, lock, target policy and provenance record in the workflow, offline. Run it in CI before release.

Usage
axiom extensions verify [OPTIONS]
OptionValueDefaultMeaning
--manifestpathAxiomExtensions.tomlRelease workflow file.
Terminal
axiom extensions verify --manifest AxiomExtensions.toml

axiom extensions inspect

Explain one extension's identity, provenance and authority as JSON.

Usage
axiom extensions inspect [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredExtension in the workflow.
--manifestpathAxiomExtensions.tomlRelease workflow file.

axiom extensions permissions

Show the authority an extension requests, what the application grants, and what each target effectively allows, with dependency paths and whether the grant is development-only.

Usage
axiom extensions permissions [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredExtension in the workflow.
--manifestpathAxiomExtensions.tomlRelease workflow file.
Terminal
axiom extensions permissions pricing --manifest AxiomExtensions.toml

axiom extensions graph

Show extension dependencies and their transitive origins as JSON.

Usage
axiom extensions graph [OPTIONS]
OptionValueDefaultMeaning
--manifestpathAxiomExtensions.tomlRelease workflow file.

axiom extensions diff

Diff two canonical authority locks. The report always prints; the command exits non-zero when authority increases unless you approve the increase explicitly.

Usage
axiom extensions diff [OPTIONS] <BEFORE> <AFTER>
OptionValueDefaultMeaning
<BEFORE>pathrequiredEarlier authority lock.
<AFTER>pathrequiredLater authority lock.
--approvepermission-increasenoneAccept authority increases. Any other value is rejected.
Terminal
axiom extensions diff before.authority.lock.json after.authority.lock.json

Test and run

axiom extensions test

Run deterministic, offline release conformance checks: the same verification as verify, plus a failure for any extension without an executable target or effective authority.

Usage
axiom extensions test [OPTIONS]
OptionValueDefaultMeaning
--manifestpathAxiomExtensions.tomlRelease workflow file.

axiom extensions run

Verify one extension and print the exact descriptor handed to the selected target host (axiom-extension-run-handoff/v1) without running guest code. With --export, execute one verified export in the server reference host instead.

Usage
axiom extensions run [OPTIONS] <ALIAS>
OptionValueDefaultMeaning
<ALIAS>aliasrequiredExtension in the workflow.
--manifestpathAxiomExtensions.tomlRelease workflow file.
--targettargetserverTarget host. --export works only with server.
--exportexport namenoneExecute this verified export in the server reference host. Omit to inspect the handoff only.
--inputJSONnullABI input for --export. ABI v1 rejects floating-point values.
--statepathnoneDeterministic UI or store fixture for a server reference invocation. Guest code never receives a native state reference.
--audit-outpathnoneAlso write canonical, redacted, correlated execution evidence to this path.
Terminal
axiom extensions run pricing --target web
axiom extensions run pricing --export quote --input '{"sku":"A1"}'

Frontend exports run inside the application with axiom run <app>.acore --target android|ios|web.