Extend Fawx with WASM plugins. Skills add new tools, load at runtime, and run in a sandbox.
Skills are WebAssembly modules that register new tools with the Fawx engine. When loaded, the agent can call them the same way it calls built-in tools. Skills run in a WASM sandbox with no direct access to the host filesystem or network unless explicitly granted.
Every skill is cryptographically signed. Fawx verifies the signature before loading and rejects unsigned or tampered modules.
Install a skill from the marketplace:
fawx skill install brave-search
List installed skills:
fawx skill list
Remove a skill:
fawx skill remove brave-search
Skills are stored in ~/.fawx/skills/ and loaded automatically on startup.
Skills support hot reloading. When you update a skill file, Fawx detects the change and reloads it without restarting. Active conversations continue with the updated tool definitions.
The marketplace includes community and first-party skills:
More skills are being added regularly. You can also build and publish your own.
Skills can be written in any language that compiles to WASM. The most common choice is Rust.
my-skill/
├── Cargo.toml
├── src/
│ └── lib.rs
└── skill.toml # Skill metadata
[skill]
name = "my-skill"
version = "0.1.0"
description = "A brief description of what this skill does."
[[tools]]
name = "my_tool"
description = "What this tool does."
[[tools.parameters]]
name = "query"
type = "string"
description = "The input query."
required = true
use fawx_skill_sdk::*;
#[fawx_tool]
fn my_tool(query: String) -> ToolResult {
// Your logic here
ToolResult::text(format!("Result for: {}", query))
}
# Build the WASM module
cargo build --target wasm32-wasi --release
# Sign the skill
fawx skill sign target/wasm32-wasi/release/my_skill.wasm
# Install locally for testing
fawx skill install --local ./my_skill.wasm
Fawx uses Ed25519 signatures for skill verification. Generate a signing key pair:
fawx auth keygen
This creates a key pair in ~/.fawx/keys/. The public key is included in the signed skill module. When publishing to the marketplace, your public key is registered with your publisher identity.
Skills run in a WASM sandbox with these constraints: