Agent skill

Customize

by sbusso in sbusso/claudeclaw

Add new capabilities or modify ClaudeClaw behavior. An agent skill from sbusso/claudeclaw.

MITAuto-check: notes

Install Customize

skills CLI
$ npx skills add sbusso/claudeclaw --skill customize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sbusso/claudeclaw customize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sbusso/claudeclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/customize .claude/skills/customize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
customize
GitHub stars
194
Token cost
~1.6k tokens
SKILL.md length
702 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Add new capabilities or modify ClaudeClaw behavior. An agent skill from sbusso/claudeclaw.

  • Works in 2 steps: AskUserQuestion: "To customize… → AskUserQuestion: "Where should I clone…
  • User wants to add channels (Telegram
  • SKILL.md covers Mode Detection, Workflow, Key Files and Common Customization Patterns, plus 2 more sections
  • Calls npm, git and sqlite3; reaches github.com

What it does

Customize is an agent skill from sbusso/claudeclaw. Add new capabilities or modify ClaudeClaw behavior. Use when user wants to add channels (Telegram, Slack, email input), change triggers, add integrations, modify the router, or make any other customizations. This is an interactive skill that asks questions to understand what the user wants.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Telegram and Slack. The repository describes itself as: Use Claude to orchestrate agents like OpenClaw. The licence is MIT.

When your agent uses it

  • User wants to add channels (Telegram
  • Change triggers
  • Add integrations
  • Modify the router

Example prompts

  • “/customize”

Requirements

  • Node.js
  • Docker

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. AskUserQuestion: "To customize ClaudeClaw fully, you need your own fork. First, fork sbusso/claudeclaw on GitHub. What's your GitHub…
  2. AskUserQuestion: "Where should I clone the repo?" (default: ~/Code/claudeclaw)

What it can do on your machine

Read from SKILL.md and the folder at commit 1395af4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • git
    • sqlite3
    • npx
    • claude

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Customize loads about 1.6k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 702 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:33
    rent data directory: `cp -r store groups .env <clone-path>/`

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sbusso/claudeclaw at commit 1395af4, republished under its MIT licence (© sbusso). 702 words, ~1,621 tokens.

Download SKILL.mdSave it as .claude/skills/customize/SKILL.md (or your agent's skills folder).
name
customize
description
Add new capabilities or modify ClaudeClaw behavior. Use when user wants to add channels (Telegram, Slack, email input), change triggers, add integrations, modify the router, or make any other customizations. This is an interactive skill that asks questions to understand what the user wants.

ClaudeClaw Customization

This skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.

Mode Detection

Check if .claude-plugin/plugin.json exists in cwd:

bash
cat .claude-plugin/plugin.json 2>/dev/null | grep '"name": "claudeclaw"' && echo "DEVELOPER_MODE" || echo "PLUGIN_MODE"

If plugin mode, offer the user a choice via AskUserQuestion:

  • Fork to developer mode (Recommended) — Clone the repo into a new directory, copy state, full self-improvement and customization
  • Continue in plugin mode — Limited to channel setup and config changes (no code editing)

If "Fork to developer mode" is chosen, run the migration flow below. Otherwise, proceed with the normal workflow (limited to invoking existing skills like /add-slack, /add-telegram).

Migration: Plugin → Developer Mode
  1. AskUserQuestion: "To customize ClaudeClaw fully, you need your own fork. First, fork sbusso/claudeclaw on GitHub. What's your GitHub username?"
  2. AskUserQuestion: "Where should I clone the repo?" (default: ~/Code/claudeclaw)

Service name: Derived from the directory name: com.claudeclaw.<dirname> (macOS) / claudeclaw-<dirname> (Linux). For example, if cwd is my-assistant, the service is com.claudeclaw.my-assistant. Determine the correct service name before running service commands below.

  1. Stop running service (service name derived from current directory name):
    • macOS: launchctl unload ~/Library/LaunchAgents/com.claudeclaw.<dirname>.plist
    • Linux: systemctl --user stop claudeclaw-<dirname>
  2. Clone: git clone https://github.com/<username>/claudeclaw.git <clone-path>
  3. Copy state from current data directory: cp -r store groups .env <clone-path>/
  4. AskUserQuestion: "Copy logs too?" If yes: cp -r logs <clone-path>/
  5. Clear stale sessions: sqlite3 <clone-path>/store/messages.db "DELETE FROM sessions"
  6. Install and build: cd <clone-path> && npm install && npm run build
  7. Set up upstream: cd <clone-path> && git remote add upstream https://github.com/sbusso/claudeclaw.git
  8. Run service setup: cd <clone-path> && npx tsx setup/index.ts --step service
  9. Print: "Migration complete! Run cd <clone-path> && claude to use developer mode. Remove --plugin-dir from your Claude Code invocation."

Workflow

  1. Understand the request - Ask clarifying questions
  2. Plan the changes - Identify files to modify. If a skill exists for the request (e.g., /add-telegram for adding Telegram), invoke it instead of implementing manually.
  3. Implement - Make changes directly to the code
  4. Test guidance - Tell user how to verify

Key Files

FilePurpose
src/service.tsService entry: loads channels/extensions, starts message loop
src/index.tsPlugin entry: non-blocking, loaded by Claude Code
src/orchestrator/message-loop.tsCore loop: poll, trigger, queue, dispatch agents
src/orchestrator/config.tsSTATE_ROOT, paths, trigger pattern, runtime selection
src/orchestrator/channel-registry.tsChannel self-registration
src/orchestrator/extensions.tsExtension system (IPC, DB schema, startup hooks)
src/orchestrator/types.tsTypeScript interfaces (Channel, RegisteredGroup, AgentConfig)
src/orchestrator/db.tsDatabase initialization and queries
groups/CLAUDE.mdGlobal memory/persona

Common Customization Patterns

Show full SKILL.md (316 more words)Show less
Adding a New Input Channel (e.g., Telegram, Slack, Email)

Questions to ask:

  • Which channel? (Telegram, Slack, Discord, email, SMS, etc.)
  • Same trigger word or different?
  • Same memory hierarchy or separate?
  • Should messages from this channel go to existing groups or new ones?

Implementation pattern:

  1. Create src/channels/{name}.ts implementing the Channel interface from src/orchestrator/types.ts (see src/channels/whatsapp.ts for reference)
  2. Add the channel instance to main() in src/index.ts and wire callbacks (onMessage, onChatMetadata)
  3. Messages are stored via the onMessage callback; routing is automatic via ownsJid()
Adding a New MCP Integration

Questions to ask:

  • What service? (Calendar, Notion, database, etc.)
  • What operations needed? (read, write, both)
  • Which groups should have access?

Implementation:

  1. Add MCP server config to the container settings (see src/orchestrator/container-runner.ts for how MCP servers are mounted)
  2. Document available tools in groups/CLAUDE.md
Changing Assistant Behavior

Questions to ask:

  • What aspect? (name, trigger, persona, response style)
  • Apply to all groups or specific ones?

Simple changes → edit src/orchestrator/config.ts Persona changes → edit groups/CLAUDE.md Per-group behavior → edit specific group's CLAUDE.md

Adding New Commands

Questions to ask:

  • What should the command do?
  • Available in all groups or main only?
  • Does it need new MCP tools?

Implementation:

  1. Commands are handled by the agent naturally — add instructions to groups/CLAUDE.md or the group's CLAUDE.md
  2. For trigger-level routing changes, modify processGroupMessages() in src/index.ts
Changing Deployment

Questions to ask:

  • Target platform? (Linux server, Docker, different Mac)
  • Service manager? (systemd, Docker, supervisord)

Implementation:

  1. Create appropriate service files
  2. Update paths in config
  3. Provide setup instructions

After Changes

Always tell the user:

bash
# Rebuild and restart
npm run build
# macOS:
launchctl unload ~/Library/LaunchAgents/com.claudeclaw.plist
launchctl load ~/Library/LaunchAgents/com.claudeclaw.plist
# Linux:
# systemctl --user restart claudeclaw

Example Interaction

User: "Add Telegram as an input channel"

  1. Ask: "Should Telegram use the same @Andy trigger, or a different one?"
  2. Ask: "Should Telegram messages create separate conversation contexts, or share with WhatsApp groups?"
  3. Create src/channels/telegram.ts implementing the Channel interface (see src/channels/whatsapp.ts)
  4. Add the channel to main() in src/index.ts
  5. Tell user how to authenticate and test

© sbusso, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/customize of sbusso/claudeclaw.

Open the folder on GitHubat commit 1395af4

Compare with similar skills

Customize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Customize compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Customize this skillsbusso/claudeclaw194—~1.6kAutomated safety check: NotesMIT
n8n Binary Data Handlingczlonkowski/n8n-skills6.4k—~3.9kAutomated safety check: PassMIT
OpenClaw to NanoClaw Migrationnanocoai/nanoclaw31k—~6kAutomated safety check: NotesMIT
Chat SDKdatabuddy-analytics/Databuddy1.2k—~2.6kAutomated safety check: PassAGPL-3.0
Traul Message Searchdandaka/traul113—~3.9kAutomated safety check: NotesAGPL-3.0
Add Channel Connect Buttonnovuhq/novu40k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • n8n Binary Data Handling

    czlonkowski/n8n-skills

    Explains how n8n keeps file bytes in $binary apart from structured $json data, and how to read, write and preserve binary across nodes, agent tools and chat.

    6.4k GitHub stars~3.9k tokensUpdated 22 days ago
    Productivity & AutomationAuto-check passed
  • Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.

    31k GitHub stars~6k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check: notes
  • Chat SDK

    databuddy-analytics/Databuddy

    Build multi-platform chat bots with Chat SDK (chat npm package).

    1.2k GitHub stars~2.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.

    113 GitHub stars~3.9k tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check: notes
  • Build a new channel Connect button (e.g. An agent skill from novuhq/novu.

    40k GitHub stars~1.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Lettabot

    letta-ai/lettabot

    Set up and run LettaBot - a multi-channel AI assistant for Telegram, Slack, Discord, WhatsApp, and Signal.

    326 GitHub stars~3.4k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed

More from sbusso/claudeclaw

All 23 skills in this repo
  • Debug

    sbusso/claudeclaw

    Debug container agent issues. An agent skill from sbusso/claudeclaw.

    194 GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check: notes
  • X Integration

    sbusso/claudeclaw

    X (Twitter) integration for ClaudeClaw. An agent skill from sbusso/claudeclaw.

    194 GitHub stars~3k tokensUpdated 1 mo ago
    Auto-check: notes
  • Add Gmail

    sbusso/claudeclaw

    Add Gmail integration to ClaudeClaw. An agent skill from sbusso/claudeclaw.

    194 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Add Qmd

    sbusso/claudeclaw

    Add QMD (Query Markup Documents) as an advanced memory search backend.

    194 GitHub stars~629 tokensUpdated 1 mo ago
    Auto-check passed
  • Add Telegram

    sbusso/claudeclaw

    Add Telegram as a channel. An agent skill from sbusso/claudeclaw.

    194 GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check: notes
  • Add Telegram Swarm

    sbusso/claudeclaw

    Add Agent Swarm (Teams) support to Telegram. An agent skill from sbusso/claudeclaw.

    194 GitHub stars~3.7k tokensUpdated 1 mo ago
    Auto-check: notes

Works with

Questions about Customize

What does Customize do?

Add new capabilities or modify ClaudeClaw behavior. An agent skill from sbusso/claudeclaw. Customize is an agent skill from sbusso/claudeclaw. Add new capabilities or modify ClaudeClaw behavior.

When should I use Customize?

Customize fits situations like: user wants to add channels (Telegram; change triggers; add integrations; modify the router.

How do I install Customize in Claude Code?

Run `npx skills add sbusso/claudeclaw --skill customize -a claude-code`. Or copy the skill folder (skills/customize in sbusso/claudeclaw) into .claude/skills/customize in your project. Claude Code loads it when a task matches its description.

How do I install Customize in Codex?

Run `npx skills add sbusso/claudeclaw --skill customize -a codex`. Or copy the skill folder (skills/customize in sbusso/claudeclaw) into .agents/skills/customize in your project. Codex loads it when a task matches its description.

Can I use Customize in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sbusso/claudeclaw --skill customize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/customize, .gemini/skills/customize, .github/skills/customize and .opencode/skills/customize in your project.

What does Customize need to run?

Going by SKILL.md and its folder, Customize needs the command-line tools its instructions call (npm, git, sqlite3, npx and claude). Our summary lists: Node.js; Docker.

Does Customize access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Customize safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Customize use?

Customize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Customize use?

About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Customize?

Skills that share tags, products or a category with Customize: n8n Binary Data Handling (czlonkowski/n8n-skills, 6.4k stars), OpenClaw to NanoClaw Migration (nanocoai/nanoclaw, 31k stars), Chat SDK (databuddy-analytics/Databuddy, 1.2k stars) and Traul Message Search (dandaka/traul, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Customize?

sbusso (a GitHub user) maintains it in sbusso/claudeclaw, which has 194 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on August 12, 2026.

Source: sbusso/claudeclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.