migrate-from-v1
Skill31k starsChanged 9 days agoMITView on GitHub
Finish migrating a NanoClaw v1 install into v2. Run after `bash migrate-v2.sh` completes. Seeds the owner, migrates legacy memory, reconciles container configs, and helps port custom v1 code. Triggers on "migrate from v1", "finish migration", "v1 migration".
- Reads credentials
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 8 are distinctive, and 17 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
17
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Read logs/setup-migration/handoff.json first — it has overall_status, per-step results in steps, and a followups list.
- Very specific: line 26
Before anything else, check that logs/setup-migration/handoff.json exists.
- Distinctive: line 36
Do not attempt to run the script yourself, simulate its effects, or pick up the migration mid-stream.
- Distinctive: line 42
Before any deeper migration work, prove v2 actually answers messages on the user's real channels.
- Very specific: line 52
If yes, continue to Phase 1.
- Very specific: line 62
User ID format: always <channel_type>:<platform_handle>.
- Very specific: line 72
If exactly one user exists, confirm: AskUserQuestion: "Is <display_name> (<id>) you?" — Yes / No, let me type it.
- Very specific: line 73
If multiple users exist, present them as options in AskUserQuestion.
- Distinctive: line 74
If no users exist yet (service hasn't received a message), ask the user to send a test message first, then re-query.
- Very specific: line 77
Use the DB helpers in src/modules/permissions/db/user-roles.ts (getUserRoles, grantRole).
- Very specific: line 106
After seeding the owner, discuss the access policy.
- Very specific: line 116
If the user picks option 2 or 3, seed the known users from v1's message history.
- Very specific: line 141
Run /migrate-memory for the imported groups.
- Distinctive: line 147
Do not duplicate that migration logic here.
- Very specific: line 156
If container.json exists, read it and verify the additionalMounts host paths are still valid on this machine.
- Very specific: line 157
If .v1-container-config.json exists (parse failure fallback), read it, discuss with the user, and write a proper container.json.
- Very specific: line 158
Check for env or packages fields — env may overlap with OneCLI vault, packages (apt/npm) are portable.
- Distinctive: line 162
Check whether the user's v1 install was a customized fork.
- Distinctive: line 170
If no commits ahead of upstream: stock v1, skip this phase.
- Distinctive: line 172
If there are commits:
- Very specific: line 183
v1 checkout is read-only: Never modify files under handoff.v1_path.
- Very specific: line 185
Mask credentials: when displaying (first 4 + ...
- Very specific: line 186
handoff.jsonis the recovery point: If context gets compacted, re-read it and git status to recover state. - Distinctive: line 208
Run the verify step to confirm everything works:
- Very specific: line 212
Delete logs/setup-migration/handoff.json — offer to save as docs/migration-<date>.md first.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Finish v1 → v2 migration
bash migrate-v2.sh already ran the deterministic migration. It handled:
- .env keys merged
- v2 DB seeded (agent_groups, messaging_groups, wiring)
- Group folders copied (v1 CLAUDE.md → v2 CLAUDE.local.md)
- Session data copied with conversation continuity (incl. Claude Code memory + JSONL transcripts)
- Scheduled tasks ported
- Channel code installed and auth state copied (incl. WhatsApp Baileys keystore)
- WhatsApp LIDs resolved from
store/authand aliased intomessaging_groups - Container skills copied
- Container image built
Your job is the parts that need human judgment: triage failed steps, seed the owner, run the shared-memory migration, reconcile configs, and port fork customizations.
Read logs/setup-migration/handoff.json first — it has overall_status, per-step results in steps, and a followups list.
Preflight: was the script run?
Before anything else, check that logs/setup-migration/handoff.json exists. If it doesn't, the user is invoking this skill before migrate-v2.sh ran. Stop and tell them, verbatim:
This skill finishes a migration that
migrate-v2.shstarted. Run that first, in your terminal — not from inside Claude:bash migrate-v2.shIt needs interactive prompts (channel selection, service switchover) and runs Node/pnpm bootstrap, Docker, OneCLI setup, and a container build that don't fit inside a Claude session. When it finishes, it'll hand control back to Claude automatically — at which point this skill picks up.
Do not attempt to run the script yourself, simulate its effects, or pick up the migration mid-stream. The deterministic side has dependencies on a real interactive shell.
Once handoff.json exists, proceed to Phase 0.
Phase 0: Get v2 routing real messages
Before any deeper migration work, prove v2 actually answers messages on the user's real channels. v1 is paused, not touched — flipping back is a service restart.
0a — Fix blockers only
Walk handoff.steps. Fix only the failures that would stop the bot from routing one message; defer the rest to its later phase.
0b — Smoke test, then continue
Tell the user the switch is non-destructive (v1 is paused, not modified; reverting is one command). Help them stop v1's service unit and start v2's, tail the host log for a clean boot, and have them send a real test message. Use AskUserQuestion to confirm the bot responded.
If yes, continue to Phase 1. If no, diagnose from logs/nanoclaw.log and re-test — don't proceed to deeper work on a broken router.
Deferred failures
Re-visit anything you skipped in 0a before declaring the migration done. Most surface naturally in later phases (1c-groups ↔ Phase 2, 1e-tasks ↔ task verification).
Phase 1: Owner and access
v2 auto-creates a users row for every sender it sees (via extractAndUpsertUser in src/modules/permissions/index.ts). By the time this skill runs, the owner's row likely already exists — it just needs the owner role granted.
User ID format: always <channel_type>:<platform_handle>. Each channel populates this differently:
- Telegram:
telegram:<numeric_user_id>(e.g.telegram:6037840640) - Discord:
discord:<snowflake_user_id>(e.g.discord:123456789012345678) - WhatsApp:
whatsapp:<phone>@s.whatsapp.net(e.g.whatsapp:14155551234@s.whatsapp.net) - Slack:
slack:<user_id>(e.g.slack:U04ABCDEF) - Others:
<channel_type>:<platform_id>
Steps:
- Query
userstable:SELECT id, kind, display_name FROM users. - If exactly one user exists, confirm:
AskUserQuestion: "Is<display_name>(<id>) you?" — Yes / No, let me type it. - If multiple users exist, present them as options in
AskUserQuestion. - If no users exist yet (service hasn't received a message), ask the user to send a test message first, then re-query.
- Once confirmed, check
user_rolesviagetUserRoles(userId). If anownerrow already exists, skip. Otherwise grant it withgrantRole.grantRoleinserts a new row per call, so thegetUserRolescheck keeps this re-runnable.
Use the DB helpers in src/modules/permissions/db/user-roles.ts (getUserRoles, grantRole). Init the DB first, then call the helpers:
import { closeDb, initDb } from '../src/db/connection.js';
import { runMigrations } from '../src/db/migrations/index.js';
import { CENTRAL_DB_PATH } from '../src/config.js';
import { getUserRoles, grantRole } from '../src/modules/permissions/db/user-roles.js';
const db = await initDb(CENTRAL_DB_PATH);
try {
await runMigrations(db); // idempotent
const userId = '<user_id>';
if (!(await getUserRoles(userId)).some((r) => r.role === 'owner')) {
await grantRole({
user_id: userId,
role: 'owner',
agent_group_id: null, // owner role must be global
granted_by: null,
granted_at: new Date().toISOString(),
});
}
} finally {
await closeDb();
}Access policy
After seeding the owner, discuss the access policy. v2's messaging_groups.unknown_sender_policy controls who can interact with the bot. migrate-v2.sh set it to public so the bot would respond during the switchover test, but the user may want to tighten it.
Present the options via AskUserQuestion:
- Public (
public, current) — anyone can message the bot. Good for personal DM bots. - Known users only (
strict) — only users the access gate accepts (owner, admin, oragent_group_members) can trigger the bot. Others are silently dropped. - Approval required (
request_approval) — unknown senders trigger an approval request to the owner. Good for group chats where you want to vet new members.
The unknown_sender_policy column accepts exactly these three values; use the parenthesized value for <chosen_policy> below.
If the user picks option 2 or 3, seed the known users from v1's message history. The v1 database is at <handoff.v1_path>/store/messages.db. It has a messages table with sender and sender_name columns. For each group:
-- v1: unique senders per chat (excluding bot messages)
SELECT DISTINCT sender, sender_name
FROM messages
WHERE chat_jid = '<v1_jid>' AND is_from_me = 0 AND sender IS NOT NULLThe sender value is a platform handle (e.g. 6037840640 for Telegram). Build the v2 user ID by inferring the channel type from the chat JID prefix (use parseJid from setup/migrate-v2/shared.ts) and combining: <channel_type>:<sender>.
For each sender:
- Upsert into
users(id, kind, display_name)if not already present. - Insert into
agent_group_members(user_id, agent_group_id)for each agent group wired to that messaging group.
Show the user the list of senders being imported and let them deselect any they don't want.
Then update the messaging groups:
UPDATE messaging_groups SET unknown_sender_policy = '<chosen_policy>'
WHERE id IN (SELECT id FROM messaging_groups WHERE channel_type IN (<migrated_channels>))Phase 2: Migrate legacy memory
Run /migrate-memory for the imported groups. It quiesces each group, moves the
v1 CLAUDE.local.md into the shared memory/ tree without reading it during
staging, then has the invoking coding harness distill standing identity into
instructions.prepend.md and durable facts into Core Memory or focused linked
files before the NanoClaw group runs again.
Do not duplicate that migration logic here. Record each group's result in the handoff before continuing.
Phase 3: Container config
migrate-v2.sh writes container.json directly from v1's container_config (the additionalMounts shape is identical). If the v1 config was unparseable, it falls back to a .v1-container-config.json sidecar.
For each group, check:
- If
container.jsonexists, read it and verify theadditionalMountshost paths are still valid on this machine. Flag any that don't exist. - If
.v1-container-config.jsonexists (parse failure fallback), read it, discuss with the user, and write a propercontainer.json. Then delete the sidecar. - Check for
envorpackagesfields —envmay overlap with OneCLI vault,packages(apt/npm) are portable.
Phase 4: Fork customizations
Check whether the user's v1 install was a customized fork.
cd <v1_path>
git remote -v
git log --oneline <upstream>/main..HEAD 2>/dev/nullIf no commits ahead of upstream: stock v1, skip this phase.
If there are commits:
- Show the commit list to the user.
AskUserQuestion: "How do you want to handle your v1 customizations?"- Copy portable items (recommended) — copy
container/skills/*,.claude/skills/*,docs/*. Grep each copied file for v1-only references that won't resolve in v2 and flag them to the user: workspace paths (/workspace/group/,/workspace/project/,/workspace/ipc/,/workspace/extra/), the v1 IPC mechanism,registered_groups/is_main, the v1 sender allowlist, andstore/messages.db. - Full walkthrough — go commit by commit, decide together.
- Reference only — stash to
docs/v1-fork-reference/for later.
- Copy portable items (recommended) — copy
- Source code (
src/*,container/agent-runner/src/*) is NOT portable — v2's architecture is fundamentally different. Stash todocs/v1-fork-reference/with a README explaining what each file did. Don't translate.
Principles
- v1 checkout is read-only. Never modify files under
handoff.v1_path. - Show before writing. Show diffs or proposed content before modifying standing instructions, memory, or container.json.
- Mask credentials when displaying (first 4 +
...+ last 4 characters). handoff.jsonis the recovery point. If context gets compacted, re-read it andgit statusto recover state.
Setup steps you can run
The setup flow at setup/index.ts has individual steps you can invoke if something is missing or failed:
pnpm exec tsx setup/index.ts --step <name>| Step | When to use |
onecli | OneCLI not installed or not healthy |
auth | No Anthropic credential in vault |
container | Container image needs rebuild |
service | Service not installed or not running |
mounts | Mount allowlist missing |
verify | End-to-end health check (run after everything else) |
environment | System check (Node, dirs) |
When done
- Run the verify step to confirm everything works:
pnpm exec tsx setup/index.ts --step verify - Delete
logs/setup-migration/handoff.json— offer to save asdocs/migration-<date>.mdfirst. - Restart the service if running so changes take effect. The v2 service label is install-specific (
nanoclaw-v2-<slug>/com.nanoclaw-v2-<slug>), so derive it fromsrc/install-slug.tsrather than guessing:# Linux UNIT=$(pnpm exec tsx -e "import{getSystemdUnit}from'./src/install-slug.js';console.log(getSystemdUnit())") systemctl --user restart "$UNIT" # macOS LABEL=$(pnpm exec tsx -e "import{getLaunchdLabel}from'./src/install-slug.js';console.log(getLaunchdLabel())") launchctl kickstart -k "gui/$(id -u)/$LABEL"
Trending
Quiet since July.about the whole repository
Who's talking about qwibitai/nanoclaw
- Jordan Urbs“How to Use NanoClaw (Better Than OpenClaw?)”YouTube · Mar 6, 2026 · 30k views
- Yar Malik“OpenClaw vs ZeroClaw vs PicoClaw vs NullClaw vs NanoBot vs TinyClaw vs NanoClaw — Full Comparison”YouTube · Feb 27, 2026 · 9.8k views
- Aashish Pahwa“3 Free Alternatives To Openclaw”YouTube · Mar 11, 2026 · 3.2k views
- Mike's Ai Forge“NanoClaw + Docker: Build a 100% Secure AI Agent”YouTube · Mar 20, 2026 · 1.9k views
- Prism Labs“Anthropic Is Eating the OpenClaw Ecosystem (And They Know It)”YouTube · Mar 19, 2026 · 1.7k views
The biggest 5 of 79 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 79
Talked about on GitHub, YouTube, Bluesky and Hacker News (79 times).
On GitHub · 50
- Feb 22, 2026Nanoclaw needs a skill marketplace/registry — nanocoai/nanoclaw17 reactions · 9 comments
- Mar 6, 2026🦞 OpenClaw 生态日报 2026-03-06 — duanyytop/agents-radar3 reactions
- Mar 3, 2026🦞 OpenClaw 生态日报 2026-03-03 — duanyytop/agents-radar3 reactions · 1 comment
- Mar 25, 2026feature: make it possible to select alternatives for software we installing (e.g. for openclaw) — Osmantic/ODS2 reactions · 4 comments
- Mar 3, 2026🦞 OpenClaw 生态日报 2026-03-03 — duanyytop/agents-radar2 reactions
45 more on GitHub
- May 4, 2026NanoClaw — community-scripts/DevScripts1 reaction
- Mar 7, 2026🦞 OpenClaw 生态日报 2026-03-07 — duanyytop/agents-radar1 reaction
- Mar 2, 2026🦞 OpenClaw 生态日报 2026-03-02 — duanyytop/agents-radar1 reaction
- Feb 26, 2026🦞 OpenClaw 生态日报 2026-02-26 — duanyytop/agents-radar1 reaction
- Feb 22, 2026Research: Architecture for standalone agent app with model layer, agentic loops, and messaging integration — laurentenhoor/devclaw1 reaction · 3 comments
- Feb 20, 2026fix: signal active containers to close when a scheduled task is enqueued — nanocoai/nanoclaw1 reaction · 4 comments
- Feb 14, 2026[SECURITY] [Upstream PR #216] Secret sanitization bypass via /proc and Read tool — nanocoai/nanoclaw1 reaction · 1 comment
- Jul 27, 2026Weekly upstream sync 2026-07-27 — vweaver/nanoclaw0 reactions · 1 comment
- Jun 18, 2026[Security] Non-owner members can create persistent child agents without approval in NanoClaw owner-initialized groups — nanocoai/nanoclaw0 reactions
- Jun 14, 2026[Security] Local gateway approval bypass via unauthenticated loopback webhook — nanocoai/nanoclaw0 reactions
- May 19, 2026fix(webhook) + docs: восстановление webhook + откат NanoClaw v0.1 + research — botkin-health/Botkin0 reactions
- May 9, 2026Setup script silently deletes existing groups/*/CLAUDE.md without warning or backup — nanocoai/nanoclaw0 reactions
- May 6, 2026feat: add NanoClaw v2 script — community-scripts/DevScripts0 reactions · 1 comment
- May 6, 2026feat: add NanoClaw v2 script — community-scripts/DevScripts0 reactions · 1 comment
- May 4, 2026New Script: NanoClaw — community-scripts/DevScripts0 reactions · 1 comment
- Apr 29, 2026Research: Memory approach of common non-coding Agents — 8monkey-ai/hebo-platform0 reactions · 20 comments
- Apr 27, 2026feat(channels): agent-channels:{telegram,discord,slack} layers — minimal MIT-cribbed adapters — tangle-network/starter-foundry0 reactions · 2 comments
- Apr 19, 2026feat(setup): add register-task step (carry until qwibitai#1857 lands) — sagri-tokyo/nanoclaw0 reactions
- Mar 30, 2026NanoClaw の Fork とローカル初期セットアップ — Helicoir/nanoclaw0 reactions
- Mar 30, 2026Feature: Native typing indicator via iLink sendtyping API — WEIFENG2333/ilink-bot0 reactions
- Mar 30, 2026Feature: Native typing indicator via iLink sendtyping API — co-pine/wx-robot-ilink0 reactions
- Mar 25, 2026fix: LID JID fallback via senderPn, warn on unmatched messages — nanocoai/nanoclaw-whatsapp0 reactions · 1 comment
- Mar 24, 2026Setup: IPC fix + Dev Agent configuration — yaelandau22/nanoclaw0 reactions
- Mar 23, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-23 — compasify/agents-radar0 reactions
- Mar 22, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-22 — compasify/agents-radar0 reactions
- Mar 21, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-21 — compasify/agents-radar0 reactions
- Mar 20, 2026skill: add-group-persona — per-group agent personas from WhatsApp group description — nanocoai/nanoclaw-whatsapp0 reactions
- Mar 20, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-20 — compasify/agents-radar0 reactions
- Mar 19, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-19 — compasify/agents-radar0 reactions
- Mar 18, 2026Prefer injected credentials and preserve service env — nanocoai/nanoclaw0 reactions · 2 comments
- Mar 18, 2026## Summary — Shinogreat/docs0 reactions
- Mar 17, 2026Add image support — send and receive images via Telegram — kylenessen/nanoclaw0 reactions
- Mar 16, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-16 — compasify/agents-radar0 reactions
- Mar 15, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-15 — compasify/agents-radar0 reactions
- Mar 14, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-14 — compasify/agents-radar0 reactions
- Mar 13, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-13 — compasify/agents-radar0 reactions
- Mar 12, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-12 — compasify/agents-radar0 reactions
- Mar 11, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-11 — compasify/agents-radar0 reactions
- Mar 10, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-10 — compasify/agents-radar0 reactions
- Mar 9, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-09 — compasify/agents-radar0 reactions
- Mar 8, 2026🦞 Bản tin hàng ngày hệ sinh thái OpenClaw 2026-03-08 — compasify/agents-radar0 reactions
- Mar 7, 2026🦞 OpenClaw 生态日报 2026-03-07 — compasify/agents-radar0 reactions
- Mar 5, 2026fix: Expose ANTHROPIC_MODEL from .env to agent — nanocoai/nanoclaw0 reactions · 1 comment
- Mar 4, 2026持续跟进前沿技术更新,不断优化marrow-core — zrr1999/marrow-core0 reactions
- Mar 3, 2026SKILL: unified channel media support (2-way, lazy retrival) — nanocoai/nanoclaw0 reactions · 3 comments
On YouTube · 22
- Mar 6, 2026How to Use NanoClaw (Better Than OpenClaw?) — Jordan Urbs30k views · 43 comments
- Feb 27, 2026OpenClaw vs ZeroClaw vs PicoClaw vs NullClaw vs NanoBot vs TinyClaw vs NanoClaw — Full Comparison — Yar Malik9.8k views · 33 comments
- Mar 11, 20263 Free Alternatives To Openclaw — Aashish Pahwa3.2k views · 2 comments
- Mar 20, 2026NanoClaw + Docker: Build a 100% Secure AI Agent — Mike's Ai Forgesays it tested it1.9k views · 3 comments
- Mar 19, 2026Anthropic Is Eating the OpenClaw Ecosystem (And They Know It) — Prism Labs1.7k views · 1 comment
17 more on YouTube
- Mar 19, 2026Every company needs to figure out their AI agent strategy. — NanoClaw1.4k views
- Apr 6, 202624시간 일하는 AI 개발자 만들기 — NanoClaw + Discord 셋업 가이드#NanoClaw #Claude #디스코드봇 #AI에이전트 #Docker #ClaudeCode — 빠른개발소식1.4k views · 9 comments
- Apr 23, 2026Announcing NanoClaw v2, in partnership with @VercelHQ ✨ — NanoClaw1.2k views
- Feb 14, 2026NanoClaw Lightweight Secure AI Agent Assistant for WhatsApp — Eddy Says Hi #EddySaysHi1.2k views
- May 5, 2026Building Small, Secure AI Agents with NanoClaw's Creator — NanoClaw853 views · 1 comment
- Mar 13, 2026NanoClaw is a safer OpenClaw — NEXT with John Koetsier783 views · 5 comments
- Mar 24, 2026How I move knowin' my NanoClaw agents don't hold any of my API keys — NanoClaw601 views
- May 3, 20263 Tips for Building Better AI Agent Skills — NanoClaw481 views
- Feb 28, 2026Nano Claw vs OpenClaw: Cheaper, Safer, or Just Hype? — Vibe Code Wiki367 views · 1 comment
- May 3, 2026Give your AI agent actual guardrails — NanoClaw339 views
- Feb 22, 2026[Product Reviw] 신뢰 가능한 OpenClaw? NanoClaw 🦞 — LOADING_265 views
- May 1, 2026How I Set Up My Personal AI Assistant (Claude + NanoClaw + Telegram) — Tino Muchenje | AI in Practice251 views · 2 comments
- May 6, 2026Nanoclaw: Containerized Claude Agent for Slack and WhatsApp — VibeDev205 views
- Feb 19, 2026The NEW #NanoClaw is Finally Here! — AskGuru187 views
- May 1, 2026I Built an AI Chief of Staff. One Month In. | AI in Practice — Tino Muchenje | AI in Practice167 views
- Mar 18, 2026The Future of Open-Source Contributions in the AI Age — Packet Pushers115 views
- Apr 24, 2026Best AI Agent Product Launch Video | Nanoclaw — Luceo Studio92 views
On Bluesky · 6
- Feb 12, 2026Uh so I highly recommend setting this up (I used nanoclaw: github.com/qwibitai/nan... combined with Telegram). Most of the benefits of… — @paulgp.com19 likes and reposts · 2 replies
- Feb 21, 2026Self-modifying AI agents: "There are no configuration files to learn. Just tell Claude Code what you want. Or run /customize for guided… — @narphorium.com2 likes and reposts
- Apr 6, 2026📦 qwibitai / nanoclaw ⭐ 26,620 (+91) 🗒 TypeScript A lightweight alternative to OpenClaw that runs in containers for security. Connects to… — @github-trending-js.bsky.social1 likes and repost
- Mar 16, 2026Próbáld inkább ezt: github.com/qwibitai/nan... — @kispocok.hu1 likes and repost · 1 reply
- Feb 24, 2026NanoClaw github.com/qwibitai/nan... — @annjose.com1 likes and repost
1 more on Bluesky
- Feb 24, 2026Check it out here: github.com/qwibitai/nan... — @jainamparmar.bsky.social0 likes and reposts · 1 reply
On Hacker News · 1
- Feb 27, 2026Show HN: Badge that shows how well your codebase fits in an LLM's context window88 points · 41 comments
Other versions6 projects use a version of this.
Word for word · 4
- gavrielc/nanoclaw★ 31k100% same
- nanocoai/nanoclaw★ 31k100% same
- TomGranot/groupguard★ 3100% same
- prathish-ks/isthmus★ 2100% same
Edited · 2
- microsoft/amplifier-app-nanoclaw★ 471% same
- ss2code/nanoclaw-ops★ 177% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository55 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- container/CLAUDE.mdCLAUDE.md
- add-anydocSkill
- add-atomic-chat-toolSkill
- add-clidashSkill
- add-codexSkill
- add-cursorSkill
- add-dashboardSkill
- add-deltachatSkill
- add-dial-numberSkill
- add-dialSkill
- add-dial-toolSkill
- add-discordSkill
- add-emacsSkill
- add-gchatSkill
- add-githubSkill
- add-imessageSkill
- add-iron-proxySkill
- add-karpathy-llm-wikiSkill
- add-linearSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-mattermostSkill
- add-mnemonSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-onecliSkill
- add-opencodeSkill
- add-resendSkill
- add-rtkSkill
- add-signalSkill
- add-slackSkill
- add-tavily-toolSkill
- add-teamsSkill
- add-telegramSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- customizeSkill
- debugSkill
- init-first-agentSkill
- learnSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-memorySkill
- migrate-nanoclawSkill
- migrate-slack-agentsSkill
- setupSkill
- slack-a2a-roomsSkill
- slack-agent-flowSkill
- update-nanoclawSkill
- update-skillsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

