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 martinemde/dotfiles --skill harness-binary-spelunkinggit clone --depth 1 https://github.com/martinemde/dotfilesWrote 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/martinemde/dotfiles/harness-binary-spelunking)<a href="https://agentmods.dev/skills/martinemde/dotfiles/harness-binary-spelunking"><img src="https://agentmods.dev/badge/skills/martinemde/dotfiles/harness-binary-spelunking/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/martinemde/dotfiles/harness-binary-spelunking"><img src="https://agentmods.dev/badge/skills/martinemde/dotfiles/harness-binary-spelunking.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.00088 | $0.03085 |
| Opus 5.5 | $0.00035 | $0.01234 |
| Sonnet 5.5 | $0.00018 | $0.00617 |
| Haiku 4.5 | $0.00009 | $0.00309 |
Grade A, and why
harness-binary-spelunking 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 5d 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
100% identical to harness-binary-spelunking — 26 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 — 127 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Harness Binary Spelunking
"The harness" here means whatever agent CLI you're inspecting: Claude Code, codex, opencode, pi, or any other tool that wraps an LLM in a terminal loop. The technique is the same regardless of which one you're looking at; only the recipes fork, based on how the binary was built.
Step 0: Decide your approach
Before grepping anything, figure out which situation you're in:
- Open source, and the pinned version is tagged? Clone the source at that exact tag and read it. Fastest, most readable, no guessing at minified names. See references/source-clone.md.
- Closed source (Claude Code today), or you want ground truth of what actually shipped? Spelunk the binary directly. Source, even when it exists, is what was committed; the binary is what's running on your machine right now.
- Open source but the version isn't tagged yet, or you're debugging a discrepancy between source and behavior? Spelunk the binary even though source exists. "Open source" doesn't mean "skip verification."
Most investigations start at one of these two ends and only cross over if the first approach runs dry (source doesn't explain the behavior you're seeing; binary strings are too fragmented to be sure).
Identify the build and set up your workspace
If you're spelunking a binary (not reading source), run scripts/spelunk-init.sh before anything else. It resolves the binary, classifies the build, dumps strings once, and writes a manifest, all into a workspace shared by every recipe in this skill:
scripts/spelunk-init.sh claude
# Workspace ready: $TMPDIR/spelunk/claude
# binary: /path/to/the/real/binary
# build type: bun-js (bun markers: 7, rust markers: 118)
# strings: $TMPDIR/spelunk/claude/strings.txt
# manifest: $TMPDIR/spelunk/claude/manifest.txt
This exists because freelancing this step drifts fast: past investigations dumped to claude-strings.txt, then harness-strings.txt, with no per-tool suffix (so a second harness in the same session clobbers the first), and one reference file skipped the dump/reuse discipline entirely and re-ran strings on every recipe. One workspace shape, one script, no more re-deriving the path or the classification logic per investigation.
What ships with it
5 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.
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.
- 5d ago First seen · 127 lines · 88 tokens per session scan A 0c8cfff171cf
harness-binary-spelunking is a skill published in the GitHub repository martinemde/dotfiles (10 stars, last pushed 2d ago), licensed ISC. It adds 88 tokens to every session and 3,085 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to harness-binary-spelunking, differing in 26 lines, and is treated as a copy.
Other skills, from other repositories
chrome-devtools
Debug Chrome with DevTools MCP: console, network, performance, accessibility.
full-review
Full review or routine upkeep: read every repo area, fix tools, dead code, stale config, and ignore files, and prove all checks pass.
systematic-debugging
Debug failures to root cause and benchmark fixes: DNS/TLS, Pyinstrument, Memray, hyperfine, oha, Locust.
diagnose-ci
Investigate failing REMOTE CI runs on GitHub Actions: find the failed run, pull the failed-step logs with gh, identify the root cause (compile error, test failure, lint, missing secret, timeout), and recommend a fix. Read-only: it does not commit, push, or edit. Use when CI is red, a GitHub Actions run failed, or the…
triage-dotfiles-env
Playbook of known failure modes in this dotfiles stack: pipx "bad interpreter" after Python rebuilds, gpg commit-signing failures, direnv/nix shellHook running bash instead of zsh, Powerlevel10k instant-prompt warnings, and Neovim plugin errors from removed Lua APIs. Use when a shell startup error, git signing…
fix-and-retry
Diagnose a failing CI run, apply the code fix, commit it, push, and watch the re-run until it passes or fails -- the full fix-and-retry loop in one shot. Use after a pipeline fails and the user says "fix it and retry", "fix the CI and push", or "make CI green". Do NOT use for a read-only investigation that stops at a…