Borrowing it
Nothing to install: this file belongs to swarm-ai-research/swarm. 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/swarm-ai-research/swarm/main/.claude/commands/scrub_id.mdgit clone --depth 1 https://github.com/swarm-ai-research/swarmWrote 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/commands/swarm-ai-research/swarm/scrub_id)<a href="https://agentmods.dev/commands/swarm-ai-research/swarm/scrub_id"><img src="https://agentmods.dev/badge/commands/swarm-ai-research/swarm/scrub_id/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/commands/swarm-ai-research/swarm/scrub_id"><img src="https://agentmods.dev/badge/commands/swarm-ai-research/swarm/scrub_id.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.00000 | $0.00632 |
| Opus 5 | $0.00000 | $0.00316 |
| Sonnet 5 | $0.00000 | $0.00126 |
| Haiku 4.5 | $0.00000 | $0.00063 |
Grade A, and why
scrub_id 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/scrub_id
Find and remove private infrastructure IDs (run IDs, eval IDs, dashboard links) from the repo and redeploy if public-facing files were changed.
Usage
/scrub_id <pattern_or_id>
Examples:
/scrub_id abc123def456/scrub_id "app.primeintellect.ai"/scrub_id id_one id_two id_three
Behavior
Phase 1: Search
- For each provided ID or pattern, grep the entire repo (excluding
.git/,external/,runs/,node_modules/,.venv/,__pycache__/). - Also grep for URL patterns containing the ID (e.g. dashboard links embedding the ID).
- Present all matches with file path, line number, and surrounding context (3 lines).
Phase 2: Classify matches
Categorize each match as:
- Public — files under
docs/, blog posts, README, any.mdserved by the site. These are highest priority. - Internal — command templates (
.claude/commands/), scripts, config. Lower priority but still worth cleaning. - Data — run artifacts, logs, CSVs. Usually gitignored; flag but don't auto-edit.
Phase 3: Edit
For each match, propose a replacement:
- Dashboard URLs: remove the entire link, keep descriptive text (e.g. "Full logs on the Prime dashboard" becomes "Trained on Prime Intellect")
- Bare run/eval IDs: replace with a generic placeholder (e.g.
"your-external-run-id") or remove the line - IDs in code examples: replace with
"your-run-id"or similar
Ask the user to confirm before editing. Apply edits.
Phase 4: Verify
After edits:
- Re-grep for each pattern to confirm zero remaining matches.
- If any public-facing files (
docs/**,*.mdin repo root) were modified, prompt to run/deploy_blog.
Phase 5: Commit
Stage the changed files and commit with message:
Remove private infrastructure IDs from <list of affected areas>
Push if the user confirms.
Also check the live site
If the scrubbed content was in a blog post or docs page, use WebFetch to verify the live site at https://www.swarm-ai.org/ still shows the old (cached) content, and confirm that a redeploy will fix it.
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.
- 10d ago First seen · 64 lines · 0 tokens per session scan A 2c741a5f847b
scrub_id is a command published in the GitHub repository swarm-ai-research/swarm (42 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 632 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
story-long-scan
A command for scanning long-form online fiction rankings on platforms such as Qidian, Fanqie, and Jinjiang, then analyzing the ranking data.
story-short-scan
A tool for scanning and analysing popular short web-fiction rankings on platforms such as Zhihu Yanyan and Fanqie Short Stories.
eval-merge
Use the Read tool to load .skill-compass/{skill-name}/manifest.json. Verify.
speckit.git.validate
Validate current branch follows feature branch naming conventions.
reflect
Curate and compress recent memory. This command reviews the last 7 days of journal entries, extracts durable insights, and updates long-term memory files. Think of it as memory maintenance -- moving important things from short-term to long-term storage.
checklist
Generate a custom checklist for the current feature based on user requirements.