Borrowing it
Nothing to install: this file belongs to sskarz/nanoclawbster. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/sskarz/nanoclawbster/main/.claude/skills/customize/SKILL.mdgit clone --depth 1 https://github.com/sskarz/nanoclawbsterWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sskarz/nanoclawbster/customize)<a href="https://agentmods.dev/skills/sskarz/nanoclawbster/customize"><img src="https://agentmods.dev/badge/skills/sskarz/nanoclawbster/customize/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sskarz/nanoclawbster/customize"><img src="https://agentmods.dev/badge/skills/sskarz/nanoclawbster/customize.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.00946 |
| Opus 5 | $0.00030 | $0.00473 |
| Sonnet 5 | $0.00012 | $0.00189 |
| Haiku 4.5 | $0.00006 | $0.00095 |
Grade A, and why
customize scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
91% identical to customize — 12 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
NanoClawbster Customization
This skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.
Workflow
- Understand the request - Ask clarifying questions
- Plan the changes - Identify files to modify
- Implement - Make changes directly to the code
- Test guidance - Tell user how to verify
Key Files
| File | Purpose |
|---|---|
src/index.ts |
Orchestrator: state, message loop, agent invocation |
src/channels/whatsapp.ts |
WhatsApp connection, auth, send/receive |
src/ipc.ts |
IPC watcher and task processing |
src/router.ts |
Message formatting and outbound routing |
src/types.ts |
TypeScript interfaces (includes Channel) |
src/config.ts |
Assistant name, trigger pattern, directories |
src/db.ts |
Database initialization and queries |
src/whatsapp-auth.ts |
Standalone WhatsApp authentication script |
groups/CLAUDE.md |
Global memory/persona |
Common Customization Patterns
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:
- Create
src/channels/{name}.tsimplementing theChannelinterface fromsrc/types.ts(seesrc/channels/whatsapp.tsfor reference) - Add the channel instance to
main()insrc/index.tsand wire callbacks (onMessage,onChatMetadata) - Messages are stored via the
onMessagecallback; routing is automatic viaownsJid()
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:
- Add MCP server config to the container settings (see
src/container-runner.tsfor how MCP servers are mounted) - Document available tools in
groups/CLAUDE.md
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 111 lines · 61 tokens per session scan A 015ed3d6017b
customize is a skill published in the GitHub repository sskarz/nanoclawbster (2 stars, last pushed 1mo ago), licensed MIT. It adds 61 tokens to every session and 946 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 91% identical to customize, differing in 12 lines, and is treated as a copy.
Other skills, from other repositories
host-ssh
Run PowerShell on a GuideAnts SSH machine (Windows OpenSSH) via the machine registry in the guide Environment. Use when the user needs host OS tasks — drives, dotnet, Playwright, processes — not file I/O on paths already visible in the workspace file list.
html-craft
Create and verify single-file interactive HTML pages in the sandbox: build or edit the file, then prove the result with headless-Chromium screenshots, in-page DOM/geometry assertions, and JS-error capture (Playwright). No GPU, no service, no network. Use when the user wants an HTML page, animation, demo, dashboard, or…
mssql-query
Query the stack's SQL Server (mssql-express) from the sandbox: probe, databases, tables, schema, sample rows, read-only SQL, and opt-in DML/DDL. Connection string comes from GADBCONNECTIONSTRING in the Guide's Environment variables. Use when the user wants to inspect or query the GuideAnts database.
audiocpp-asr-extended
Transcription beyond the GuideAnts wrapper contract: transcribe workspace files by path (no upload, no 50 MB gateway cap), pass language hints, and sideload other qwen3-family ASR snapshots from Hugging Face through the wrapper. Use when a transcription needs a language hint, the file is large, or the user wants to…
audiocpp-diarize
Speaker diarization: figure out who spoke when in a recording and produce a speaker-labeled transcript, by spawning a private audio.cpp engine with the sortformer diarization model and labeling each turn with the local ASR engine. Use when the user asks to diarize a meeting or call recording, separate or identify…
audiocpp-tts-controls
Advanced synthesis controls on the loaded audio.cpp TTS model: deterministic output via seed, forcing the spoken language, voice-design from a text description (instructions), and enumerating builtin speaker ids — none of which the built-in GuideAnts audio tools expose. Use when the user wants reproducible audio, a…