Skill Development
Skills extend agent capabilities with domain-specific knowledge and tools. OpenFang supports four skill types: Python, WASM, Node.js, and Prompt-Only.Skill Types
Python Skills
Execute Python code with full package ecosystem
WASM Skills
Sandboxed WebAssembly modules with strict limits
Node.js Skills
JavaScript/TypeScript execution (OpenClaw compatibility)
Prompt-Only
Inject expert knowledge into system prompts
Creating a Skill
Prompt-Only Skills
The simplest skill type injects expert knowledge without code execution:Python Skills
Protocol
Python skills communicate via stdin/stdout JSON: Input (from OpenFang):Dependencies
Declare Python packages inskill.toml:
Example: Web Scraper Skill
WASM Skills
WebAssembly skills run in a sandboxed environment with:- Fuel metering - CPU instruction limits
- Epoch interruption - Wall-clock timeout
- No network access - Air-gapped execution
- Memory limits - 64MB default
Publishing to FangHub
Security
Automatic Scanning
All skills are scanned for:- Prompt injection attempts
- Data exfiltration patterns
- Shell command injection
- Hardcoded secrets
Subprocess Isolation
Python/Node.js skills run with:env_clear()- No inherited environment- Selective variable injection
- Process tree isolation
- Timeout enforcement (60s default)
Best Practices
Validate all inputs
Validate all inputs
Never trust input from agents. Validate types, ranges, and formats.
Use allow-lists, not deny-lists
Use allow-lists, not deny-lists
Explicitly allow known-good patterns rather than blocking known-bad ones.
No secrets in code
No secrets in code
Use environment variables or the credential vault, never hardcode API keys.
Limit external access
Limit external access
If your skill doesn’t need network access, don’t request it.
Next Steps
Browse Skills
Explore 60+ bundled skills and community contributions
OpenClaw Compatibility
Convert OpenClaw skills to OpenFang format
