Skip to main content

ACT CLI & Build Tools

Host and build ACT (Agent Component Tools) WebAssembly components.

This repo contains two tools:

  • act — run, call, inspect, and serve ACT components from local files, HTTP URLs, or OCI registries
  • act-build — post-process compiled WASM components: embed metadata, skills, and custom sections

Install

# act (CLI host)
npm i -g @actcore/act
pip install act-cli
cargo install act-cli

# act-build (build tool)
npm i -g @actcore/act-build
pip install act-build
cargo install act-build

Pre-built binaries available on GitHub Releases and Docker (ghcr.io/actcore/act).

act — Component Host

# Discover tools in a component
act info --tools ghcr.io/actpkg/sqlite:0.1.0

# Call a tool
act call ghcr.io/actpkg/sqlite:0.1.0 query \
  --args '{"sql":"SELECT sqlite_version()"}' \
  -m database_path=/data/app.db \
  --grant '{"wasi:filesystem":{"mode":"allowlist","allow":[{"path":"/data/**","mode":"rw"}]}}'

# Serve over HTTP
act run -l ghcr.io/actpkg/sqlite:0.1.0

# Serve over MCP stdio
act run --mcp ghcr.io/actpkg/sqlite:0.1.0

Components can be referenced as:

  • OCI refs: ghcr.io/actpkg/sqlite:0.1.0
  • HTTP URLs: https://example.com/component.wasm
  • Local paths: ./component.wasm

Remote components are cached in ~/.cache/act/components/.

Commands

Command Description
run Serve a component over ACT-HTTP (-l) or MCP stdio (--mcp)
call Call a tool directly, print result to stdout
info Show component metadata, tools, and schemas (--tools, --format text|json|toon)
pull Download a component from OCI or HTTP to local file

Audit trail

run and call write a structured audit trail to stderr: what component is running and under what capability modes, every capability decision as it resolves, and a per-call summary. It is on by default and independent of RUST_LOG — only --no-audit (or [audit] enabled = false in the config file) turns it off.

audit: act-cli/tests/fixtures/fs-canary.wasm sha256:92342c │ wasi:filesystem=ask wasi:http=deny wasi:sockets=deny
audit: ⚠ declared ask, no prompt channel — every access will be denied: wasi:filesystem
audit: ? ask-deny  wasi:filesystem  /tmp/probe.txt   denied by user
audit: ● read  tool-error 1ms  args:43ebc7  req:00392e

That's a real, captured transcript of one headless call with no --grant: the first line is the instantiation header (component, digest, resolved mode per capability class); the second warns that a declared ask capability has no prompt channel to answer it, so every access degrades to deny; the third is the immediate denial (denials and asks print the moment they resolve, never batched); the fourth is the per-call rollup — outcome, duration, an args: digest of the tool arguments (or the full values with --audit-args), and a req: id for joining this line back to a client log. Allowed operations coalesce into that rollup line instead of one line each, e.g. filesystem: 12 read under /data/**.

HTTP Endpoints (run -l)

Method Path Description
GET /info Component metadata
POST /metadata-schema JSON Schema for metadata
POST/QUERY /tools List tools
POST/QUERY /tools/{name} Call a tool (SSE with Accept: text/event-stream)

act-build — Component Build Tool

# Embed act:component metadata, act:skill, and WASM custom sections
act-build pack target/wasm32-wasip2/release/my_component.wasm

# Validate without modifying
act-build validate target/wasm32-wasip2/release/my_component.wasm

# Publish as a CNCF Wasm OCI Artifact
act-build push my_component.wasm ghcr.io/actpkg/my-component:0.1.0 \
  --also-tag latest \
  --source https://github.com/actpkg/my-component \
  --skip-if-identical

Metadata is resolved via merge-patch from project manifests:

  1. Base from Cargo.toml, pyproject.toml, or package.json (name, version, description)
  2. Inline patch from the same manifest ([package.metadata.act-component], [tool.act-component], or actComponent)
  3. act.toml — highest priority, applied last

