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

Built distributions (wheels)

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

Total release size: 176.2 MB

Release files / act_cli-0.13.0.tar.gz

Download URL act_cli-0.13.0.tar.gz
Size 370.8 kB
Tags Source
SHA-256 checksum
How to use checksums
81e4ecd3cd0ced67380fbeed54780b2a0b554886ec1607c1be629fb856072b51
BLAKE2b-256 checksum
How to use checksums
141751a10524a7f752604b6a50d7b08ad470f346e219c5361f12d8a6418109b7
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-win_arm64.whl
Size 16.3 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
d56166c7ee5f29e417851556c40dc90a2626aa16a74516130ea3c356b2682eef
BLAKE2b-256 checksum
How to use checksums
30633f8a8955f12c4a51075cc0a18837c58697993b31fde43687395468d7a9a1
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-win_amd64.whl
Size 18.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3bef3bf109624aa04c0086c0d2c246d239e448f3b4911036bde67b95792f5ee7
BLAKE2b-256 checksum
How to use checksums
fee9c8ffc65c33fe1d0ca5c2fed8f5163f3ec74fc7b546b59d0558dd242f2f74
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-musllinux_1_2_x86_64.whl
Size 18.0 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b65e4bd60dac51c3b0c8bb57c8c55de4d9d99e736c8f04454b89aa2aaf006d34
BLAKE2b-256 checksum
How to use checksums
08e8b05765f768180e3c5ad9dac8e7f2b0abd16dee5f9ad298040d95d73600e8
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-musllinux_1_2_riscv64.whl
Size 17.1 MB
Tags Linux musl 1.2+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
b4c002fd871615b4e933846fc931d1efad30dbba0ae9a6354b387fda5ab2dacc
BLAKE2b-256 checksum
How to use checksums
57e4daf8619bd28bf7e9191b92fa2e07da134a52c64b73db20ab20f7df8472c5
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-musllinux_1_2_aarch64.whl
Size 16.3 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
161161ea758a2130a3f7f94c88d58b6ff615814f665ddc59cc60f8b1f10fb25f
BLAKE2b-256 checksum
How to use checksums
3530844a8c49d537fbbd1e825b882e7de4161a32fb0c44c0a41edc99f5fe319c
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-manylinux_2_39_riscv64.whl
Size 17.0 MB
Tags Linux glibc 2.39+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
bad34a4d831207d06a90872de58bf67755469c94342083eae328e21f3497031e
BLAKE2b-256 checksum
How to use checksums
e341f431567def1f4ad1f1c5bd2322ee0dac8a3cdb78b03716f14ba79781b2f2
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-manylinux_2_34_x86_64.whl
Size 18.2 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
4eaf2c09481d98f8dbacda3f72c421511adaa23f503b9705c076826ed4ba3979
BLAKE2b-256 checksum
How to use checksums
ddbd4d2fce368f8c01442267ce2d29bcff423eca38db30fbc24413ec5df01600
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-manylinux_2_34_aarch64.whl
Size 16.4 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
692522b9f1f381d7e1af62f94b85495839a4d5b810b41f53ee88753e010b1041
BLAKE2b-256 checksum
How to use checksums
7110e6d0314c73599c5ae9e69d18fa6bb1cc41004adfc9437b143085e3d87995
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-macosx_11_0_arm64.whl
Size 18.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ac63778e93dd35cd109239746561a7a3fba5948bd7344db6edee85bd4162e930
BLAKE2b-256 checksum
How to use checksums
ce58a6d18c20781c90dd07048a6b9001ea7f16e855dcf8f48bf0f387f0c245f5
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 14, 2026.

Transparency log

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

Download URL act_cli-0.13.0-py3-none-macosx_10_12_x86_64.whl
Size 19.8 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
255adba6e6e24d9a8cc7712b1d800644a77966d1bc782839e66003d834c58b6b
BLAKE2b-256 checksum
How to use checksums
67b621a8033a26ee577a7aac67f8d66f5d62969be0bd428f8234efbfffb7259b
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 14, 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