Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add sdsrss/claudemd/plugin install claudemdWrote 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/sdsrss/claudemd/claudemd-statusline)<a href="https://agentmods.dev/commands/sdsrss/claudemd/claudemd-statusline"><img src="https://agentmods.dev/badge/commands/sdsrss/claudemd/claudemd-statusline.svg" alt="Measured on agentmods" 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.01427 |
| Opus 5 | $0.00000 | $0.00714 |
| Sonnet 5 | $0.00000 | $0.00285 |
| Haiku 4.5 | $0.00000 | $0.00143 |
Grade B, and why
claudemd-statusline scanned grade B with 1 finding 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
description: Register claudemd's PS1-style statusLine (user@host:path (branch) model [ctx:N% · 5h:N% · 7d:N%] — context / 5h quota / weekly quota, all used %) in ~/.claude/settings.json. Use when (1) the user asks to add How it starts
The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Usage: /claudemd-statusline | /claudemd-statusline --force | /claudemd-statusline check | /claudemd-statusline remove
Step 0 — detect (deterministic, no writes)
Run: node ${CLAUDE_PLUGIN_ROOT}/scripts/statusline-adopt.js detect --json
Branch on verdict:
absent→ slot is free. Continue to Step 1 (adopt).claudemd→ already configured. Report the stable path~/.claude/claudemd-statusline.shanddest.matchesShipped. Iffalse, offer to re-run adopt (refreshes the renderer copy). STOP unless the user wants a refresh.foreign→ another provider owns the slot (reportcurrent). Do NOT write. Tell the user their existing statusline is untouched and that/claudemd-statusline --forcewill take it over (saving the current command soremovecan restore it). Continue to Step 1 ONLY if the user passed--force.host→ the slot is owned by a composite host (host, e.g.code-graph) that renders multiple providers. Do NOT clobber it. Rundetect --jsonand readproviders+guestRegistered:guestRegistered: true→ claudemd is already a segment. Report and STOP unless the user wants a refresh (re-run adopt).guestRegistered: false→ claudemd will register as a guest so both segments show (claudemd | code-graph). Read thepsCandidatesarray fromdetect --json— each entry is a hand-made PS1 (abashscript under~/.claude/that isn't a plugin, e.g.user-ps1) claudemd can supersede. If it is non-empty, list thoseids and ASK: supersede one (adopt --supersede=<id>, saved for restore) or keep both (adopt). Continue to Step 1.
check mode (no writes)
Run Step 0. Report verdict, current, and whether ~/.claude/claudemd-statusline.sh exists and matches the shipped renderer (dest.matchesShipped). STOP.
remove mode
Show the transition first: run detect --json; if verdict is claudemd, state what settings.statusLine will become (restored prior command if one was saved, else removed) and that ~/.claude/claudemd-statusline.sh will be deleted. If verdict is host and guestRegistered, remove unregisters claudemd from the host's registry (restoring a superseded provider if one was saved) and deletes the renderer; the host keeps the slot. Then run:
node ${CLAUDE_PLUGIN_ROOT}/scripts/statusline-adopt.js remove --json
Report the action (removed / restored / unregistered / not-ours). For unregistered, cite restored if any. If not-ours, nothing was changed.
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 · 48 lines · 0 tokens per session scan B 2cf2074b0112
claudemd-statusline is a command published in the GitHub repository sdsrss/claudemd (2 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,427 tokens. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
plan
Turn an approved spec into an implementation plan an engineer with zero context could execute — with a quality controller that blocks placeholders and hollow tasks.
simplify
The over-engineering review: five tags (delete, stdlib, native, yagni, shrink), a mandatory replacement per finding, and a real null result when there is nothing to cut.
test
Run the repository's actual test suite: every ecosystem's canonical runner — NOT run is never green.
git
The pre-finish status: branch, hygiene findings, message checks, workflow lint, template state.
edit
An interview-style command for editing the trigger words used by existing personas. Personas are predefined viewpoints, such as a developer, designer, or lawyer, that guide how work is approached.
sm-swab
Run slop-mop's iterative development loop for this repository.