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 agentmods add instructions/michellzappa/headroom/agents-mdgit clone --depth 1 https://github.com/michellzappa/headroomWhat 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 | $0.07510 | $0.07510 |
| Opus 5 | $0.03755 | $0.03755 |
| Sonnet 5 | $0.01502 | $0.01502 |
| Haiku 4.5 | $0.00751 | $0.00751 |
Grade C, and why
headroom AGENTS.md scanned grade C with 2 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 yesterday.
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.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -s localhost:8737/usage | python3 -c 'import json,sys; print([p for p in json.load(sys.stdin)["providers"] if p["id"]=="claude"])' Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s localhost:8737/usage | python3 -c 'import json,sys; print([p for p in json.load(sys.stdin)["providers"] if p["id"]=="claude"])' How it starts
The opening of the file, as written. The whole thing — 598 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Working on Headroom
Conventions and traps for anyone — human or agent — changing this repo. Several agents often work here at once, which is what most of this is about.
Build
XcodeGen owns the project. Never hand-edit macos/Headroom.xcodeproj; edit
macos/project.yml and regenerate. Always go through the script, which syncs
the embedded host first (bare xcodegen generate fails on a fresh clone):
./scripts/gen-project.sh
Anything touching watchOS — including the iPhone app, which embeds the watch app — needs the beta toolchain on this Mac. The default Xcode reports a watchOS SDK and even has it on disk, but resolves every destination to "watchOS 26.5 is not installed":
export DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer
Do not pass -sdk iphonesimulator to the iOS build under the beta. It
overrides the SDK for the embedded watch complication too, which then fails
with "'accessoryCorner' is unavailable in iOS" — a red herring.
-destination 'generic/platform=iOS Simulator' alone builds clean.
The green gate, all four targets:
xcodebuild test -project macos/Headroom.xcodeproj -scheme Headroom -configuration Debug -derivedDataPath macos/.build CODE_SIGNING_ALLOWED=NO
xcodebuild build -project macos/Headroom.xcodeproj -scheme HeadroomMobile -destination 'generic/platform=iOS Simulator' -derivedDataPath macos/.build-ios CODE_SIGNING_ALLOWED=NO
xcodebuild build -project macos/Headroom.xcodeproj -scheme HeadroomWatch -destination 'generic/platform=watchOS Simulator' -derivedDataPath macos/.build-watch CODE_SIGNING_ALLOWED=NO
./scripts/check-glossary-copy.sh
A green suite here can be red on CI, and the gap is your own machine's
data. Parts of /usage only exist when the local state behind them does:
history needs ~/.claude session logs, Supabase and Plausible need keys. A
runner has none of it, so a contract assertion that passes against your
served document can fail against a bare one. This has already shipped a red
main once — six history keys looked served on a Mac with 400 days of them
and were absent everywhere else.
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.
- yesterday First seen · 598 lines · 7,510 tokens per session scan C 987f5ff1eb74
headroom AGENTS.md is an instructions file published in the GitHub repository michellzappa/headroom (263 stars, last pushed 5d ago), licensed MIT. It adds 7,510 tokens to every session, about $0.0376 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
maui-labs AGENTS.md
Instructions for dotnet/maui-labs, covering agent instructions, repository overview, products, technology stack and building.
Xcode-Build-Optimization-Agent-Skill copilot-instructions.md
Instructions for AvdLee/Xcode-Build-Optimization-Agent-Skill, covering repository mission, agent skill requirements, behavior constraints, build optimization focus areas and common issues to flag.
maui-labs testing.instructions.md
Instructions for dotnet/maui-labs, covering testing guide, test framework, test projects, running tests and all tests.
MarkdownView AGENTS.md
Instructions for keitaoouchi/MarkdownView, covering agents, technical components, relationships (data/event flow overview), extension points (overview) and platform / distribution.
AppClaw CLAUDE.md
Instructions for appclawhq/AppClaw, covering claude.md, what is appclaw?, build & run commands, architecture and entry point & cli modes (src/index.ts).
ios-simulator-skill CLAUDE.md
Instructions for conorluddy/ios-simulator-skill, covering claude.md - developer guide, project overview, project structure, architecture patterns and pattern 1: class-based script design.