Skip to content

Releases

Pulse 0.4.3

Choose a tag to compare

@tommyent tommyent released this 08 Nov 00:43

Pause breaks from the rail, a smoother rail that stays where you put it, and a forecast on usage cards.

  • Pause breaks from a cup. The hint that popped up beside the rail on every hover is gone. The open rail now ends in a cup (at the bottom of a side rail, the right end of a top or bottom one): click it to pause breaks for 30 minutes, 1 hour or 2 hours. While they're paused the cup has a pause badge, and its menu says when they come back and offers Resume breaks. Break settings… in the same menu opens Settings at Breaks. The countdown before a break is unchanged.
  • A smoother rail. Hovering grows the rail in a short animation instead of a jump, out of its own spot: both ways along the edge, or only away from a corner. The percentages fade in as the rings finish growing.
  • Corners stay corners. A rail dropped in a corner stays there: it no longer moves out of the corner after a hover. A throw that pushes it into a corner docks it there instead of minimizing it.
  • A forecast on usage cards. When your pace over the last 24 hours would reach a limit before it resets, its row adds one line, such as "At this rate you hit the limit Sat 3 PM", in the card, the menu bar menu and VoiceOver. It's an estimate from your recent use: after a quiet stretch it can still count yesterday's use. Rings, badges and alerts don't use it.
  • Fixes. A throw that left the rail off the screen could leave it invisible until Pulse restarted; it now always lands. A rail minimized to the top or bottom edge now shows its sliver. After a restart the rail stays exactly where you left it, instead of shifting along its edge. The pet's model menu shows one arrow, not two. The menu bar menu scrolls its accounts on a short screen instead of pushing Refresh, Settings and Quit off the bottom.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.4.3.dmg.sha256 in the folder that holds both files.

Pulse 0.4.2

Choose a tag to compare

@tommyent tommyent released this 07 Nov 18:57

A slimmer rail along the top and bottom, a card for the battery, and Solid's original colour back.

  • Numbers beside the rings. With the rail at the top or bottom of the screen, each percentage now sits to the right of its ring, so the open rail stays slim and only grows in length. At the sides the numbers stay under the rings, with less space between them.
  • A card for the battery. Click the battery ring to see whether it's charging and when it will be full, what the Mac is drawing and how much goes into the battery, the adapter's wattage, the battery's Maximum Capacity and condition as System Settings shows them, its cycle count, and Low Power Mode when it's on.
  • Solid's original colour, with the light kept. 0.4.1's deeper black left an empty ring near the top of a side rail with very little contrast. Solid is back to its original dark surface, still lit from the top left, and Glass gets the same light and rim. Empty rings stay visible along the whole rail.
  • A clearer tick when the rail is tucked away. A ring's tick turns red only when the account's longest limit, usually its week, is nearly used up. Any other limit near its end keeps the ring's colour and adds a red dot.
  • A smaller download. The Halloween film has left the app now that Halloween is over. Thanksgiving's still plays.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.4.2.dmg.sha256 in the folder that holds both files.

Pulse 0.4.1

Choose a tag to compare

@tommyent tommyent released this 06 Nov 16:44

The Codex pet now frees its memory when you aren't using it, and Solid gets a polished black.

  • Codex stops when the pet is idle. Once you opened the pet's chat, Codex and the MCP servers it runs kept going until you quit Pulse or hid the pet. Now they stop on their own once the card has been closed with nothing running for five minutes. A call, a running helper or a report on its way keeps them going.
  • Your conversation stays open. Opening the card again starts Codex back up in the same conversation, with its messages still on screen. New conversation still starts fresh.
  • A clear coat on Solid. The rail, cards, alerts, break pills and menu now have a deeper black, lit softly from the top left. Glass, the break screen and Settings look the same as before.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.4.1.dmg.sha256 in the folder that holds both files.

Pulse 0.4.0

Choose a tag to compare

@tommyent tommyent released this 06 Nov 11:33

The rings now follow each provider's real limits, and Pulse is more honest when something goes wrong.

  • Rings that match your plan. The outer arc is your shortest limit, usually the 5-hour session, and the inner arc the next, usually the week. A limit on one model, such as Fable or Argon, fills a gray disc behind the logo. A plan with no 5-hour limit shows the week outside and the model's limit inside.
  • Grok has one arc. Grok has one limit, its credits, so that's what its ring shows. The card still lists what each product used. With Show what's left on, the credits turn around and the products keep showing what they used.
  • Antigravity has two rings. Gemini is now violet and Claude and GPT is sky blue, each with its own card. Before, they shared one ring and the fuller pool took it over. A switch in Settings → Accounts hides the second.
  • Sign-ins you choose. The hidden claude.ai page now runs only after you sign in with Connect. Connect shows on the account's card, in the menu bar popover and in Settings while the CLI isn't signed in.
  • Old numbers look old. When a refresh fails, the ring dims and its card says when the numbers are from and why. Past a window's reset time, the old number is gone. A provider that doesn't answer can't hold up the others.
  • No more log pile-up from Antigravity. The Antigravity CLI's log for each refresh now goes in a temporary folder and is removed with it.
  • Smaller fixes. One reset no longer shows as two different times. Failure reasons wrap instead of getting cut off. VoiceOver reads each ring's numbers. Antigravity no longer shows one percent too few. Cards show the provider's own plan name. If Pulse can't read its settings, it keeps a copy instead of overwriting them, and a failed save when a break ends no longer crashes it.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.4.0.dmg.sha256 in the folder that holds both files.

