# Pulse: a macOS menu bar monitor for AI coding quotas

> Pulse is a free Swift and SwiftUI application for macOS that shows how much of your Claude Code, Codex, Cursor, Copilot and other AI coding allowances you have left, as a ring per account that floats against the screen edge. It talks to no Pulse server, and the README is explicit that where a service reports nothing, Pulse says so instead of guessing.

**qunqin24/Pulse** — Know how much Claude Code, Codex, Cursor, Copilot and 70+ other AI coding tools you have left — a free, open-source macOS monitor on the edge of your screen.

- Repository: https://github.com/qunqin24/Pulse
- Website: https://github.com/qunqin24/Pulse/releases/latest
- Stars: 596 · Forks: 64
- Language: Swift
- License: Apache-2.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/qunqin24-pulse

## One ring per service, floating against the screen edge

Pulse is described as a free, open source macOS monitor that sits on the edge of your screen and shows every AI coding limit at a glance, and the headline is knowing how much you have left without opening a single usage page.

The visual model is simple. Each service gets its own ring, and the README counts seventy-six services at a glance, naming Claude Code, Codex, Cursor, GitHub Copilot, Antigravity, Kiro, Grok, DeepSeek and Kimi Code among them. The rings are coloured by usage, green through amber to red, or you can pick your own colour per account. The label inside the ring reads either used or left, 75% used or 25% left, with an optional clock arc showing how much of the window has passed.

The placement is the part that makes it different from a menu bar utility. You can dock the rail left, right, along the top or along the bottom beside the Dock, and it folds down to a sliver when idle. There is also a menu bar mode, where the fullest ring appears as a figure, a small ring, or split limits, with an optional dashboard for each account.

It is a Swift and SwiftUI application, uses Liquid Glass on macOS 26, and the README states the requirements plainly: macOS 14 Sonoma or newer, on Apple Silicon and Intel, in English, with translated readmes in Simplified Chinese, Traditional Chinese, Japanese and Korean. The interface itself is said to ship in six languages, adding Russian to that list.

## Where the numbers come from, and where they do not

The honesty of the data section is the most quotable part of the README. The claim is real numbers only: every usage percentage is the one the service itself reported, the few estimates are marked as such, and where a service reports nothing, Pulse says so instead of guessing.

The mechanism behind that varies by service, and the README is explicit about it. Each of the 76 services is read the way the product itself works, which means its own usage endpoint, the editor's login, a local language server, or a key you paste. The full list and how each one is read is in Docs/supported-services.md.

That is a meaningful design constraint, and it explains a few things. A service that only reports usage through its web console has to be read through a login rather than an API, and a service that exposes nothing to a client cannot be shown at all, which is why the count of rings on your screen may be smaller than the count of services on the list.

The privacy claim follows from the same design. There is no Pulse account and no Pulse server, because Pulse uses the logins you already have and nothing is sent back. The README's privacy and security section starts with that point, your Mac talks to the services themselves.

There is a diagnostics feature that makes the claim checkable. Connection diagnostics shows where each figure came from and the servers' own replies, which is the answer to the obvious question about a quota number that looks wrong.

## Installing from a disk image, and the Gatekeeper prompt you will hit

Installation is the standard drag and drop for a macOS application. Download the latest Pulse-x.y.z.dmg from the releases page, open the disk image, and drag Pulse into your Applications folder.

The first launch has a deliberate default. You choose the services to monitor, all start unchecked, and Pulse reads their credentials and checks usage only after you click Done. Closing the chooser leaves monitoring off, and a service can also be enabled later in Settings. Upgrades keep your choices and ask once about newly supported services detected on your Mac.

Then there is the Gatekeeper issue, and the README has a dedicated note for it. Pulse is an open source project without an Apple Developer certificate, so on first launch macOS may block the app. The graphical route is to launch Pulse, dismiss the alert, open System Settings, then Privacy and Security, and click Open Anyway. The terminal route is:

```bash
xattr -cr /Applications/Pulse.app
```

Updates are offered in the app through Sparkle, and the note warns that macOS may request browser keychain access again after an update, which is worth knowing before you install it on a machine where a keychain prompt would be unusual.

The remaining setup is where the app lives. Pulse is in the menu bar, and if that is crowded you can right-click the floating rail, or the collapsed sliver, and choose Settings, or assign a global shortcut under Settings, General, Shortcuts.

## Rings, the detail card, and a forecast of when you run out

Pointing at a ring opens a card, and the card is where the useful detail sits. Every limit and its reset appears on one card, in continuous or segmented bars. The detailed card shows the plan, when it was read, what each limit is worth, and recent usage from this Mac's records.

The feature worth singling out is the burn-rate forecast, which tells you when your pace will run out before the window does. That is a different question from how much is left. A quota that shows 40 percent remaining but resets in ten minutes is not 40 percent of a working day, and a forecast that says you will hit the wall at 3pm is the kind of warning that changes behaviour.

