Chat SDK
databuddy-analytics/Databuddy
Build multi-platform chat bots with Chat SDK (chat npm package).
Interactive helper for changing a NanoClaw install: it asks what you want, points to a dedicated skill when one exists, then edits the right layer and says how to verify.
$ npx skills add nanocoai/nanoclaw --skill customize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw customize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/customize .claude/skills/customize && rm -rf skills-srcUse ~/.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/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .claude/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customizeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nanocoai/nanoclaw --skill customize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw customize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/customize .agents/skills/customize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .agents/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill customize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw customize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/customize .cursor/skills/customize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .cursor/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nanocoai/nanoclaw.git --path .claude/skills/customize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nanocoai/nanoclaw --skill customize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw customize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/customize .gemini/skills/customize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .gemini/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nanocoai/nanoclaw customizeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nanocoai/nanoclaw --skill customize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/customize .github/skills/customize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .github/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill customize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nanocoai/nanoclaw customize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/customize .opencode/skills/customize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/customize into .opencode/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
customizeInteractive helper for changing a NanoClaw install: it asks what you want, points to a dedicated skill when one exists, then edits the right layer and says how to verify.
Questions come first, then a check for a dedicated skill that already covers the request, such as the add-channel skills for Telegram, Slack, Discord, WhatsApp, Signal or iMessage, manage-channels for wiring, manage-mounts for directory access, and skills for alternative agent providers or MCP tools. Only when none fits does the agent plan and make the change itself and describe how to test it.
Every change is framed in terms of the v2 entity model: users, messaging groups, agent groups and sessions, joined by wirings that carry trigger rules. The ncl admin CLI inspects and edits that model, and a table of key files names the entry point, router, delivery loop, session manager, container runner, channel adapters, config and central database.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Customize NanoClaw loads about 1.7k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 790 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
istant name, paths, timeouts) read from `.env` |2. Update paths in `.env` / config.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.
The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 790 words, ~1,675 tokens.
.claude/skills/customize/SKILL.md (or your agent's skills folder).This skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.
/add-telegram, /add-slack, /add-discord, /add-whatsapp, /add-signal, /add-imessage, and the rest of the /add-<channel> family./manage-channels./manage-mounts./add-opencode, /add-codex, /add-ollama-provider./add-ollama-tool, /add-atomic-chat-tool.CLAUDE.md, or core code).Customizations route through the v2 entity model: users → messaging groups → agent groups → sessions. A messaging group is one chat/channel on one platform; an agent group holds the workspace, personality, and container config; a wiring links a messaging group to an agent group with a session mode and trigger rules. Inspect and edit all of this with the ncl admin CLI. See docs/isolation-model.md for the three isolation levels.
| File | Purpose |
|---|---|
src/index.ts | Entry point: init DB, migrations, channel adapters, delivery polls, sweep, shutdown |
src/router.ts | Inbound routing: messaging group → agent group → session → inbound.db → wake |
src/delivery.ts | Polls outbound.db, delivers via adapter, handles system actions |
src/session-manager.ts | Resolves sessions; opens inbound.db / outbound.db; heartbeat path |
src/container-runner.ts | Spawns per-agent-group containers with session DB + outbox mounts, OneCLI ensureAgent |
src/channels/ | Channel adapter infra (registry, Chat SDK bridge); specific adapters install from the channels branch |
src/config.ts | Process-level config (assistant name, paths, timeouts) read from .env |
data/v2.db | Central DB: users, roles, agent_groups, messaging_groups, wirings, container_configs |
data/v2-sessions/<session>/ | Per-session inbound.db (host→container) + outbound.db (container→host) |
groups/<folder>/CLAUDE.md | Per-agent-group memory/persona and instructions |
For ad-hoc DB queries, use pnpm exec tsx scripts/q.ts <db> "<sql>".
Questions to ask:
Implementation:
/add-telegram, /add-slack, …). It fetches the adapter from the channels branch, wires the registration import, installs the pinned package, and builds./manage-channels (or use ncl messaging-groups + ncl wirings) to create the messaging group, choose the isolation level, and wire it to an agent group with a session mode and trigger rules.Questions to ask:
Implementation:
/add-<service>-tool skill exists, run it — it wires the MCP server and routes credentials through OneCLI so no raw keys reach the container.--command <cmd> [--args <json-array>] [--env <json-object>] for stdio or --url <url> for Streamable HTTP (HTTPS, or plain HTTP for localhost / host.docker.internal): ncl groups config add-mcp-server --id <group-id> --name <name> .... Then run ncl groups restart --id <group-id> to take effect. From inside a container the agent uses the add_mcp_server self-mod tool, which requires one admin approval.Questions to ask:
Implementation:
groups/<folder>/CLAUDE.md — edit that file for the target group.container_configs table: ncl groups config get/update --id <group-id>.Questions to ask:
Implementation:
groups/<folder>/CLAUDE.md.ncl wirings update --id <wiring-id> ....Questions to ask:
Implementation:
.env / config.Always tell the user.
Run from your NanoClaw project root:
# Rebuild and restart
pnpm run build
source setup/lib/install-slug.sh
# macOS:
launchctl unload ~/Library/LaunchAgents/$(launchd_label).plist
launchctl load ~/Library/LaunchAgents/$(launchd_label).plist
# Linux:
# systemctl --user restart $(systemd_unit)User: "Add Telegram as an input channel"
/add-telegram to install the adapter, wire its registration, and build./manage-channels (or ncl messaging-groups create + ncl wirings create) to create the messaging group and wire it to the chosen agent group with a session mode and trigger rules.© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/customize of nanocoai/nanoclaw.
Open the folder on GitHubat commit 66f0823
Customize NanoClaw 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Customize NanoClaw this skillnanocoai/nanoclaw | 31k | — | ~1.7k | Automated safety check: Notes | MIT | |
| Chat SDKdatabuddy-analytics/Databuddy | 1.2k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Traul Message Searchdandaka/traul | 113 | — | ~3.9k | Automated safety check: Notes | AGPL-3.0 | |
| Message Push0xranx/golembot | 323 | — | ~984 | Automated safety check: Pass | MIT | |
| Im Adapter0xranx/golembot | 323 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Ak Dev New Messaging Integrationyaalalabs/agent-kernel | 191 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 |
databuddy-analytics/Databuddy
Build multi-platform chat bots with Chat SDK (chat npm package).
dandaka/traul
Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.
0xranx/golembot
Send proactive messages to IM groups or individual users via the gateway Send API.
0xranx/golembot
Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
ZJU-REAL/Easel
发布通知推送:内容发布成功/失败后,把结果推送到飞书/钉钉/企业微信群机器人、 Telegram、Slack 或任意 webhook。当用户说"发布通知""发到飞书群""通知钉钉""推送到企微" "发布成功提醒""webhook 通知""发布完通知我""群机器人"时使用。纯脚本无第三方依赖。
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
nanocoai/nanoclaw
Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.
nanocoai/nanoclaw
Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
nanocoai/nanoclaw
Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.
nanocoai/nanoclaw
Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.
nanocoai/nanoclaw
Adds a persistent wiki knowledge base to a NanoClaw group following Karpathy's LLM Wiki pattern, with folders, a tailored container skill and a CLAUDE.md section.
Categories
Interactive helper for changing a NanoClaw install: it asks what you want, points to a dedicated skill when one exists, then edits the right layer and says how to verify. Questions come first, then a check for a dedicated skill that already covers the request, such as the add-channel skills for Telegram, Slack, Discord, WhatsApp, Signal or iMessage, manage-channels for wiring, manage-mounts for directory access, and skills for alternative agent providers or MCP tools. Only when none fits does the agent plan and make the change itself and describe how to test it.
Customize NanoClaw fits situations like: adding a new messaging channel or changing how the agent is triggered; modifying how inbound messages are routed to agents; not sure which NanoClaw skill or file covers a requested change.
Run `npx skills add nanocoai/nanoclaw --skill customize -a claude-code`. Or copy the skill folder (.claude/skills/customize in nanocoai/nanoclaw) into .claude/skills/customize in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nanocoai/nanoclaw --skill customize -a codex`. Or copy the skill folder (.claude/skills/customize in nanocoai/nanoclaw) into .agents/skills/customize in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --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.
Going by SKILL.md and its folder, Customize NanoClaw needs the command-line tools its instructions call (pnpm). Our summary lists: A NanoClaw checkout.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Customize NanoClaw is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Customize NanoClaw: Chat SDK (databuddy-analytics/Databuddy, 1.2k stars), Traul Message Search (dandaka/traul, 113 stars), Message Push (0xranx/golembot, 323 stars) and Im Adapter (0xranx/golembot, 323 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,883 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 2026.
Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.