Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bendrucker/claude --skill profilegit clone --depth 1 https://github.com/bendrucker/claudeWrote 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/bendrucker/claude/profile)<a href="https://agentmods.dev/skills/bendrucker/claude/profile"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/profile/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/bendrucker/claude/profile"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/profile.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.00034 | $0.01016 |
| Opus 5.5 | $0.00014 | $0.00406 |
| Sonnet 5.5 | $0.00007 | $0.00203 |
| Haiku 4.5 | $0.00003 | $0.00102 |
Grade A, and why
performance:profile 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 19d 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 — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Profile
Goal: a ranked, readable list of where the program's time goes on the scenario the user cares about, with each entry's share of the total. Every optimization decision rests on that list, so it must come from a measurement of the real scenario.
Tools
samply: !samply --version 2>/dev/null || echo "not found. Required for native and whole-process profiles."hyperfine: !hyperfine --version 2>/dev/null || echo "not found. Needed for the wall/CPU split."bun: !bun --version 2>/dev/null || echo "not found."node: !node --version 2>/dev/null || echo "not found."agent-browser: !agent-browser --version 2>/dev/null || echo "not found. Required for web apps."py-spy: !py-spy --version 2>/dev/null || echo "not found. Needed only for Python."
When a required tool is missing and the project's own tooling does not cover its job, tell the user which one, then stop.
Existing Tooling
Look for the project's own profiling setup before recording one: profiling scripts, an environment variable that turns on a profiler, a formatter for profiler output. Use it when it meets the requirements the references below are built to meet:
- Scenario. It profiles the scenario and build the user runs.
- Ranking. It ranks entries by self and inclusive time with each one's share, or writes a file that a summarizer or viewer ranks.
- Coverage. It covers every process the scenario spawns, and time spent waiting when wall time exceeds CPU.
When it misses some, use it for what it covers and add a profiler from the references for the rest.
Split Wall From CPU
Run the scenario once under hyperfine --runs 3 and compare wall time with user plus system CPU.
- CPU-bound (CPU near wall): a sampling profiler finds the hot functions.
- Waiting (wall well above CPU): the time goes to network, disk, child processes, locks, or sleeps. Find what it waits on: which child process runs longest, which request is slow. A CPU profile of a waiting program ranks the wrong things.
What ships with it
12 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/browser.md 1.8 KB
- references/go.md 1.7 KB
- references/javascript.md 2.2 KB
- references/linux-vm.md 5.3 KB
- references/python.md 1.2 KB
- references/rust.md 1.3 KB
- references/samply.md 2.7 KB
- references/shell.md 3.6 KB
- scripts/__snapshots__/samply-top.test.ts.snap 2.5 KB
- scripts/samply-top.integration.ts 2.0 KB runs code
- scripts/samply-top.test.ts 2.9 KB runs code
- scripts/samply-top.ts 9.5 KB runs code
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.
- 19d ago First seen · 67 lines · 34 tokens per session scan A a0b74ec32d72
performance:profile is a skill published in the GitHub repository bendrucker/claude (18 stars, last pushed today), licensed MIT. It adds 34 tokens to every session and 1,016 once invoked, about $0.0001 per session on Opus 5.5. 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-09-29.
Other skills, from other repositories
tidewave-integration
Tidewave MCP runtime tools — debugging, smoke testing, live state inspection, SQL queries, hex docs. Use when evaluating code in a running Phoenix app.
release-it
Build production-ready systems with stability patterns: circuit breakers, bulkheads, timeouts, and retry logic. Use when the user mentions "production outage", "circuit breaker", "deployment pipeline", "chaos engineering", "retry storm", "health checks", "my service keeps crashing", "prevent cascading failures", or…
bug-fixer
A bug reproduces, the expected behaviour is clear, and the fix stands apart from the current work.
debug
Interactive debugging workflow with hypothesis-driven probe loop. Use when: unknown bugs, script errors, silent failures, troubleshooting. Not for: known bugs (use bug-fix), GitHub issue analysis (use issue-analyze), code understanding (use code-explore). Output: debug report with probe journal + root cause + fix.
git-investigate
Git history investigation. Use when: tracking code changes, finding where bugs were introduced, root cause analysis. Not for: code exploration (use code-explore), issue analysis (use issue-analyze). Output: history trace + root cause report.
simplify
Wrap-up refactoring — simplify code, eliminate duplication, preserve behavior.