act-build push produces artifacts conformant with the CNCF TAG-Runtime Wasm OCI Artifact spec: manifest config has media type application/vnd.wasm.config.v0+json (with architecture, os, layerDigests, and component.{exports,imports} derived from the component's exports and imports), and the layer is application/wasm.

Authentication is resolved in order: OCI_USERNAME/OCI_PASSWORD env, then GITHUB_TOKEN for ghcr.io, then ~/.docker/config.json (or $DOCKER_CONFIG/config.json), then anonymous.

Platform Support

Architecture Linux (GNU) Linux (musl) macOS Windows Docker
x86_64
aarch64
riscv64

RISC-V (riscv64) is a first-class target. Regressions on RISC-V are release-blocking.

Building

cargo build --release        # both tools
cargo build -p act-cli       # act only
cargo build -p act-build     # act-build only

Set RUST_LOG=act=debug for verbose output.

License

MIT OR Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

act_cli-0.11.1.tar.gz (203.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

act_cli-0.11.1-py3-none-win_arm64.whl (14.0 MB view details)

Uploaded Python 3Windows ARM64

act_cli-0.11.1-py3-none-win_amd64.whl (15.5 MB view details)

Uploaded Python 3Windows x86-64

act_cli-0.11.1-py3-none-musllinux_1_2_x86_64.whl (15.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

act_cli-0.11.1-py3-none-musllinux_1_2_riscv64.whl (14.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ riscv64

act_cli-0.11.1-py3-none-musllinux_1_2_aarch64.whl (13.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

act_cli-0.11.1-py3-none-manylinux_2_31_riscv64.whl (14.7 MB view details)

Uploaded Python 3manylinux: glibc 2.31+ riscv64

act_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

act_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

act_cli-0.11.1-py3-none-macosx_11_0_arm64.whl (15.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

act_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl (16.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file act_cli-0.11.1.tar.gz.

File metadata

  • Download URL: act_cli-0.11.1.tar.gz
  • Upload date:
  • Size: 203.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for act_cli-0.11.1.tar.gz
Algorithm Hash digest
SHA256 cc525c26d730b572053272f0997fec9c71537045769a770ea4e21305277fde1b
MD5 3d32ff51184b925fda0e792e4119d9f7
BLAKE2b-256 d62ad09912bc1ddaaaa0b80e24d8679a2cec4267e7423bb272ef5a7d98aa15ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1.tar.gz:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-win_arm64.whl.

File metadata

  • Download URL: act_cli-0.11.1-py3-none-win_arm64.whl
  • Upload date:
  • Size: 14.0 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for act_cli-0.11.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 025e0373531f6850b4ec8d8ca94eec78575d6d7fa164a34db6c8fa33ba6af68e
MD5 972105d626ff2de6a34a271d66c1b982
BLAKE2b-256 4db5ce4b3cf3a89e88a761da1d54253d410814675c4ca0ab5fce1b560664b8f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-win_arm64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: act_cli-0.11.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for act_cli-0.11.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 91c11f255cbbdd7b17b1ebf3cde68761fa035a024dc9acb044e886b32c129185
MD5 fbb3a4bea1932687b14f4e53f45caa17
BLAKE2b-256 2d52a6b8b617f683a051fa3e1413de63f2139277b02fb3baf1bdab732327984a

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-win_amd64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 42f9fb40cfa1a92c0c301ded324f857490484224d6ff6ef4828939f8f2072d7f
MD5 adc8dd7860992d20023b2f2ab4839faa
BLAKE2b-256 a63c15e722fe80d0a98dc7236fae5dc0fda2634a26d242a8ca676db59cb2512f

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 b3bf049ec0f4e77c30b686ee26dbfeb7d1d86fca5daa5889ed2f1a7c361acd5e
MD5 9c5dd868e3cfbb3e0b4aeefb0714948c
BLAKE2b-256 47b11c92cb617d0949a63c710851e87736fe8e4f55908a1d2172cfd0cab279cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-musllinux_1_2_riscv64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 32c2c1d3af14496bcf32eb9e9f6227f1f3d418ec14319271c0a512fa64266ca5
MD5 a3b9aad8fb64d91a0b34f66893d2c148
BLAKE2b-256 5f464698c49660d1534d02b167af6440dac3babdbe92212516ce471938edf93d

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-manylinux_2_31_riscv64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 6a7ee8fbdd878917bce5ada52df430cc2d3c4503a1eee69928a70d661aa19f01
MD5 824b2a3b7a2a094e1a00c2ad58a434ea
BLAKE2b-256 ac3a2df68672e309b5a0ec0a97603a77970feef22bba9f3f89af8b4b2223eb6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-manylinux_2_31_riscv64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a797627a5acfe564e30ece010ccf544c81b9fdc31be0c8e5a1489cb608217d9
MD5 40be78e26c4602bd2c257eb3aa3db329
BLAKE2b-256 e55b52d3b1e4717bfc741a01c2bdca9e9aa179606af5170bac6634f662c8a0fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0d28986e24097ac3392b480acae280e2036cab555d4b6cd4a72155c61ae52d5
MD5 f0e24c13eb56ae0c68148498f4c933c1
BLAKE2b-256 24214bba21888587c67855846dbf3febcf15ab44d5e59d0d9baf1d3fc7b724c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d75d56bee7bbbc06aa2c4cd81528bf2f6c68329dcf1076dc88bbe6faf00461f
MD5 82e5cbaede1cff9638a72b98de611ca7
BLAKE2b-256 a592f6e59b5a43ce8424b2e7c14c51f35dd822886550a364077c7582a4d8b855

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file act_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for act_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f6bffe2f65a057feb6be7e6fe6291a25cdfc406dd6056fc84b17dfa91e596231
MD5 e5dd6b1c6759db6d315cc061866d27ff
BLAKE2b-256 31bb1bc1d785e44af76cbba58c9f85425eb7e3394d9691ccedfb51f191e7b770

See more details on using hashes here.

Provenance

The following attestation bundles were made for act_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on actcore/act-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.11.1 This release

11 files

0.10.1

11 files

0.10.0

11 files

0.9.0

11 files

0.8.3

11 files

0.8.2

11 files

0.8.1

11 files

0.8.0

11 files

0.7.6

11 files

0.7.5

11 files

0.7.4

11 files

0.7.3

11 files

0.7.2

11 files

0.7.1

11 files

0.7.0

11 files

0.6.0

11 files

0.5.1

11 files

0.5.0

11 files

0.4.0

11 files

0.3.10

11 files

0.3.9

11 files

0.3.8

11 files

0.3.7

10 files

0.3.6

10 files

0.3.5

10 files

0.3.4

10 files

0.3.3

11 files

0.3.2

11 files

0.3.1

11 files

0.3.0

11 files

0.2.1

11 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page