Skip to main content
Skills are pluggable tool bundles that extend agent capabilities in OpenFang. A skill packages one or more tools with their implementation, letting agents do things that built-in tools do not cover.

Overview

A skill consists of:

Manifest

skill.toml or SKILL.md that declares metadata, runtime, tools, and requirements

Entry Point

Python script, WASM module, Node.js module, or prompt-only Markdown
Skills are installed to ~/.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
These are 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

Each entry defines one tool that the skill provides:

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
These are derived from the agent’s [resources] section in its manifest.

Installing Skills

From a Local Directory

Reads the skill.toml, validates the manifest, and copies to ~/.openfang/skills/my-skill/.

From FangHub

Downloads from the FangHub marketplace registry.

From a Git Repository

Listing Installed Skills

Output:

Removing Skills

Using Skills in Agents

Reference skills in the agent manifest’s skills field:
The kernel loads skill tools and prompts at agent spawn time, merging them with the agent’s base capabilities.

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, tags
2

Add documentation

Include a README.md with usage instructions
3

Test locally

Searching FangHub

Output:

Publishing

Publishing to FangHub will be available via:
This validates the manifest, packages the skill, and uploads it to the FangHub registry.

CLI Commands

Full Skill Command Reference

Creating a Skill Scaffold

This interactive command prompts for:
  • Skill name
  • Description
  • Runtime type (python/node/wasm)
It generates:
The generated entry point includes a working template.

OpenClaw Compatibility

OpenFang can install and run OpenClaw-format skills. The skill installer auto-detects OpenClaw skills (by looking for package.json + index.ts/index.js) and converts them.

Automatic Conversion

If the directory contains an OpenClaw-style skill, OpenFang:
1

Detect format

Identifies OpenClaw format by presence of Node.js package files
2

Generate manifest

Creates skill.toml from package.json
3

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 a skill.toml manually:
Place alongside the existing 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