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
| Runtime | Language | Sandboxed | Notes |
|---|---|---|---|
python | Python 3.8+ | No (subprocess with env_clear()) | Easiest to write. Uses stdin/stdout JSON protocol. |
wasm | Rust, C, Go, etc. | Yes (Wasmtime dual metering) | Fully sandboxed. Best for security-sensitive tools. |
node | JavaScript/TypeScript | No (subprocess) | OpenClaw compatibility. |
prompt_only | Markdown | N/A | Expert knowledge injected into system prompt. No code execution. |
builtin | Rust | N/A | Compiled into the binary. For core tools only. |
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
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique skill name (used as install directory name) |
version | string | No | Semantic version (default: "0.1.0") |
description | string | No | Human-readable description |
author | string | No | Author name or organization |
license | string | No | License identifier (e.g., "MIT", "Apache-2.0") |
tags | array | No | Tags for discovery on FangHub |
[runtime] — Execution Configuration
[runtime] — Execution Configuration
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "python", "wasm", "node", or "builtin" |
entry | string | Yes | Relative path to the entry point file |
[[tools.provided]] — Tool Definitions
[[tools.provided]] — Tool Definitions
Each entry defines one tool that the skill provides:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Tool name (must be unique across all tools) |
description | string | Yes | Description shown to the LLM |
input_schema | object | Yes | JSON Schema defining the tool’s input parameters |
[requirements] — Host Requirements
[requirements] — Host Requirements
| Field | Type | Description |
|---|---|---|
tools | array | Built-in tools this skill needs the host to provide |
capabilities | array | Capability strings the agent must have |
Python Skills
Python skills are the simplest to write. They run as subprocesses and communicate via JSON over stdin/stdout.Protocol
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
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
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
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