Pulse 0.3.1

Choose a tag to compare

@tommyent tommyent released this 01 Nov 15:50

Pulse used far more memory than it should, up to about 1.3 GB, because of how the Codex pet's animation frames were loaded: every frame it drew kept its own decoded copy of the pet's whole picture sheet. Now Pulse decodes the sheet once and every frame shares it.

  • In a test that draws the pet's animation frames, memory went from 1,304 MB to 53 MB. The decoded image copies went from 1,274 MB to none.
  • The pet now takes about 25 MB: one 13 MB picture sheet and 11 MB for drawing.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.3.1.dmg.sha256 in the folder that holds both files.

Pulse 0.3.0

Choose a tag to compare

@tommyent tommyent released this 01 Nov 14:07

Pulse now updates itself, and its rail gets out of the way.

  • Updates in the app. Pulse checks for new versions with Sparkle. On its second launch it asks whether to check automatically, and Check for Updates… in the menu bar popover checks at any time. Each update is signed, and Sparkle checks that signature against a key built into Pulse before installing it. If you have 0.2.0, this is the last version you download by hand.
  • Flick the rail. Drag the rail to any edge and let go, or flick it toward one: it glides there. At the top and bottom the rings line up in a row.
  • Tuck it away. Push the rail into its own edge, or into the menu bar or the Dock, and let go. It tucks into a thin sliver with a coloured tick for each account, longer the fuller its ring and red near a limit. Click the sliver to bring the rail back, or drag it out to any edge. Minimize the rings to their edge in the menu bar popover does the same, and a tucked rail stays tucked after a restart. With Reduce Motion on, the rail moves without gliding.

For Apple silicon Macs on macOS 26 or later. To check the download, run shasum -a 256 -c Pulse-0.3.0.dmg.sha256 in the folder that holds both files.

v0.2.0

Choose a tag to compare

@tommyent tommyent released this 31 Oct 21:16

The first signed build of Pulse. Download Pulse-0.2.0.dmg, open it and drag Pulse to Applications.

  • Signed with the project's Developer ID, with the hardened runtime, and notarized by Apple. macOS asks once whether to open an app downloaded from the internet.
  • For Apple silicon Macs on macOS 26 or later.
  • The first voice call asks for access to the microphone, your Documents folder (the pet works in ~/Documents/codex-pet) and devices on your local network, and later for folders the pet reads, such as Downloads. If that first call times out while you answer the prompts, start it again.
  • Check the download with shasum -a 256 -c Pulse-0.2.0.dmg.sha256 in the folder that holds both files.

New app ID

Pulse's app ID is now io.github.tommyent.pulse (it was app.pulse). If you built an earlier version from source, judging by the code (not tested on an upgrade):

  • These start fresh: the Grok sign-in, Connect web sign-ins, the pet's conversation and its work model choice, Always allow approvals and the microphone permission. Launch at login may need turning on again.
  • These carry over, because they live in ~/Library/Application Support/Pulse: your settings for accounts, rings, the battery and breaks, the break history and usage snapshots.
  • The defaults commands for testing now use the new ID, for example defaults write io.github.tommyent.pulse simulatedBreak micro.

Since 0.1.0

Break reminders with a break screen, ideas, agents and a history; a battery ring and low-battery alerts; an alert when a usage window nears its limit; Show what's left; Glass and Solid appearances; the pet's approvals go to Codex's auto-review. Pulse now requires macOS 26. The README describes each.

Pulse 0.1.0

Choose a tag to compare

@tommyent tommyent released this 03 Oct 17:25

The first tagged release of Pulse: a macOS menu bar app with floating usage rings for Claude, Codex, Grok and Antigravity, and a Codex pet you can chat with by text or live voice.

Source only. Build it with ./package.sh --install (Xcode 26 or later). There's no prebuilt app. See the README for requirements and signing.

What's in it

  • Usage rings for Claude, Codex, Grok and Antigravity on your own subscription sign-ins, refreshed every 2 minutes. Click a ring for its windows and reset times. A failed check keeps the last numbers, marked stale, with the reason.
  • The Codex pet: chat by text, or talk with ⌃⌥Space (tap to pause the microphone, hold to talk). Bigger jobs go to Codex helpers while you keep talking. Results the voice didn't get to say are caught up once the call is quiet.
  • Permission prompts for commands, file changes, network access and tool consent, with Allow once, Always allow and Allow for this conversation where Codex supports it.
  • Settings: a separate switch to show or hide the pet; the work model and effort from the pet card's header; Launch at login, appearance and the voice shortcut.

Known limits

  • Live voice depends on Codex's experimental realtime protocol and the voice helper in your Codex CLI package (tested with 0.160.0).
  • A paused microphone sends only silence but keeps the call connected; end the call when you're done talking.
  • Signing is ad-hoc unless you set your own identity, and macOS asks for microphone permission again after each ad-hoc rebuild.