Live activity is the other half. A turning dot appears while an agent is working, and there are optional animated bots that react to what each account is doing, with an animation in the repository showing a bot in each ring.

The rest of the interface is about not being in the way. Any edge for the rail, notifications you choose, from a limit crossing a line to spent, reset, failing checks, a low balance or a provider outage, and optional extras such as global shortcuts, following the active display and hiding from screenshots. The detail is in Docs/features.md.

## Token spend, provider status pages and a JSON flag for scripts

The spend section turns Pulse from a quota viewer into a small reporting tool. Token spend shows what 54 local clients have used, priced at public API rates, broken down by day, model and agent, over any span you choose, with a card and a history chart in the documentation. Estimates are offered in your currency, dollars, yuan, Hong Kong or New Taiwan dollars, yen, won or roubles. Usage recaps produce shareable cards for a day, a week, a month or a year, built from the same records.

Service status covers 44 providers and their own status pages, and Pulse raises a notification when one of them reports an outage, which is a different signal from your own quota being exhausted.

For people who want the data rather than the picture, the power user options are several accounts per provider, extensions for your own sources, and Pulse --json for scripts. That last one is the one to note if you want to build a status dashboard of your own or feed the numbers into a home lab display, and it is also the reason the data routing documentation matters, since the JSON output carries the same provenance the card shows.

The distinction the README keeps making is between spend and limits. Spend is derived from local client records and priced at public rates, so it is an estimate of what you used, while the quota percentages are what the services themselves reported. Those are different numbers with different reliability, and the interface keeps them in separate places.

## A Swift package with Sparkle feeds and weekly releases

The repository layout shows a native macOS application rather than a script collection. There is a Package.swift and a Package.resolved, a Sources directory, an Integrations directory for the per service readers, a Scripts directory, a Tests directory, a Docs directory and an AppIcon directory.

The update mechanism is Sparkle, and the appcast files are in the root: appcast.xml, appcast-en.xml and appcast-zh.xml, which is the standard Sparkle feed layout with a language specific variant. A VERSION file sits alongside them, and there is a CHANGELOG.md, a THIRD_PARTY_NOTICES.md for the bundled dependencies, a LICENSE file, an AGENTS.md, a CLAUDE.md and a CONTRIBUTING.md.

The release cadence is fast and regular. The tags are v1.12.2 on 2026-10-18, v1.12.1 on 2026-10-16 and v1.12.0 on 2026-10-16, and the last push to the repository was on 2026-10-18, the same day as the newest tag. Two patch releases and a minor release inside three days is a project shipping continuously rather than periodically.

The licence is Apache-2.0, and the homepage in the repository metadata points at the latest release page rather than at a separate site, so the download and the repository are the same place.

## Conclusion

Adopt Pulse if you juggle several AI coding subscriptions and want to see the remaining allowance per account without opening a usage page, and you are on macOS 14 or later. Do not adopt it on Linux or Windows, since the application is macOS only, and do not adopt it as a source of truth for billing, because the README insists that every figure is what the service itself reported and that estimates are marked as such. Verify first which of the 76 services it reads on your machine and how, since each one is read a different way, that the credentials it finds are the ones you want monitored, and that macOS Gatekeeper and the keychain prompts are acceptable in your environment before you roll it out to a team.

## FAQ

### What does the Pulse macOS app show?

Pulse shows the remaining usage allowance for each AI coding service you monitor as a ring, coloured by usage, with labels for used or left and an optional clock arc for the window. It supports 76 services including Claude Code, Codex, Cursor, GitHub Copilot, Antigravity, Kiro, Grok, DeepSeek and Kimi Code.

### Does Pulse send my data to a Pulse server?

No. The README states there is no Pulse account and no Pulse server, because Pulse uses the logins you already have and nothing is sent back. Each service is read the way its own product works, through its usage endpoint, the editor's login, a local language server or a key you paste.

### How do I install Pulse on macOS?

Download the latest Pulse-x.y.z.dmg from the releases page, open it and drag Pulse into your Applications folder, then choose the services to monitor on first launch. Because the project has no Apple Developer certificate, macOS may block the first launch, and you then either click Open Anyway in Privacy and Security or run xattr -cr /Applications/Pulse.app.

### What are the system requirements for Pulse?

The README lists macOS 14 Sonoma or newer, on both Apple Silicon and Intel, with the interface available in English, Simplified and Traditional Chinese, Japanese, Korean and Russian. Updates are offered in the app through Sparkle, and macOS may request browser keychain access again after an update.

## Sources

- [License: Apache-2.0](https://github.com/qunqin24/Pulse/blob/main/LICENSE)
- [Project website](https://github.com/qunqin24/Pulse/releases/latest)
- [qunqin24/Pulse on GitHub](https://github.com/qunqin24/Pulse)
- [README](https://github.com/qunqin24/Pulse/blob/main/README.md)
- [Releases](https://github.com/qunqin24/Pulse/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/qunqin24-pulse
