Skip to content
HLVM04Public

About

🎯 Menubar status for T3 Code threads and CLIProxyAPI quota

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pulse icon

Pulse

Your agents and your quota, one glance away in the menubar.
A tiny native macOS app for T3 Code and CLIProxyAPI.

Pulse panel: a thread waiting for you, running threads and the Claude quota pool    Pulse forecast: 14-day pool chart, reset jumps and per-account levels

What it shows

  • The ring. Your quota pool, filled with what's left. The center turns solid while threads run, an orange badge appears when one is waiting for you, and the ring turns red when the pool runs low.
  • The panel. Threads waiting for you, running threads and recently finished ones on every linked machine, plus a burn-down chart of the pool. Click any thread to open it in T3 Code.
  • The forecast. Click the chart for 14 days of history and projection, reset jumps, when the pool or the first account runs dry, and each account's level.
  • Notifications. A thread is waiting for you, a thread finishes, or the pool drops under your threshold.

Install

Download Pulse-x.y.z.zip from Releases, unzip it and move Pulse to Applications. Releases are signed with Developer ID and notarized. Requires macOS 26 or later.

To build it yourself instead (Xcode 26 or later):

git clone https://github.com/HLVM04/Pulse.git && cd Pulse
scripts/build-app.sh --install

Set up

  1. CLIProxyAPI. Open Settings (gear icon), enter the server address and the management key. The key is stored in the Keychain and sent with every quota request, so use https:// unless the server is only reachable over a private network such as a tailnet.
  2. T3 Code. Click Connect… and approve Pulse in the browser. It asks for read-only access, and T3's sign-in lasts 30 days.
  3. More machines (optional). Under Settings → T3 Code, add another server by address, such as a VPS on your tailnet. An address without a scheme or port (100.64.0.1) means http:// on port 3773. Each one signs in on its own, and its threads join the same list under the name you give it.

Plain http:// is allowed so tailnet and LAN addresses work. Settings live in the dk.hlvm.pulse defaults domain; tokens and keys live in the login Keychain.

How it works

Source Refresh
Quota pool CLIProxyAPI GET /v8/management/observability/quota every minute
Threads T3 Code MCP on each server: t3_thread_list, t3_project_list, t3_environment_links every 4 s while open, 15 s otherwise

The forecast in PoolMath.swift is a line-for-line port of the CLIProxyAPI management center's poolModel.ts, so Pulse and the web page agree. T3's MCP can't approve permission requests, so a waiting thread opens in T3 instead of being approved from the panel.

There are no dependencies: SwiftUI, Network and CryptoKit only. The app bundle is about 1.6 MB.

Develop

swift test                                    # pool math and parsing
open -n --env PULSE_DEMO=1 /Applications/Pulse.app   # made-up data, for screenshots
PULSE_SNAPSHOT=/tmp/pulse /Applications/Pulse.app/Contents/MacOS/Pulse   # render the panel to PNGs

Release (Developer ID signing, notarization, GitHub release; one-time setup is in the script):

scripts/release.sh 1.0.0

Compare the forecast with your server:

PULSE_CPA_URL=https://your-host:8317 PULSE_CPA_KEY_FILE=~/key.txt swift test --filter liveQuotaPools

License

MIT

About

🎯 Menubar status for T3 Code threads and CLIProxyAPI quota

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages