One .wasm file. Agents, apps, CLI, browsers.
Sandboxed. Portable. Self-documenting.
.wasm file, zero dependencies
Build your tool in Rust, Python, Go, C++, or any language that compiles to WebAssembly.
#[act_tool]
fn search(query: String) -> Vec<Result> { Compile to a single .wasm component. Self-documenting — schemas, descriptions, examples baked in.
$ cargo build --target wasm32-wasip2
Compiling my-tool v0.1.0
Finished: my-tool.wasm (312 KB) Serve over MCP for AI agents, HTTP for apps, or embed directly. Same binary.
$ act serve my-tool.wasm
$ act mcp my-tool.wasm
$ act call my-tool.wasm search \
--args '{"query":"rust"}' WASM isolation with explicit capability grants. No filesystem, network, or OS access unless you allow it.
One component serves MCP agents, REST APIs, CLI tools, and browser apps. No rewrites.
Built on WASI Preview 3. Async streams are first-class — real-time results, not polling.
Rust, Python, Go, C++, JS — anything that compiles to WebAssembly becomes an ACT component.
Schemas, descriptions, usage hints, examples — documentation is part of the binary. Agents read it natively.
Deterministic WASM binary — same SHA256 everywhere. Audit, verify, trust.
Create your first ACT component in minutes.
npm install -g @actcore/act-cli