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.

Runtime requirement: glibc 2.34

A glibc build of act or act-build requires glibc 2.34 or newer — Debian 12, Ubuntu 22.04, RHEL 9 and later. This is a supported-platform commitment, not an incidental build setting: it is asserted in CI, and lowering it is a breaking change.

Which channels it applies to:

Channel Affected
npm (@actcore/act, @actcore/act-build) No — Linux packages ship musl binaries
PyPI manylinux wheels Yes — 2.34; the riscv64 wheel needs 2.39
GitHub Releases *-linux-*-gnu Yes — 2.34
GitHub Releases *-linux-*-musl, Docker No

The floor is one symbol. DNS SVCB/HTTPS lookups call res_query(3), which glibc did not export under that name before 2.34 — earlier releases had only __res_query, and a modern glibc keeps that as a compat symbol new code cannot link against, so there is no spelling that satisfies both. Nothing else in the binary requires past glibc 2.33.

On an older distribution, use a musl build: musl exports the symbol outright and carries no floor. Building from source does not lift the requirement — it is the same call — so musl is the answer there, not cargo build.

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-cli 0.13.2

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-cli 0.13.2
File Size Uploaded
act_cli-0.13.2.tar.gz 373.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for act-cli 0.13.2
File
act_cli-0.13.2-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
act_cli-0.13.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
act_cli-0.13.2-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
act_cli-0.13.2-py3-none-musllinux_1_2_riscv64.whl Python 3 none Linux musl 1.2+ RISC-V 64 Details
act_cli-0.13.2-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
act_cli-0.13.2-py3-none-manylinux_2_39_riscv64.whl Python 3 none Linux glibc 2.39+ RISC-V 64 Details
act_cli-0.13.2-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
act_cli-0.13.2-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
act_cli-0.13.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
act_cli-0.13.2-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 173.0 MB

Release files / act_cli-0.13.2.tar.gz

Download URL act_cli-0.13.2.tar.gz
Size 373.9 kB
Tags Source
SHA-256 checksum
How to use checksums
091af27b47f49a70ced4190ed37e7f30749fd9e6c94153abb4c751d4bb67aaca
BLAKE2b-256 checksum
How to use checksums
50aa0dc26d79ce30b79947f0761c90515f7246ba26fb67547e4bc8ff66e09f5a
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-win_arm64.whl

Download URL act_cli-0.13.2-py3-none-win_arm64.whl
Size 16.5 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
88bd6c04ba59b6d103bd0566e88d7f90d367120ff627ba0734e8ebb65994dd25
BLAKE2b-256 checksum
How to use checksums
cd2bf7413bd286467fcdf1f6be527b3114ade25cceb1abb9e2bf7d3b9b26de3a
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-win_amd64.whl

Download URL act_cli-0.13.2-py3-none-win_amd64.whl
Size 18.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
87f9928ac7acc82e428f6f74c9745e5f649ca26e111c4cd4cbb8fd0056880219
BLAKE2b-256 checksum
How to use checksums
883d1af295edda3daef77e2625082dc9d827694d437e6f84c10774138bd61e75
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-musllinux_1_2_x86_64.whl

Download URL act_cli-0.13.2-py3-none-musllinux_1_2_x86_64.whl
Size 18.1 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a4f58bd78bfedab4ee3590f5ede0bdf25780558a39003569eff679794977295d
BLAKE2b-256 checksum
How to use checksums
d9902d7d1b94fb99aaa3b9e2a53063f0838b6ad303278b07ca312178b649e0cd
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-musllinux_1_2_riscv64.whl

Download URL act_cli-0.13.2-py3-none-musllinux_1_2_riscv64.whl
Size 17.3 MB
Tags Linux musl 1.2+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
47ec7001ee3cd1165088e63f97596ab7dbe16f755f27fa94b7c35d0da71f6097
BLAKE2b-256 checksum
How to use checksums
371b3834cddc8dcd12d0b5db4cad6813b80f8f4aa5840db1db045e025149a9ff
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-musllinux_1_2_aarch64.whl

Download URL act_cli-0.13.2-py3-none-musllinux_1_2_aarch64.whl
Size 16.5 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
7ae2fffebd6f78fe8d348e2031df3eeaeb9bc6672dd6f52a7e875d03b6cf1a8e
BLAKE2b-256 checksum
How to use checksums
5019450037e78517f6f4836151fcfbb5e124883c3ba4f76704406ebe3ce9731c
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-manylinux_2_39_riscv64.whl

Download URL act_cli-0.13.2-py3-none-manylinux_2_39_riscv64.whl
Size 17.2 MB
Tags Linux glibc 2.39+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
aecd12cc128a1236a29d7da144b1aaceb64531c9c742183fb4c6d2b3e74c85bd
BLAKE2b-256 checksum
How to use checksums
cdd20cf642286d29d294152cf5c75dca7cb723eb86f331a2b794f70a63848979
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-manylinux_2_34_x86_64.whl

Download URL act_cli-0.13.2-py3-none-manylinux_2_34_x86_64.whl
Size 18.3 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
498c05be96a74e8af2e35fe35ec1092b5160debc72c3b397c2f7df00522e9d70
BLAKE2b-256 checksum
How to use checksums
957a344ca558c9d9d8a7a2e7a75cf188bc6874874396c17b70369a060bd3f056
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-manylinux_2_34_aarch64.whl

Download URL act_cli-0.13.2-py3-none-manylinux_2_34_aarch64.whl
Size 16.6 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
6c6ed036e57fd0ca3f1f98852079404cdebc1883767fc90703f7b2e1983d837a
BLAKE2b-256 checksum
How to use checksums
abe8b5f46472119a21a060feef14f0decdac01ae5311bcb983d1f7d80a0314af
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-macosx_11_0_arm64.whl

Download URL act_cli-0.13.2-py3-none-macosx_11_0_arm64.whl
Size 16.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
551b3fdd15ac8ef176f5dfdf0f7a64c21648541352d9ec89926d48b088f80b7d
BLAKE2b-256 checksum
How to use checksums
1461a5a70f3e7682329dc939c366b1ec78c437d4274f97862611e4a6d329fc03
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 Sep 18, 2026.

Transparency log

Release files / act_cli-0.13.2-py3-none-macosx_10_12_x86_64.whl

Download URL act_cli-0.13.2-py3-none-macosx_10_12_x86_64.whl
Size 17.7 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
dc3d7013ab3ba9ac6cd6276a9e00b881ed62d7bb8cfb684394d24cd1a76decb2
BLAKE2b-256 checksum
How to use checksums
c893de6a93eab6229c138c27a0bddd1fbe275790775f19da5039a5bccf08018e
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 Sep 18, 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