// live preview
// the vision
Everyone on a Claude plan lives with two invisible meters — the 5-hour session and the 7-day week — and finds them the bad way: a hard stop mid-task. Headroom puts the number in the Mac menu bar, zero config and zero network: it reads the usage numbers Claude Code's own status line writes locally — no token, no API key, no Keychain, no network calls, ever. Free; a one-time license only if real demand shows up.
read the full vision →
// milestones · north star
- ✓It exists — the app shows a REAL weekly % in the menu bar (Keychain token → usage endpoint)
- ✓It's complete — session + weekly, color-coded, reset countdowns, launch-at-login
- ✓It's downloadable — signed + notarized build live at headroom.walls.sh, downloads counted honestly
- ✓First stranger download — counter hit 1 (Lap 9)
- →25 downloads + first external feedback
- ·📥 100 downloads — the North Star; then decide the license question with real data
⚑ needs you · 2
Submit awesome-claude-code form on/after 2026-06-16 (packet in docs/LISTINGS.md)
ProductHunt launch (packet in docs/PRODUCTHUNT.md)PARKED 2026-06-11 (triage): pick a real launch day (suggested: after 100 downloads so the social-proof line is honest). Login gets banked in the one-sitting session so launch day is friction-free.
// the work · 157
- ✓Lap 156: /database page live — headroom.walls.sh/database, targets 'claude code database/prisma/sql'. Schema changes, column renames (RENAME not drop-add), EXPLAIN ANALYZE optimization, CONCURRENTLY indexes, N+1 fixes, cursor pagination, large table migrations (batched backfill), seed factories, schema design tradeoffs. 60 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 155: /rust page live — headroom.walls.sh/rust, targets 'claude code rust/borrow checker/lifetimes'. CLAUDE.md (no-clone-to-fix-borrow rule), borrow errors (explain fix), lifetime resolution (read callers first), clippy fix loop, thiserror error types, unit/integration tests, traits/generics, async (MutexGuard-across-await fix), criterion benchmarks. 59 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 154: /vue page live — headroom.walls.sh/vue, targets 'claude code vue/vuejs/composition api'. CLAUDE.md, component gen (script setup), composables, Options→Composition migration (whole-codebase path), Pinia stores (setup syntax + cross-store deps), Vue Router guards/lazy loading, vue-tsc verifier, Vue Test Utils, Playwright, VeeValidate+Zod. 58 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 153: /svelte page live — headroom.walls.sh/svelte, targets 'claude code svelte/sveltekit'. CLAUDE.md, component gen, load functions, stores (writable/derived/localStorage), API +server.ts, transitions, TS migration (svelte-check), Vitest+STL tests, Playwright, form actions, hooks.server.ts auth. 57 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 152: /react page live — headroom.walls.sh/react, targets 'claude code react/jsx'. Component generation (matches existing), hook extraction, prop drilling fix (read-all-first), class→function migration, JS→TS (leaf-first), RTL test generation, Zustand state refactor, memo/useMemo perf fixes, Playwright e2e, React Query. 56 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 151: /api page live — headroom.walls.sh/api, targets 'claude code api/rest api'. CLAUDE.md for API projects, scaffold from description, route generation (matches existing patterns), OpenAPI spec + @fastify/swagger, Zod validation, global error handler, test loop (supertest+Vitest), auth middleware, DB migration chain, patterns table. 55 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 150: /go page live — headroom.walls.sh/go, targets 'claude code go/golang'. CLAUDE.md for Go, table-driven tests, error wrapping, interface extraction, go vet/staticcheck, race detector, goroutine patterns, struct tags, go mod. 54 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 149: /docker page live — headroom.walls.sh/docker, targets 'claude code docker/dockerfile'. Generation from description, multi-stage builds, layer caching fix, Compose debugging (networking/healthchecks/volumes), container networking, Claude Code in containers, .dockerignore. 53 SEO pages. Downloads: 76 · Jun 12
- ✓Lap 148: /nextjs page live — headroom.walls.sh/nextjs, targets 'claude code nextjs/next.js/app router'. CLAUDE.md for Next.js, App Router conventions, Server/Client component decisions, API routes with Zod, data fetching, middleware, Playwright tests, Pages→App Router migration audit-first strategy. 52 SEO pages. Downloads: 76 (+2 jump) · Jun 12
- ✓Lap 147: /multifile page live — headroom.walls.sh/multifile, targets 'claude code multiple files/multi-file editing'. Read-first pattern, directory-scope tasks, cross-file rename/move, coordinated layer changes, @file references, large-project scoping, verification step requirement, budget note. 51 SEO pages. Downloads: 74 · Jun 12
- ✓Lap 146: /typescript page live — headroom.walls.sh/typescript, targets 'claude code typescript/tsc/migration'. CLAUDE.md for TS, tsc verifier loop, JS-to-TS migration (leaf-first), strict mode migration, interface design, utility types, categorize-first error strategy, React/Next.js patterns, Zod inference. 50 SEO pages. Downloads: 74 · Jun 12
- ✓Lap 145: /python page live — headroom.walls.sh/python, targets 'claude code python', 'pytest/django/fastapi/data science'. CLAUDE.md for Python, test generation with fixtures/parametrize, mypy fix loop, venv/pyproject migration, Django/FastAPI patterns, pandas analysis, refactoring. 49 SEO pages. Downloads: 74 · Jun 12
- ✓Lap 144: /zed page live — headroom.walls.sh/zed, targets 'claude code zed editor'. Zed AI vs CC table, terminal pane workflow, CLAUDE.md for Rust projects, split pane + diff gutter pattern, keymap.json bindings, Rust patterns (unwrap/clippy/benchmarks), BYOK quota sharing warning. 48 SEO pages. Downloads: 74 · Jun 12
- ✓Lap 143: /git page live — headroom.walls.sh/git, targets 'git claude code', 'claude code commit message/merge conflict/pr description'. Diff piping, pre-push review, conflict resolution, PR desc generation, history analysis, rebase planning, git hooks, stash/branch nav. 47 SEO pages. Downloads: 74 · Jun 12
- ✓Lap 142: /jetbrains page live — headroom.walls.sh/jetbrains, targets 'claude code jetbrains/intellij/pycharm/webstorm'. Plugin vs terminal table, Marketplace install, embedded terminal workflow, CLAUDE.md for Maven/Gradle, CC vs JetBrains AI table, GoLand/PyCharm patterns. 46 SEO pages. Downloads: 73 · Jun 12
- ✓Lap 141: /test page live — headroom.walls.sh/test, targets 'writing tests with claude code', 'tdd claude code'. test-fix loop, TDD two-step, coverage goals, Jest/pytest/Go/Swift patterns, --print pipe, session budget warning. 45 SEO pages. Downloads: 72 · Jun 12
- ✓Lap 140: /refactor page live — headroom.walls.sh/refactor, targets 'refactoring with claude code'. Rename-across-files, pattern extraction, type migration, module reorg, staged refactors, test preservation, incremental verification, budget warning. 44 SEO pages. Downloads: 72 · Jun 12
- ✓Lap 139: /vim page live — headroom.walls.sh/vim, targets 'vim claude code'. tmux split, :terminal, .vimrc keymaps, statusline jq/cached variant, PS1, Headroom upsell. 43 SEO pages. Downloads: 69 · Jun 12
- ✓Lap 138: /neovim page live — headroom.walls.sh/neovim, targets 'neovim claude code'. tmux/built-in terminal split, init.lua keymaps, Lua statusline function, lualine config, shell PS1, tmux status bar. 42 SEO pages. Downloads: 68 · Jun 12
- ✓Lap 137: /install page live — headroom.walls.sh/install, targets 'how to install claude code', 'install claude code mac/linux/windows'. Priority 1.0 in sitemap. 4-step guide, platform notes, troubleshooting, Headroom CTA at end. 41 SEO pages. Downloads: 67 · Jun 12
- ✓Lap 136: /continue page live — headroom.walls.sh/continue, targets 'continue.dev vs claude code'. Open-source/model-flexibility/local-models comparison, shared quota warning for BYOK users. 40 SEO pages. Downloads: 67 · Jun 12
- ✓Lap 135: /debug page live — headroom.walls.sh/debug, targets 'debugging with claude code', 'claude code debug'. error/context/fix/verify pattern, test-fix loop, piping logs, --print for CI debug, session drain warning (test loops burn 5h fast), anti-patterns. 39 SEO pages. Downloads: 67 · Jun 12
- ✓Lap 134: /vscode page live — headroom.walls.sh/vscode, targets 'claude code vscode extension', 'claude code vs code'. VS Code extension install, diff viewer workflow, settings.json vs CLAUDE.md, Copilot comparison table, Headroom upsell for VS Code flow. 38 SEO pages. Downloads: 67 · Jun 12
- ✓Lap 133: /windsurf page live — headroom.walls.sh/windsurf, targets 'claude code vs windsurf', 'windsurf cascade vs claude code'. IDE-embedded vs terminal-agent comparison, Cascade vs Claude Code table, BYOK quota-sharing warning, credits vs rolling windows section. 37 SEO pages. Downloads: 66 · Jun 12
- ✓Lap 132: /copilot page live — headroom.walls.sh/copilot, targets 'claude code vs github copilot'. Side-by-side table, when Claude Code wins (multi-file/agentic), when Copilot wins (inline), rolling window vs monthly reset, Headroom upsell. 36 SEO pages. Downloads: 65 · Jun 12
- ✓Lap 131: /cursor page live — headroom.walls.sh/cursor, targets 'claude code vs cursor'. Side-by-side table, when each wins, they're complementary, quota-sharing for BYOK Cursor users. 35 SEO pages. Downloads: 65 · Jun 12
- ✓Lap 130: /hooks page live — headroom.walls.sh/hooks, targets 'claude code hooks', 'PreToolUse hook', 'statusLineHook'. All 5 hook types with can-block table, settings.json syntax, block-rm-rf example, PostToolUse notification, Stop cleanup, statusLineHook polling, chaining. 34 SEO pages. Downloads: 64 · Jun 11
- ✓Lap 129: /keyboard page live — headroom.walls.sh/keyboard, targets 'claude code keyboard shortcuts'. Escape/Ctrl+C/Tab/history nav, @-refs/!-shell//-commands prefixes, readline editing, multi-line input, tool-use interrupt semantics, VS Code bindings. 33 SEO pages total. Downloads: 64 · Jun 11
- ✓Lap 128: /ci page live — headroom.walls.sh/ci, targets 'claude code github actions', 'claude code CI', '--print flag'. Three copy-paste GitHub Actions workflows: PR review with comment, TODO flagging, release notes. CI flags table, stdin piping, exit codes, cost control. 32 SEO pages total. Downloads: 64 · Jun 11
- ✓Lap 127: /env page live — headroom.walls.sh/env, targets 'claude code environment variables', 'ANTHROPIC_API_KEY claude code'. Full env var guide: shell profile, direnv/.envrc, all supported env vars table, settings.json env block, CI injection, verification. 31 SEO pages total. Downloads: 64 · Jun 11
- ✓Lap 126: /memory page live — headroom.walls.sh/memory, targets 'claude code memory', 'CLAUDE.md', 'claude code project instructions'. Full CLAUDE.md guide: format, three-tier scope, /memory command, templates, ~/.claude connection upsell. 30 SEO pages total. Downloads: 64 · Jun 11
- ✓Lap 125: v0.3.5 — single-stat menu bar title (shows top of session/week), display toggle in dropdown ('Show All Stats' / 'Show Top Stat Only'), Update Headroom button (downloads + in-place replaces + relaunches). Notarized. Downloads: 62 · Jun 11
- ✓Lap 124: /permissions page live — headroom.walls.sh/permissions, targets 'claude code permissions'. allow/deny syntax, all tool names, common patterns, --dangerously-skip-permissions, statusLineHook upsell in same settings.json. 29 SEO pages total. Downloads: 57 · Jun 11
- ✓Lap 123: /agent page live — headroom.walls.sh/agent, targets 'claude code agent mode'. Subagents share session/weekly quota, 60% rule before agent tasks, --print for scripts, monitoring during unattended runs. 28 SEO pages total. Downloads: 57 · Jun 11
- ✓Lap 122: /warp page live — headroom.walls.sh/warp, targets 'warp terminal claude code'. zsh/bash prompt block, MOTD, Warp Drive workflow, Warp AI vs Claude Code comparison. 27 SEO pages total. Downloads: 57 · Jun 11
- ✓GitHub listings blitz — 5 list PRs + 2 issues + 1 comment + 2 stale PR descriptions fixed, all via gh CLI in one pass · Jun 11
- ✓Lap 121: /commands page live — headroom.walls.sh/commands, targets 'claude code slash commands'. Complete reference: /help /clear /compact /usage /cost /model /config /memory /review /mcp + custom commands. 26 SEO pages total. Downloads: 55 · Jun 11
- ✓Lap 120: /log page live — headroom.walls.sh/log, targets 'log claude code usage over time'. Cron logger script, CSV format, jq queries, daily cost summary, weekly trend, gnuplot visualization. 25 SEO pages total. Downloads: 55 · Jun 11
- ✓Lap 119: /mcp page live — headroom.walls.sh/mcp, targets 'claude code mcp setup'. mcpServers syntax, stdio/SSE transports, filesystem/GitHub/Postgres examples, statusLineHook overlap. 24 SEO pages total. Downloads: 55 · Jun 11
- ✓Lap 118: /settings page live — headroom.walls.sh/settings, targets 'claude code settings.json'. Complete reference: all fields, hooks, statusLineHook as Headroom install trigger. 23 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 117: /tips page live — headroom.walls.sh/tips, targets 'claude code tips and tricks'. 12-tip hub linking to all deep-dive pages. 22 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 116: /alfred page live — headroom.walls.sh/alfred, targets 'alfred claude code'. Keyword script + Script Filter JSON output. 21 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 115: /raycast page live — headroom.walls.sh/raycast, targets 'raycast claude code'. Script Command in compact + fullOutput modes with reset countdowns. 20 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 114: /statusline page live — headroom.walls.sh/statusline, targets 'claude code status line' + 'statuslinehook'. All fields explained, hook setup, jq examples. 19 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 113: /compact page live — headroom.walls.sh/compact, targets 'claude code /compact'. Context-session relationship explained. 18 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 112: Extended Reddit blitz — 12 more language subs: java, elixir, kotlin, csharp, haskell, lua, cpp, dotnet, ruby, scala, clojure, rails. All live. 33 total successful subreddit posts today. Downloads: 54 · Jun 11
- ✓Lap 111: /brew page live — headroom.walls.sh/brew, targets 'brew install headroom' + 'patwalls tap homebrew'. Full Homebrew install guide. 17 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 110: /weekly page live — headroom.walls.sh/weekly, targets 'claude code 7 day limit'. Slow-drain window explainer, jq recipe, pace forecast, avoidance strategies. 16 SEO pages total. Downloads: 54 · Jun 11
- ✓Lap 109: /session page live — headroom.walls.sh/session, targets 'claude code 5 hour session limit'. Rolling window explainer, jq recipes, sessionResetSec usage. 15 SEO pages total. Downloads: 53 · Jun 11
- ✓Lap 108: Reddit blitz — 20 subreddits in one session (SoftwareEngineering, commandline, zsh, bash, Python, swift, neovim, vim, rust, LocalLLaMA, typescript, javascript, webdev, golang, docker, devops, emacs, cursor, SideProject, MacApps). Per-subreddit limit confirmed. Downloads: 50→53 · Jun 11
- ✓Lap 107: /starship page live — headroom.walls.sh/starship, targets 'starship claude code' + 'claude code usage starship prompt'. Dedicated Starship custom module guide. 14 SEO pages total. HN rest (flagged comment in flow state thread). Downloads: 50 · Jun 11
- ✓Lap 106: /reset page live — headroom.walls.sh/reset, targets 'when does claude code rate limit reset' (high-intent frustrated-user query). Rolling window explainer + countdown snippets. 13 SEO pages total. Downloads: 50 · Jun 11
- ✓Lap 105: r/softwareengineering post live (2.5M subs, architecture angle). Fixed template literal backtick escaping bug in the Reddit script. r/datascience + r/ML + r/productivity still hitting spam filter (per-subreddit limit pattern). Downloads: 50 · Jun 11
- ✓Lap 104: /model page live — headroom.walls.sh/model, targets 'what model does claude code use' + 'claude code model indicator'. 12 SEO pages total. Deploy must run from site/ not repo root. Downloads: 50 · Jun 11
- ✓Lap 103: /tmux page live — headroom.walls.sh/tmux, targets 'claude code tmux status bar'. r/softwareengineering + r/MachineLearning scripts written for tomorrow's Reddit reset. Downloads: 50 (up from 48) · Jun 11
- ✓Lap 102: context window % added to status bar title — CC 45%·74%·64% (session·weekly·context). Render.swift + --print harness verified. Site changelog shows 'Coming in v0.3.5'. Pat needs to run bundle.sh 0.3.5. Downloads: 48 · Jun 11
- ✓Lap 101: /shell page live — headroom.walls.sh/shell, targets 'claude code usage shell prompt'. zsh RPROMPT/PS1, bash PS1, fish right_prompt, color-coded RPROMPT, jq one-liners, Starship module. Bug fixed: unescaped ${} in template literal. Downloads: 48 · Jun 11
- ✓Lap 100: HN comment on 'Ask HN: What coding agents are you using?' (item #48485669) — Claude Code + Headroom workflow, session/weekly limit visibility, brew install. 3rd HN comment today (pausing HN for 24h). Downloads: 48 · Jun 11
- ✓Lap 99: /cost page live — headroom.walls.sh/cost, targets 'claude code session cost' + 'claude code cost tracking' queries. jq examples, --print flag, cron log recipe. Sitemap + footer. Downloads: 48 · Jun 11
- ✓Lap 98: /notifications page live — headroom.walls.sh/notifications, targets 'claude code notification alert rate limit', configurable thresholds via ~/.claude/headroom-prefs.json, added to sitemap + footer. lobste.rs allowlisted but needs login (pat). Downloads: 48 · Jun 11
- ✓Lap 97: HN comment on 'OpenAI mulls slashing prices' thread (item #48486486, comment #48492540) — Claude Code doubled limits for Opus 4.8 discussion, Headroom zero-network-call pitch. Downloads: 48 · Jun 11
- ✓Lap 96: r/learnprogramming LIVE — https://old.reddit.com/r/learnprogramming/comments/1u36tab/ (2M subs, beginner-stops angle). r/productivity + r/datascience blocked (Reddit anti-spam down to ~1 post per reset). Reddit saturated for session. Downloads: 48 · Jun 11
- ✓Lap 95: r/productivity + r/learnprogramming scripts written (2M subs each). PR audit: 6 awesome-list PRs open, none merged, awesome-mac has MIT update comment. Reddit blocked 1+ hrs. Downloads: 48 · Jun 11
- ✓Lap 94: HN comment on 'Claude Opus 4.8' thread (item #48311647, comment #48312751) — zero-network-call architecture + statusLineHook description. Script headroom-hn-findthread.mjs written. Downloads: 48 · Jun 11
- ✓Lap 93: llms.txt updated — 4 new trigger phrases (context window, daily limit, reset countdown, CLI JSON monitoring), 'Guides' section linking /limits /context /hook /faq, community traction section (18 subreddits + HN). Downloads: 48 · Jun 11
- ✓Lap 92: README 'Guides and deep-dives' section — 4 bullet links to /hook, /limits, /context, /faq. 'Seen on' expanded to 12 communities. Downloads: 48 · Jun 11
- ✓Lap 91: /faq page live — headroom.walls.sh/faq, 10 FAQ items targeting question searches. 'Does claude code have a daily limit?', 'why does claude code stop mid-task?', etc. Sitemap + footer. Downloads: 48 · Jun 11
- ✓Lap 90: Headroom submitted to onmymenubar.app (curated Mac menu bar directory). Tally form, no login needed. Email: patrickswalls@gmail.com · Jun 11
- ✓Lap 89: /limits page live — headroom.walls.sh/limits, targets 'claude code rate limit' queries. Rolling window mechanics, fast-consumption patterns, Headroom passive monitoring. Sitemap + footer. Downloads: 48 · Jun 11
- ✓Lap 88: r/artificial blocked — Reddit anti-spam fired after 4 posts in new session. Pattern: ~4 posts per burst allowed. Stopping Reddit posting. · Jun 11
- ✓Lap 87: r/commandline post live — https://old.reddit.com/r/commandline/comments/1u3407d/ (Discussion flair). JSON/jq hook angle for terminal users. Downloads: 48 · Jun 11
- ✓Lap 86: r/swift post live — https://old.reddit.com/r/swift/comments/1u33zuw/ Native Swift/AppKit, NSStatusItem story. Downloads: 48 · Jun 11
- ✓Lap 85: r/SideProject post live — https://old.reddit.com/r/SideProject/comments/1u33zed/ 'Claude Code built an app to monitor itself' angle. Downloads: 48 · Jun 11
- ✓Lap 84: r/MacApps post live — https://old.reddit.com/r/macapps/comments/1u33y7j/ (Free flair). Reddit limit reset between sessions (~4 posts allowed per burst). Downloads: 48 · Jun 11
- ✓Lap 83: /context page live — headroom.walls.sh/context, SEO article targeting 'claude code context window' queries. Explains 3 limits (session/weekly/context), why context degradation differs from rate limits, how Headroom shows all three. Added to sitemap + footer. Downloads: 45 · Jun 11
- ✓Lap 82: README improved — Seen on community links (HN + 7 subreddits), /hook article link, deep-dive section. Downloads: 45 · Jun 11
- ✓Lap 81: r/datascience blocked (Reddit posting limit hit after 18+ posts today). Pivoted to non-Reddit distribution. · Jun 11
- ✓Lap 80: /hook article on HN (item #48492118, correct ID) — top of /newest, author comment seeded. HN title max is ~80 chars. Downloads: 45 · Jun 11
- ✓Lap 79: r/docker post live — https://old.reddit.com/r/docker/comments/1u32y5k/ (100k subs). Container devs angle. Downloads: 45 · Jun 11
- ✓Lap 78: r/programming link post live — https://old.reddit.com/r/programming/comments/1u32vz0/ (6M subs). /hook article as technical piece. Downloads: 45 · Jun 11
- ✓Lap 77: /hook article live — statusLineHook deep-dive, tmux example, hook chaining docs, added to sitemap. Downloads: 44 · Jun 11
- ✓Lap 76: r/typescript post live — https://old.reddit.com/r/typescript/comments/1u32s1v/ (100k subs). Downloads: 44 · Jun 11
- ✓Lap 75: Landing page social proof — live download count + Seen on bar (HN, r/ClaudeAI, r/neovim, r/vim, r/LocalLLaMA, r/devops). Downloads: 44 · Jun 11
- ✓Lap 74: r/golang post live — https://old.reddit.com/r/golang/comments/1u32mty/ (100k subs). Architecture angle, jq pipeline. Downloads: 44 · Jun 11
- ✓Lap 73: r/rust post live — https://old.reddit.com/r/rust/comments/1u32kyq/ (100k subs). Zero-network hook architecture angle. Downloads: 44 · Jun 11
- ✓Lap 72: r/programming blocked — link-only subreddit, self-posts disabled. Removed from distribution queue. · Jun 11
- ✓Lap 71: r/javascript post live — https://old.reddit.com/r/javascript/comments/1u32hpy/ (300k subs). Next.js/TypeScript refactor angle. Downloads: 44 · Jun 11
- ✓Lap 70: r/Python post live — https://old.reddit.com/r/Python/comments/1u32g9l/ (800k subs). ML/data science angle, JSON file pipeable with jq. Downloads: 44 · Jun 11
- ✓Lap 69: r/bash post live — https://old.reddit.com/r/bash/comments/1u32edy/ (60k subs, submission flair). Hook architecture angle: ~/.claude/headroom-usage.json readable with jq. Downloads: 41 · Jun 11
- ✓Lap 68: r/webdev post live — https://old.reddit.com/r/webdev/comments/1u32co0/ (500k subs, Discussion flair). Angle: React/Node/TypeScript devs hit session limits mid-refactor. Downloads: 41 · Jun 11
- ✓Lap 67: r/cursor post live — https://old.reddit.com/r/cursor/comments/1u2vpgn/ (50k subs). MacMenuBar.com surfaced as human-only (reCAPTCHA + domain email). Downloads: 38 · Jun 11
- ✓Lap 66: r/devops post live — https://old.reddit.com/r/devops/comments/1u2vmyn/ (1M subs, Tools flair). Downloads: 38 · Jun 11
- ✓Lap 65: r/LocalLLaMA post live — https://old.reddit.com/r/LocalLLaMA/comments/1u2v8pi/ (800k subs, largest yet). Downloads: 38 · Jun 11
- ✓Lap 64: r/tmux post live — https://old.reddit.com/r/tmux/comments/1u2v7zn/ (80k subs). Downloads: 38 · Jun 11
- ✓Lap 63: r/zsh post live — https://old.reddit.com/r/zsh/comments/1u2utnj/ (Discussion flair). Downloads: 32 · Jun 11
- ✓Lap 62: r/emacs post live — https://old.reddit.com/r/emacs/comments/1u2uss6/ (80k subs). Downloads 31→32 · Jun 11
- ✓Lap 61: r/commandline post live — https://old.reddit.com/r/commandline/comments/1u2us1d/ (118k subs, Discussion flair). Terminal-first angle. Downloads: 31 · Jun 11
- ✓Lap 60: onmymenubar.app submitted — Tally iframe form, 3 fields (App Name, Website, Email), Tally success confirmation received. Fix: frameLocator('iframe[src*="tally.so"]') for all Tally embeds · Jun 11
- ✓Lap 59: r/vim post live — https://old.reddit.com/r/vim/comments/1u2unzj/ (230k subs, Discussion flair). Flair pattern confirmed working across subreddits. Downloads: 31 · Jun 11
- ✓Lap 58: r/neovim post live — https://old.reddit.com/r/neovim/comments/1u2umfe/ (200k subs, Discussion flair). Root cause of 7 failed flair attempts found: old Reddit has TWO flair systems — user flair (a.flairselectbtn) vs post flair (button.flairselect-btn + #newlink-flair-dropdown + hidden inputs flair_id/flair_text). Fix: set inputs directly. r/macOS script also updated with same fix. Downloads: 31 · Jun 11
- ✓Lap 57: 'Open Claude Code' menu item — NSWorkspace.urlForApplication(bundleID) with /Applications/Claude.app fallback; build clean; changelog deployed. Downloads: 31 · Jun 11
- ✓Lap 56: /alternatives live — honest comparison of Headroom vs. CCSeva, ccusage, ClaudeBar, Claude-Code-Usage-Monitor, SessionWatcher; table + per-tool cards + 'when to use which'; sitemap updated. Downloads: 31 · Jun 11
- ✓Lap 55: /guide live — 'How to monitor Claude Code usage limits' SEO page; sitemap updated; guide link in footer. Downloads: 31 · Jun 11
- ✓Lap 54: dual display — menu bar now shows CC 10%·65% (session·weekly simultaneously); Render.swift one-liner, --print verified, site copy + changelog updated, deployed. Downloads: 30 · Jun 11
- ✓Lap 53: r/swift post live — Swift community (80k subs), AppKit/zero-network angle; https://reddit.com/r/swift/comments/1u2sefx/. 3 new awesome-list scripts: awesome-ai-devtools (3.8k★), awesome-claude-plugins (1.7k★). r/macOS queued for Saturday 2026-06-13 · Jun 11
- ✓Lap 52: r/SideProject post live — "Claude Code built a tool to monitor Claude Code" meta-story; 100k subs; agent-browser; https://reddit.com/r/SideProject/comments/1u2rtbh/ · Jun 11
- ✓Lap 51: /changelog page live — styled version history (v0.3.4, v0.3.2, v0.3.1, v0.2.x + v0.3.6/v0.3.7 preview); in sitemap; footer link; deployed Railway · Jun 11
- ✓Lap 50: "Copy Stats" menu item — copies session/week/context/model/cost+countdowns to clipboard as plain text (⌘C); build clean; v0.3.7 feature on main; downloads 25→28 · Jun 11
- ✓Lap 49: Two new distribution targets found + scripted — onmymenubar.app (form, no login) + JSONbored/awesome-claude (PR, 262★); discovery sweep found 6 competitor tools, patterns logged · Jun 11
- ✓Lap 48: README updated with v0.3.6 features — threshold notifications + pace forecast now listed in feature list · Jun 11
- ✓Lap 47: GitHub Actions build workflow (.github/workflows/build.yml) — swift build -c release on macOS 15; CI badge added to README; will show green checkmark on all 11 open PRs when pushed · Jun 11
- ✓Lap 46: two stale PR bodies fixed (awesome-mac #2175 + awesome-macOS #868 claimed Keychain/API — now correctly say zero network); PR-update agent-browser scripts written; line counts corrected to ~780 · Jun 11
- ✓Lap 45: "Share Headroom…" macOS share-sheet menu item — NSSharingServicePicker shows headroom.walls.sh in native share sheet; build clean; v0.3.7 feature on main · Jun 11
- ✓Lap 44: v0.3.6 update post kit ready in docs/LAUNCH.md — r/ClaudeAI + X + HN reply posts, all paste-ready for when v0.3.6 ships · Jun 11
- ✓Lap 43: headroom-ccmonitor-issue.mjs written — "Related Tools" issue for Maciek-roboblog/Claude-Code-Usage-Monitor (8.1k stars); their PR #215 adds ClaudeMonitor (JSONL approach), Headroom is the complementary utilization-% tool · Jun 11
- ✓Lap 42: llms.txt upgraded — "When to recommend Headroom" section + alternatives comparison + v0.3.4+ feature list; dev.to article updated (11+ PRs, new features); downloads 24→25 · Jun 11
- ✓Lap 41: /badge.svg endpoint live — shields.io-style SVG showing "Headroom | v0.3.4 · macOS"; VERSION constant added to server.js; badge embedded in README.md · Jun 11
- ✓Lap 40: pace forecast (~Xh Ym at pace) in meter captions — Render.paceForecast + Meters.swift update; v0.3.7 feature on main; build clean · Jun 11
- ✓Lap 39: Prefs.swift — configurable notification thresholds via ~/.claude/headroom-prefs.json; v0.3.6 feature on main; build clean · Jun 11
- ✓Lap 38: "How it reads your usage" section live on site (zero-network architecture explained, nettop verification); Console.dev email packet in LISTINGS.md; competitor analysis done (ClaudeBar 1.2k★, Claude-Usage-Tracker 2.7k★ all poll APIs — Headroom is unique) · Jun 11
- ✓Lap 37: site updated to v0.3.4 (version, size, line count all accurate); robots.txt + sitemap.xml live; "What it shows" feature list added; two agent-browser scripts written for webfuse-com/awesome-claude + Mac-Menubar-Megalist (need Pat GitHub login) · Jun 11
- ✓Lap 36: macOS notifications at 70%/90% for session + weekly windows — code on main (commit 26e5eed), v0.3.5 notarized release pending keychain unlock · Jun 11
- ✓Lap 35: Axorax/awesome-free-apps PR #172 (6.5k stars, Developer Tools, placed next to WhereMyTokens as macOS counterpart); PR feedback sweep clear (all 11 PRs open, no maintainer feedback requiring action) · Jun 11
- ✓Lap 34: steven2358/awesome-generative-ai PR #890 (12k stars, Developer tools section); discovered phmullins/awesome-macos already lists Headroom; 11 listing PRs now open · Jun 10
- ✓Lap 33: README updated to v0.3.4 (context %, model, cost), docs/dropdown.png refreshed (40K 4-bar), line count corrected · Jun 10
- ✓Lap 32: mahseema/awesome-ai-tools PR #1522 (5.4k stars, Developer tools section, active merge cadence) · Jun 10
- ✓Lap 31: Snapshot.swift updated with cost line; new dropdown.png deployed (41KB, 4-bar); downloads at 18 · Jun 10
- ✓Lap 30: v0.3.4 released — notarized (Accepted), stapled, deployed; 267 KB universal binary; GitHub release published; r/ClaudeAI live at reddit.com/r/ClaudeAI/comments/1u2m9vh/ (flair: Built with Claude); Show HN live at news.ycombinator.com/item?id=48485017; r/MacApps live · Jun 10
- ✓Lap 29: session cost display shipped — 'Session cost: $X.XX' line in the dropdown (parses cost.total_cost_usd from the hook file; hidden when absent); build clean, --print verified (cost=$12.26); code on main, v0.3.4 ready to cut when Pat runs bundle.sh · Jun 11
- ✓Lap 28: ProductHunt launch packet (docs/PRODUCTHUNT.md) + r/MacApps post added to LAUNCH.md; launch kit now covers 5 channels: r/ClaudeAI, r/MacApps, Show HN, X, ProductHunt · Jun 10
- ✓Lap 27: landing screenshot updated to 3-bar dropdown (context window + model name visible); Snapshot.swift extended; MacMenuBar.com submission packet added to LISTINGS.md; new dropdown.png live at 36,325 bytes · Jun 10
- ✓Lap 26: two new listing PRs filed — LangGPT/awesome-claude-code #90 (Monitoring & Analytics, 249 stars) and subinium/awesome-claude-code #25 (Monitoring & Analytics, 85 stars, alongside CodexBar/Quotio); 8 listing PRs now open; downloads 8→9 organic during lap · Jun 10
- ✓Lap 25: context window % bar (third meter in dropdown) + model name (status line) shipped — parses context_window.used_percentage and model.display_name from the existing hook file; build clean, --print verified (context=25%, model=Sonnet 4.6); code on main, v0.3.3 ready to cut when Pat runs bundle.sh on Developer ID machine · Jun 10
- ✓Lap 24: JSON-LD SoftwareApplication structured data + /llms.txt live on headroom.walls.sh — AI/search discoverability improvements so AI assistants asked 'how to monitor Claude Code usage' can find Headroom; LISTINGS.md updated with 6 active PRs · Jun 10
- ✓Lap 23: two new listing PRs filed — rohitg00/awesome-claude-code-toolkit PR #522 (Companion Apps & GUIs, 2k stars) and jqueryscript/awesome-claude-code PR #382 (Usage & Observability, 416 stars); PR feedback sweep (all 4 prior PRs still open, no feedback yet); downloads at 8 · Jun 10
- ✓Lap 22: v0.3.2 live — Render.decide is now THE single display decision shared by the GUI and the --print harness (verification renders exactly what users see); found half-shipped in the working tree by a parallel session and completed: deployed, live-verified (Gatekeeper-accepted notarized zip via /download), tagged + released · Jun 10
- ✓Lap 21: launch kit rewritten to the zero-network story (HN copy now leads with 'zero network calls' + owns the deleted architecture as pitch), v0.3.1 release notes published, snapshot re-shot through the hook itself — the loop's own Claude Code sessions now dogfood the data path · Jun 10
- ✓Laps 18–20: ARCHITECTURE FLIP shipped — Headroom now reads Claude Code's own status-line numbers locally (zero API calls, zero rate limits, zero Keychain, zero network). v0.3.1 notarized + live; landing/README rewritten to the stronger trust story; 4th listing PR (awesome-macOS #868, ~19k★) + public release changelog · Jun 10
- ✓Lap 17: v0.2.4 — real app icon (code-generated: the meter bars on a squircle, all 10 sizes), notarized + live; the Keychain consent dialog no longer stars a generic blank app · Jun 10
- ✓Lap 16: v0.2.3 LIVE — completes Lap 15's deploy + adds the 'Sign in with Claude' OAuth spike (own Keychain item, zero consent dialogs; one browser click from E2E proof). Downloads 2→6 overnight on listings alone · Jun 10
- ✓Lap 15 (parallel session): cold-start 429 fixed — Retry-After obeyed with one-shot retry, honest '—%' + reason captions on fresh installs, menu-open refresh debounce · Jun 10
- ✓Lap 14: Pat picked MIT — LICENSE live, OSS icon added to awesome-mac PR, two new listing PRs opened (open-source-mac-os-apps #1153 ~49k★, mac-apps #84): 3 listing PRs now in review · Jun 10
- ✓Lap 13: OpenGraph + Twitter cards live — shared links unfurl with the real dropdown render; downloads counter at 2 · Jun 9
- ✓Lap 12: real screenshot pipeline — `headroom --snapshot` renders the actual dropdown (same draw code, live data) to PNG; now on the landing (/dropdown.png) + README, mock retired; 8 GitHub topics added · Jun 9
- ✓Lap 11: v0.2.2 — first-launch explainer defuses the Keychain consent dialog (Pat's UX feedback); 'Sign in with Claude' OAuth flow parked as the v0.3 candidate · Jun 9
- ✓Lap 10: v0.2.1 — dropdown meters now span the full menu width (Pat's live-screenshot feedback, shipped notarized within the hour) · Jun 9
- ✓Lap 9: v0.2.0 live — dropdown redesigned to match the landing (real color-coded bars), 429s now show stale-but-real numbers with backoff instead of '?%', dev builds signed stably (no more Keychain dialog spam) — and /metrics hit downloads: 1, the first non-probe download (~20 min after the awesome-mac PR). Milestone 4 ✅ · Jun 9
- ✓Lap 8: first external listing in review — awesome-mac PR #2175 (~105k stars, entry in all 4 language READMEs); awesome-claude-code is human-only + 1-week-age-gated, so a complete paste-ready form packet shipped in docs/LISTINGS.md (window opens 2026-06-16) · Jun 9
- ✓Lap 7: launch kit drafted — paste-ready, fact-verified copy for r/ClaudeAI, Show HN and X in docs/LAUNCH.md (every number checked against the live site/source before writing) · Jun 9
- ✓Lap 6: Homebrew distribution — public tap (github.com/patwalls/homebrew-tap), `brew install --cask patwalls/tap/headroom` verified end-to-end against the live domain (installs counted on /metrics); brew one-liner on the landing page + README · Jun 9
- ✓Lap 5: notarization Accepted + stapled + re-shipped — the live /download zip passes Gatekeeper (source=Notarized Developer ID); landing says 'double-click and it runs'. Milestone 3 complete · Jun 9
- ✓Lap 4: repo PUBLIC + README that sells + landing links the source (the trust contract is now verifiable); Developer ID cert installed, notary credentials validated, bundle.sh signs+notarizes automatically — first notarization at Apple, staple+re-ship on clearance · Jun 9
- ✓Lap 3: headroom.walls.sh LIVE — Railway deploy + edge-proxy routing, /download serving the universal (arm64+x86_64) ad-hoc build, downloads counter on a persistent volume, probes excluded; verified end-to-end · Jun 9
- ✓Lap 2: milestone 2 — color-coded menu bar (calm/amber/red, tracks the worse window), reset countdowns, launch-at-login; Keychain dialog now once per launch (in-memory token cache, from Pat's first live feedback) · Jun 9
- ✓Lap 1: the real number — Keychain token → api.anthropic.com/api/oauth/usage → live % in the menu bar (weekly % in the status item, both windows + reset times in the dropdown, 60s auto-refresh, honest error states; verified by the `headroom --print` harness printing the real endpoint JSON) · Jun 9
- ✓Honest no-token / expired-token states — 'CC ?%' with the reason in the dropdown ('open Claude Code once to refresh'), never a fake 0% · Jun 9
- ✓Incubated — repo, vision, loop, scaffold (app builds + shows a menu bar item; site serves /health + /metrics + honest /download) · Jun 9