Overview
A skill consists of:- Manifest (
skill.tomlorSKILL.md) - Declares metadata, runtime, tools, and requirements - Entry Point - Python script, WASM module, Node.js module, or prompt-only Markdown
OpenFang ships with 60 bundled skills compiled into the binary and available immediately.
Supported Runtimes
Python
Easiest to write
- Uses stdin/stdout JSON protocol
- Not sandboxed (subprocess with
env_clear()) - Supports Python 3.8+
WASM
Most secure
- Fully sandboxed (Wasmtime dual metering)
- Resource limits enforced
- Compile from Rust, C, Go, etc.
Node.js
OpenClaw compatible
- JavaScript/TypeScript support
- Not sandboxed (subprocess)
- Auto-converts OpenClaw skills
Prompt Only
Expert knowledge
- Markdown-based
- Injected into system prompt
- No code execution
- 60 bundled skills included
Bundled Skills
OpenFang includes 60 expert knowledge skills compiled into the binary:Skill Manifest Format
Directory Structure
skill.toml
skill.toml
Creating a Python Skill
Python skills communicate via JSON over stdin/stdout.Protocol
1
OpenFang sends JSON to stdin
2
Script processes and writes result to stdout
Example: Web Summarizer
src/main.py
Using the OpenFang Python SDK
For cleaner code, use the Python SDK:Creating a WASM Skill
WASM skills run in a sandboxed Wasmtime environment with enforced resource limits.Building a WASM Skill
1
Write your skill in Rust
src/lib.rs
2
Compile to WASM
3
Reference in manifest
skill.toml
Sandbox Limits
The WASM sandbox enforces:- Fuel limit - Maximum computation steps (prevents infinite loops)
- Memory limit - Maximum memory allocation
- Capabilities - Only capabilities granted to the agent apply
Limits are derived from the agent’s
[resources] section in its manifest.SKILL.md Format
The SKILL.md format uses YAML frontmatter and Markdown body:SKILL.md
Installing Skills
From Local Directory
skill.toml, validates the manifest, and copies to ~/.openfang/skills/my-skill/.
From FangHub
From Git Repository
List Installed Skills
Remove Skills
Using Skills in Agents
Reference skills in the agent manifest’sskills field:
agent.toml
Publishing to FangHub
FangHub is the community skill marketplace for OpenFang.Preparing Your Skill
1
Complete metadata
Ensure
skill.toml has: name, version, description, author, license, tags2
Add documentation
Include a
README.md with usage instructions3
Test locally
Searching FangHub
Publishing
Publishing to FangHub (coming soon):OpenClaw Compatibility
OpenFang can install and run OpenClaw-format skills.Automatic Conversion
- Detects the OpenClaw format
- Generates a
skill.tomlfrompackage.json - Maps tool names to OpenFang conventions
- Copies the skill to the OpenFang skills directory
Manual Conversion
If automatic conversion doesn’t work, create askill.toml manually:
skill.toml
Skills imported via
openfang migrate --from openclaw are scanned and reported in the migration report with reinstallation instructions.Best Practices
Keep it Focused
One skill should do one thing well
Minimal Requirements
Only request the tools and capabilities you actually need
Descriptive Names
The LLM reads tool names and descriptions to decide when to use them
Clear Schemas
Include descriptions for every parameter so the LLM knows what to pass
Handle Errors
Always return JSON error objects rather than crashing
Version Carefully
Use semantic versioning; breaking changes require major version bumps
Test Thoroughly
Verify your skill works with different agent templates and providers
Document Well
Include setup steps, dependencies, and example usage
CLI Commands
Creating a Skill Scaffold
- Skill name
- Description
- Runtime type (python/node/wasm)
Next Steps
Creating Agents
Build custom agents that use your skills
API Reference
Skill API endpoint documentation