Overview
A skill consists of:Manifest
skill.toml or SKILL.md that declares metadata, runtime, tools, and requirementsEntry Point
Python script, WASM module, Node.js module, or prompt-only Markdown
~/.openfang/skills/ and made available to agents through the skill registry. OpenFang ships with 60 bundled skills compiled into the binary and available immediately.
Supported Runtimes
60 Bundled Skills
OpenFang includes 60 expert knowledge skills compiled into the binary:DevOps & Infra
ci-cd, ansible, prometheus, nginx, kubernetes, terraform, helm, docker, sysadmin, shell-scripting, linux-networking
Cloud
aws, gcp, azure
Languages
rust-expert, python-expert, typescript-expert, golang-expert
Frontend
react-expert, nextjs-expert, css-expert
Databases
postgres-expert, redis-expert, sqlite-expert, mongodb, elasticsearch, sql-analyst
APIs & Web
graphql-expert, openapi-expert, api-tester, oauth-expert
AI/ML
ml-engineer, llm-finetuning, vector-db, prompt-engineer
Security
security-audit, crypto-expert, compliance
Dev Tools
github, git-expert, jira, linear-tools, sentry, code-reviewer, regex-expert
Writing
technical-writer, writing-coach, email-writer, presentation
Data
data-analyst, data-pipeline
Collaboration
slack-tools, notion, confluence, figma-expert
Career
interview-prep, project-manager
Advanced
wasm-expert, pdf-reader, web-search
prompt_only skills using the SKILL.md format — expert knowledge that gets injected into the agent’s system prompt.
SKILL.md Format
The SKILL.md format (also used by OpenClaw) uses YAML frontmatter and a Markdown body:SKILL.md files are automatically parsed and converted to
prompt_only skills. All SKILL.md files pass through an automated prompt injection scanner that detects override attempts, data exfiltration patterns, and shell references before inclusion.Skill Format
Directory Structure
Manifest (skill.toml)
Manifest Sections
[skill] — Metadata
[skill] — Metadata
[runtime] — Execution Configuration
[runtime] — Execution Configuration
[[tools.provided]] — Tool Definitions
[[tools.provided]] — Tool Definitions
Each entry defines one tool that the skill provides:
[requirements] — Host Requirements
[requirements] — Host Requirements
Python Skills
Python skills are the simplest to write. They run as subprocesses and communicate via JSON over stdin/stdout.Protocol
1
OpenFang sends JSON to stdin
2
Script processes and writes to stdout
Success:Error:
Example: Web Summarizer
Using the OpenFang Python SDK
For more advanced skills, use the Python SDK:WASM Skills
WASM skills run inside a sandboxed Wasmtime environment. They are ideal for security-sensitive operations.Building a WASM Skill
1
Write your skill in Rust
2
Compile to WASM
3
Reference in manifest
Sandbox Limits
The WASM sandbox enforces:- Fuel limit: Maximum computation steps (prevents infinite loops)
- Memory limit: Maximum memory allocation
- Capabilities: Only the capabilities granted to the agent apply
[resources] section in its manifest.
Installing Skills
From a Local Directory
skill.toml, validates the manifest, and copies to ~/.openfang/skills/my-skill/.
From FangHub
From a Git Repository
Listing Installed Skills
Removing Skills
Using Skills in Agents
Reference skills in the agent manifest’sskills field:
Publishing to FangHub
FangHub is the community skill marketplace for OpenFang.Preparing Your Skill
1
Complete metadata
Ensure your
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 will be available via:CLI Commands
Full Skill Command Reference
Creating a Skill Scaffold
- Skill name
- Description
- Runtime type (python/node/wasm)
OpenClaw Compatibility
OpenFang can install and run OpenClaw-format skills. The skill installer auto-detects OpenClaw skills (by looking forpackage.json + index.ts/index.js) and converts them.
Automatic Conversion
1
Detect format
Identifies OpenClaw format by presence of Node.js package files
2
Generate manifest
Creates
skill.toml from package.json3
Map tool names
Converts tool names to OpenFang conventions
4
Install
Copies skill to OpenFang skills directory
Manual Conversion
If automatic conversion does not work, create askill.toml manually:
index.js/index.ts and install:
Skills imported via
openfang migrate --from openclaw are scanned and reported in the migration report, with instructions for manual reinstallation.Best Practices
Keep Skills Focused
One skill should do one thing well
Declare Minimal Requirements
Only request tools and capabilities you actually need
Use Descriptive Names
LLM reads tool names to decide when to use them
Clear Input Schemas
Include descriptions for every parameter
Handle Errors Gracefully
Return JSON error objects rather than crashing
Version Carefully
Use semantic versioning; breaking changes require major bump
Test with Multiple Agents
Verify compatibility with different agent templates and providers
Include Documentation
Document setup steps, dependencies, and examples