Overview
A skill consists of:- A manifest (
skill.tomlorSKILL.md) that declares metadata, runtime type, provided tools, and requirements - An entry point (Python script, WASM module, Node.js module, or prompt-only Markdown) that implements the tool logic
~/.openfang/skills/ and made available to agents through the skill registry.
Supported Runtimes
- Python
- WASM
- Node.js
- Prompt-Only
Language: Python 3.8+Sandboxed: No (subprocess with
env_clear())Protocol: JSON over stdin/stdoutBest For: Easiest to write, quick prototyping, data processing60 Bundled Skills
OpenFang includes 60 expert knowledge skills (no installation needed):DevOps & Infrastructure (11)
DevOps & Infrastructure (11)
ci-cd— CI/CD pipeline expertiseansible— Ansible playbook patternsprometheus— Monitoring and alertingnginx— NGINX configurationkubernetes— K8s deployment patternsterraform— Infrastructure as codehelm— Helm chart developmentdocker— Container best practicessysadmin— Linux system administrationshell-scripting— Bash/shell scriptinglinux-networking— Network configuration
Cloud (3)
Cloud (3)
aws— AWS service expertisegcp— Google Cloud Platformazure— Microsoft Azure
Programming Languages (4)
Programming Languages (4)
rust-expert— Rust programming patternspython-expert— Python best practicestypescript-expert— TypeScript developmentgolang-expert— Go language expertise
Frontend (3)
Frontend (3)
react-expert— React patterns and hooksnextjs-expert— Next.js app developmentcss-expert— CSS and styling
Databases (6)
Databases (6)
postgres-expert— PostgreSQL optimizationredis-expert— Redis patternssqlite-expert— SQLite usagemongodb— MongoDB querieselasticsearch— Search and analyticssql-analyst— SQL query optimization
APIs & Web (4)
APIs & Web (4)
graphql-expert— GraphQL schema designopenapi-expert— OpenAPI/Swagger specsapi-tester— API testing strategiesoauth-expert— OAuth implementation
AI/ML (4)
AI/ML (4)
ml-engineer— Machine learning workflowsllm-finetuning— LLM fine-tuningvector-db— Vector database usageprompt-engineer— Prompt engineering
Security (3)
Security (3)
security-audit— Security best practicescrypto-expert— Cryptography implementationcompliance— Compliance requirements
Developer Tools (9)
Developer Tools (9)
github— GitHub workflows and actionsgit-expert— Git workflowsjira— Jira automationlinear-tools— Linear workflowsentry— Error tracking setupcode-reviewer— Code review guidelinesregex-expert— Regular expressions
Writing & Content (4)
Writing & Content (4)
technical-writer— Technical documentationwriting-coach— Writing improvementemail-writer— Professional emailspresentation— Presentation design
Data (2)
Data (2)
data-analyst— Data analysis patternsdata-pipeline— ETL pipeline design
Collaboration (4)
Collaboration (4)
slack-tools— Slack bot developmentnotion— Notion API usageconfluence— Confluence integrationfigma-expert— Figma plugin dev
Career (2)
Career (2)
interview-prep— Technical interviewsproject-manager— Project management
Advanced (3)
Advanced (3)
wasm-expert— WebAssembly developmentpdf-reader— PDF processingweb-search— Web search strategies
Skill Manifest (skill.toml)
Manifest Sections
Metadata section
Unique skill name (used as install directory name)
Semantic version
Human-readable description
Author name or organization
License identifier (e.g.,
MIT, Apache-2.0)Tags for discovery on FangHub
Execution configuration
Runtime type:
python, wasm, node, builtin, or prompt_onlyRelative path to the entry point file
Array of tool definitions this skill provides
Host requirements
Built-in tools this skill needs the host to provide
Capability strings the agent must have
Python Skills
Python skills run as subprocesses and communicate via JSON over stdin/stdout.Protocol
Input (from OpenFang):Example Implementation
WASM Skills
WASM skills run inside a sandboxed Wasmtime environment with resource limits.Building a WASM Skill
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.
SKILL.md Format (Prompt-Only)
The SKILL.md format uses YAML frontmatter and Markdown body:Installing Skills
- Local Directory
- FangHub
- Git Repository
skill.toml, validates manifest, copies to ~/.openfang/skills/my-skill/.Listing Installed Skills
Removing Skills
Creating Skills
Interactive Scaffold
- Skill name
- Description
- Runtime type (python/node/wasm)
Using Skills in Agent Manifests
Reference skills in the agent’sskills field:
Publishing to FangHub
FangHub is the community skill marketplace for OpenFang.Preparing Your Skill
Complete Metadata
Ensure
skill.toml has complete metadata:name,version,description,author,license,tags
Searching FangHub
Publishing
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 to OpenFang skills directory
Manual Conversion
Createskill.toml manually:
Best Practices
Keep Skills Focused
One skill should do one thing well. Don’t create monolithic skills with dozens of unrelated tools.
Declare Minimal Requirements
Only request the tools and capabilities your skill actually needs. Over-requesting capabilities reduces security.
Use Descriptive Tool Names
The LLM reads tool names and descriptions to decide when to use them. Be clear and specific.
Provide Clear Input Schemas
Include descriptions for every parameter so the LLM knows what to pass.
Handle Errors Gracefully
Always return a JSON error object rather than crashing. The agent loop depends on valid JSON responses.
Version Carefully
Use semantic versioning. Breaking changes require a major version bump.
Test with Multiple Agents
Verify your skill works with different agent templates and providers.
Include a README
Document setup steps, dependencies, and example usage.
CLI Commands Reference
| Command | Description |
|---|---|
openfang skill install <source> | Install skill (local dir, FangHub name, or git URL) |
openfang skill list | List all installed skills |
openfang skill remove <name> | Remove an installed skill |
openfang skill search <query> | Search FangHub for skills |
openfang skill create | Create new skill scaffold (interactive) |
openfang skill publish | Publish skill to FangHub |
Security
- Python skills run with
env_clear()— subprocess environment completely cleared, only whitelisted vars passed - WASM skills run in full sandbox with fuel and memory limits
- SKILL.md files scanned for prompt injection before inclusion
- Tool requirements validated — skills only get tools agent is authorized for
- Capability enforcement — skills inherit agent’s capability restrictions
- Path traversal prevention — skill entry paths validated to reject
..sequences
