| name | skill-porter |
| description | Convert skills from ClawHub, Claude, Gemini, Codex formats to Nanobot-native format. Use when user wants to port/migrate/convert skills to work with Nanobot (HKUDS/nanobot). Primary focus: ClawHub skills. Keywords: convert skill, port skill, migrate skill, nanobot skill, clawhub to nanobot. |
Skill Porter
Convert skills from various AI agent ecosystems to Nanobot-native format.
Supported Sources
| Source | Priority | Status |
|---|
| ClawHub | Primary | Full support |
| Claude Skills | Secondary | Full support |
| Gemini Skills | Secondary | Full support |
| Codex Skills | Secondary | Full support |
Nanobot Architecture Reference
Nanobot is a Python-based ultra-lightweight AI agent with these key differences from OpenClaw:
Memory Structure
workspace/
├── SOUL.md # Bot personality (Dream-managed, DO NOT EDIT)
├── USER.md # User profile (Dream-managed, DO NOT EDIT)
├── memory/
│ ├── MEMORY.md # Long-term facts (Dream-managed)
│ └── history.jsonl # Append-only JSONL history
Built-in Tools
Nanobot provides these built-in tools:
read_file, write_file, edit_file - File operations
list_directory - Directory listing
exec - Shell command execution
grep - Search (use for history.jsonl)
web_search, web_fetch - Web operations
- MCP tools (via
tools.mcpServers config)
MCP Configuration
{
"tools": {
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@scope/server-package", "/path"],
"enabledTools": ["tool1", "tool2"]
}
}
}
}
Conversion Process
Step 1: Analyze Source Skill
Read the source SKILL.md and identify:
- Skill type: Prompt-only vs tool-dependent
- Tool dependencies: Which tools/commands are referenced
- Path references: Hardcoded paths that need adjustment
- OpenClaw-specific features: Plugins, commands, lifecycle hooks
Step 2: Determine Compatibility
High compatibility (direct port):
- Pure prompt/rule skills
- No OpenClaw-specific tool names
- No hardcoded OpenClaw paths
Medium compatibility (needs adaptation):
- Uses tool names that differ between systems
- References OpenClaw config paths
- Uses OpenClaw-specific commands
Low compatibility (needs rewrite):
- Strong OpenClaw plugin dependencies
- OpenClaw lifecycle hooks
- OpenClaw marketplace features
Step 3: Apply Transformations
Tool Name Mappings
| OpenClaw Tool | Nanobot Equivalent |
|---|
read | read_file |
write | write_file |
edit | edit_file |
exec | exec (same) |
browser | Use MCP: Playwright |
message | Channel-specific (Telegram/Discord/etc.) |
cron | Nanobot cron (same concept) |
gateway | nanobot gateway |
sessions_spawn | Subagent via exec |
Path Mappings
| OpenClaw Path | Nanobot Path |
|---|
~/.openclaw/ | ~/.nanobot/ |
{workspace_root_dir} | Workspace (config: agents.defaults.workspace) |
{bundled_skill_dir} | nanobot/skills/ (built-in) |
MEMORY.md | memory/MEMORY.md |
memory/YYYY-MM-DD.md | memory/history.jsonl (JSONL format) |
Command Mappings
| OpenClaw Command | Nanobot Command |
|---|
openclaw gateway start | nanobot gateway |
openclaw gateway stop | Ctrl+C (or systemd) |
/status | /status (same) |
/model | Set in config.json |
Step 4: Generate Nanobot SKILL.md
Create the converted SKILL.md with:
- Preserved frontmatter (name, description)
- Transformed tool references
- Updated path references
- Added MCP requirements if needed
Step 5: Generate Migration Notes
Document:
- What was changed
- What needs manual setup (MCP servers, config)
- What couldn't be converted
Scripts
scripts/convert_skill.py
Main conversion script.
python scripts/convert_skill.py <source_skill_path> [--output <output_path>] [--source-type <clawhub|claude|gemini|codex>]
Options:
--output: Output directory (default: same as source with -nanobot suffix)
--source-type: Explicit source type (auto-detected if omitted)
--dry-run: Show changes without writing
--verbose: Detailed output
scripts/batch_convert.py
Convert multiple skills.
python scripts/batch_convert.py <input_dir> --output <output_dir>
scripts/validate_nanobot.py
Validate a skill for Nanobot compatibility.
python scripts/validate_nanobot.py <skill_path>
Example Usage
Convert a single ClawHub skill:
Convert the weather-advisor skill from ClawHub to Nanobot format.
Batch convert:
Convert all skills in ~/my-skills/ to Nanobot format.
Check compatibility:
Check if the email-skill is compatible with Nanobot.
Important Notes
-
Dream-managed files: SOUL.md, USER.md, MEMORY.md are auto-managed by Nanobot's Dream system. Do not include instructions to edit these files.
-
MCP for missing tools: If a skill needs tools Nanobot doesn't have built-in, generate MCP server config instead of trying to replicate the tool.
-
Channel differences: Nanobot uses channel-specific configs (Telegram, Discord, etc.) instead of a unified message tool.
-
Memory access: Use grep tool to search memory/history.jsonl. The format is JSONL with cursor, timestamp, content fields.
-
Config location: Nanobot config is at ~/.nanobot/config.json, not ~/.openclaw/openclaw.json.
Limitations
These OpenClaw features have no Nanobot equivalent:
browser tool (use MCP Playwright)
canvas tool (no equivalent)
nodes tool (no equivalent)
- OpenClaw plugin system (use MCP instead)
- ClawHub marketplace integration (manual install)
Output Format
Converted skills are output as:
<skill-name>-nanobot/
├── SKILL.md # Converted skill
├── MIGRATION.md # Migration notes
└── mcp_requirements.json # MCP servers needed (if any)