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 MCP — stdio (--mcp) or Streamable HTTP (--mcp --http -l)
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

Release files for act-build 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for act-build 0.12.0
File Size Uploaded
act_build-0.12.0.tar.gz 75.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for act-build 0.12.0
File
act_build-0.12.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
act_build-0.12.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
act_build-0.12.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
act_build-0.12.0-py3-none-musllinux_1_2_riscv64.whl Python 3 none Linux musl 1.2+ RISC-V 64 Details
act_build-0.12.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
act_build-0.12.0-py3-none-manylinux_2_31_riscv64.whl Python 3 none Linux glibc 2.31+ RISC-V 64 Details
act_build-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
act_build-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
act_build-0.12.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
act_build-0.12.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 53.0 MB

Release files / act_build-0.12.0.tar.gz

Download URL act_build-0.12.0.tar.gz
Size 75.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4b657975d4f3866f2b3b579cc5d29e705d8f5c0702fdeaac80bc9580b9b16345
BLAKE2b-256 checksum
How to use checksums
e7cc57d514706a64c4ae25393843c40155245e5810d5d6e93bdde6d2e9119cff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-win_arm64.whl

Download URL act_build-0.12.0-py3-none-win_arm64.whl
Size 5.0 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
9c37d3365ea03dea0fce5a8f53e62b5804bb36a67c20f4fbf87129513906d834
BLAKE2b-256 checksum
How to use checksums
0dcc7cfe30daa541d4bb39adb653db6bdc6dd61459fc21da5ecb602755865129
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-win_amd64.whl

Download URL act_build-0.12.0-py3-none-win_amd64.whl
Size 5.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
62a7563153391716b0ca4343aab55aaa78a6d3bc3f190e8841c166fcc7affe52
BLAKE2b-256 checksum
How to use checksums
2b00f4f5cc504cb64b7709956603d21076955951868effcd3aa3cd4fa4d641e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-musllinux_1_2_x86_64.whl

Download URL act_build-0.12.0-py3-none-musllinux_1_2_x86_64.whl
Size 5.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
15b130f4252450b2f80040aed61f590ed99d57a50673c3254c7f63943ab1a4a6
BLAKE2b-256 checksum
How to use checksums
00828fe0ed1ec5d0dd72285e2c89f4ed806791a9faa7cb24d4f05a9ccd431980
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-musllinux_1_2_riscv64.whl

Download URL act_build-0.12.0-py3-none-musllinux_1_2_riscv64.whl
Size 5.0 MB
Tags Linux musl 1.2+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
f73006fc7b3740d235898de385ff1c513925b06a746d9314996a3f1ca98f07b0
BLAKE2b-256 checksum
How to use checksums
789fd419af216143215deaa6d154b6a3f5149a71d4747246a9d7b8e67e322954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-musllinux_1_2_aarch64.whl

Download URL act_build-0.12.0-py3-none-musllinux_1_2_aarch64.whl
Size 5.1 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
84bd51d53afbee932f1f00cff3fae3059d5f5075e8235287f5773407b1c2f433
BLAKE2b-256 checksum
How to use checksums
d95ad1c9d9929d384dc1c58e545833c19827396c7c320c785c252895e28da2ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-manylinux_2_31_riscv64.whl

Download URL act_build-0.12.0-py3-none-manylinux_2_31_riscv64.whl
Size 5.0 MB
Tags Linux glibc 2.31+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
5746cc81bdba36ee336f289901e3300576ad138c100bf297515245a1efae073b
BLAKE2b-256 checksum
How to use checksums
98f9aa890f1ea0b069396f748d242c19688711f5823928028cbd484def203b13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL act_build-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
69c2c8d90803dd55fb743658af9ad54888c69a04bf60ae8f86e2dc3545fca5ed
BLAKE2b-256 checksum
How to use checksums
ae2e40fa06e96b9532d9cac4b85b393207ec29a439f9339864cacfef598acef3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL act_build-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e5ff038858c14520511eaceb60c4e4540961ba1ddc1cd504ba00a7845b629d77
BLAKE2b-256 checksum
How to use checksums
26269572423e6046da0fe9090740a03250b4af2b93d82dd32ce90c55edad095c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-macosx_11_0_arm64.whl

Download URL act_build-0.12.0-py3-none-macosx_11_0_arm64.whl
Size 5.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
67448c13b69b994c78d0525475dcb05fcfc829b79913fc04d81d964affefa4c0
BLAKE2b-256 checksum
How to use checksums
560ae8d1ccf6046382f34d6ded1e61f80e3baf1795bc8bb6f8d1263197c81a0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / act_build-0.12.0-py3-none-macosx_10_12_x86_64.whl

Download URL act_build-0.12.0-py3-none-macosx_10_12_x86_64.whl
Size 5.9 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f3d8337e64b5fe2fe429eab33226266de857a31438cbed69df2e9cb3ec9f6fcf
BLAKE2b-256 checksum
How to use checksums
aaa1457b857278e189fb3aa5e74426861d021be755a0cd42228a6ebe7d2419d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page