# Built a Chrome extension to stop getting cut off by Claude

> Source: <https://www.indiehackers.com/post/built-a-chrome-extension-to-stop-getting-cut-off-by-claude-70-users-in-4-weeks-zero-marketing-budget-3b49b2ad35>
> Published: 2026-08-25 07:03:37+00:00

The problem I was solving for myself

Eight weeks ago I was two hours deep into a debugging session with Claude when it just stopped. Rate limit hit. No warning. No countdown. Two hours of context gone and I had to start over.

I looked for a tool that would show me how close I was before it happened. I found nothing that worked across more than one AI platform without requiring an API key.

So I spent six weekends building one.

What I built

[TokenPulse](https://token-pulse.in) is a Chrome extension (MV3) that injects a live token bar above the input box on Claude, ChatGPT, Gemini, DeepSeek and Grok. It shows:

No API key. No account. No data leaves your device. Install and open Claude — it just works.

The technical architecture

The extension runs a content script on each supported domain. Claude is the only platform that exposes real rate limit data through an internal API endpoint — the others use client-side token estimation (~4 chars per token, ±8% accuracy).

The biggest technical challenge was Chrome's Manifest V3 requirements. No inline scripts, no eval, service workers instead of persistent background pages. The service worker can be killed by Chrome at any time, which means everything goes through `chrome.storage.local`

— no in-memory state between messages.

The in-page bar injection uses a `MutationObserver`

to detect when the input box appears in the DOM, then inserts a container immediately above it. Platform DOM structures change without notice so every selector has multiple fallbacks.

Open source: [github.com/anu-ship-it/TokenPulse](https://github.com/anu-ship-it/TokenPulse)

The numbers after 4 weeks

Traffic sources so far: mostly direct Chrome Web Store search and a few Reddit comments where I answered genuine questions about Claude rate limits.

What worked

Building for a real pain I had.** I use Claude heavily for development work. Every decision about what to show in the popup came from "what would I want to see right now?" That constraint produced better UX decisions than any user research I could have done upfront.

**Shipping before it was polished.** The first version had a broken notification system and no cost tracking. I published anyway. The feedback from early users told me exactly what to build next — cost tracking and weekly summaries were the top two requests.

**The in-page bar over the popup.** My initial instinct was to make the popup the primary interface. Users taught me the bar is what they actually use — the popup is for depth when they want it. If I had designed popup-first I would have built the wrong thing.

What did not work

Posting on company social accounts with no followers.** I posted on the TokenPulse Twitter and LinkedIn company page for weeks. Near-zero reach. The right channel was my personal LinkedIn (7.2k followers) — the first post there drove more installs in one day than a month of company posts.

**Building the tips panel.** I spent two days building a collapsible panel with token optimization advice. Nobody uses it. It adds code complexity and visual weight for zero user value. I should have shipped that time as more platform support.

**Designing for 100 users before having 10.** I spent too long on the architecture for Pro features (cross-device sync, 90-day history) before I had validated that people wanted the free version. The right order is: prove the core value, then build the infrastructure to scale it.

What's next

Pro tier** — 90-day history with graphs, rate limit predictions ("~45 min left at this pace"), cross-device sync across Chrome, Edge, Brave, Arc and VSCode, unlimited platforms, weekly email reports. Waitlist open at [token-pulse.in](https://token-pulse.in).

**VSCode extension** — so the tracking follows you from the browser to the editor.

**AI usage timeline** — a single chronological view of every AI interaction across all tools. Nobody has built this yet. It's the feature that turns TokenPulse from a rate limit tracker into something that helps you understand your entire AI workflow.

Build the content script test harness first. Testing content scripts requires opening Chrome, loading the extension, navigating to the target platform, and observing behavior — a 3-minute loop per test. A mock DOM environment for unit testing would have paid back the setup time within the first week.

Happy to answer questions about the Chrome extension architecture, the MV3 constraints, or how to read Claude's internal usage API. This community has helped me think through a lot of product decisions — returning the favor.

[Install TokenPulse free](https://token-pulse.in) — works on Claude, ChatGPT, Gemini, DeepSeek and Grok.
