Skip to content
Pulse — Claude Code and Codex Analytics

See where your Claude Code and Codex usage actually goes.

The open-source Claude Code + OpenAI Codex (ChatGPT App) analytics dashboard and Discord Rich Presence for Claude Pro / Max / Teams and ChatGPT Plus / Pro / Business.
Measure provider-aware cost, cache, context, and limits; catch runaway sessions; and send one-click fix prompts back to the active coding agent. Native desktop. 100 % local. Zero telemetry.

CI Release Latest Downloads License Stars Sponsor

Download  ·  What's New  ·  About  ·  Screenshots  ·  Features  ·  Docs  ·  Sponsor


 What's New in v1.6.5

  • Live Codex quota, not yesterday's JSONL — Pulse reads the authenticated account/rateLimits/read backend, so a provider-reported 83% used renders as 17% available. JSONL is a short-lived fallback and stale quota events stay unavailable.
  • Multi-instance Dashboard — every active session is selectable from one responsive live-work owner; the detail panel follows that selection and renders exact used / available window values.
  • Current context only — Context no longer mixes active windows with a stale historical utilization list. One selector owns the active sessions and one matte detail surface owns the selected window.
  • Richer factual telemetry — live token composition replaces the misleading empty spend timeline, and Activity by Hour groups timestamps in the user's local timezone with proper AM/PM labels.
  • Matte Geist surfaces — the dark theme uses neutral black panels rather than navy/gray sheens; color remains scoped to provider identity and semantic values.
  • Responsive controls and persistence — Discord fields stack before they clip, expose automatic save state, and the signed in-app updater remains a single approve/update/relaunch flow.
Previous v1.6.2 highlights
  • Real reasoning effort — Pulse reads the effort field Claude Code records on every assistant turn instead of falling back to a default.
  • Honest Claude usage provenance — the quota footer names the observed OAuth/cache path.
  • Rich Presence that sticks — the master switch and field toggles persist for Claude and survive a restart.
Previous v1.6.1 highlights
  • Claude Opus 5 priced correctly — the dateless claude-opus-5 id now resolves to the official $5/$25 rates with 1M GA context and no long-context surcharge, instead of falling through to legacy Opus pricing.
  • True window totals — Cost Analysis and Reports aggregate the entire selected window in SQL rather than the newest page of sessions, so 7d/30d/90d/1y agree across views.
  • In-app updates — signed Tauri updater artifacts install a new release from inside Pulse instead of sending you to the Releases page.
  • Distinct analytical views — Reports leads with a daily cost timeline and marked inflections; Cost Analysis is a budget cockpit with its own shape.
  • Theme-true Discord preview — the live Rich Presence card and its header state resolve through semantic tokens in both Dark and Light.
Previous v1.6.0 highlights
  • Event-driven live telemetry — one versioned backend snapshot hydrates the app, updates Discord, and persists analytics without recurring frontend polling or unchanged SQLite writes.
  • Factual Codex usage — semantic global and model quota windows, Credits, and absolute local reset timestamps match the data Codex exposes without inventing a five-hour window.
  • Discord you can shape — ten ordered presence fields, compact and descriptive presets, persistent privacy controls, and one backend-owned preview/publisher contract.
  • Responsive native UI — Dark and Light themes, self-hosted Inter Variable, keyboard-visible controls, and validated layouts down to 720x560.
  • Release integrity — Pulse pins codex-presence-core 1.0.0 to canonical v1.8.0, validates migrations and the Windows SPDX SBOM, and ships immutable checksummed assets.

Download v1.6.5  ·  Full changelog

 About

You may pay for Claude Code every month, ChatGPT every month, or both: Claude Pro / Max / Teams on one side and ChatGPT Plus / Pro / Business on the other. Yet if someone asked "which session consumed the most context this week?" or "what percentage of my input was served from cache?" you probably could not answer with evidence.

Pulse answers. It reads the local JSONL transcripts and runtime metadata written by Claude Code and Codex, then normalizes provider-specific facts without sending session data anywhere. Install, launch, and switch providers from the same desktop app:

  • A – F cache-health letter grade — trend-weighted, so you see the direction your cache efficiency is heading, not just today's number.
  • Opus-4.7-tokenizer aware — Opus 4.7's new tokenizer inflates tokens by up to 35 %; Pulse flags the inflation so you know when you're hitting limits faster than expected.
  • 1 M context GA pricing — flat per-token rate across the full 1 M window for Fable 5 · Mythos 5 · Opus 4.6 · Opus 4.7 · Opus 4.8 · Sonnet 4.6 · Sonnet 5 (per Anthropic's official pricing). Older betas (Sonnet 4 / 4.5, Opus 4 / 4.5) still get 2× input · 1.5× output · 2× cache at > 200 K. Pulse applies the correct math per-model so you compare sessions like-for-like. Plan-level Extra Usage on Pro / Max / Teams is tracked separately.
  • Inflection alerts — any session that blows past 2 × your rolling baseline gets flagged with context and a suggested fix.
  • Provider-aware fix prompts — every recommendation has a Copy Fix Prompt action labeled for the active provider: Fix with Claude Code or Fix with Codex.
  • Plan usage limits — live tracking of the windows each provider actually exposes, including Claude's Sonnet/Extra Usage telemetry and Codex's primary/secondary quota windows.
  • In-app updates — startup and 6-hour checks surface stable signed releases; after approval Pulse downloads, installs, and relaunches from inside the app.
  • Discord Rich Presence — five-tier reasoning effort, live project / model / branch. Your flow state, on your profile.

One product, two factual lanes. Claude sessions keep Anthropic-specific model routing, cache TTL, Extra Usage, and statusline authority. Codex sessions use the canonical GPT catalog and current local App metadata, including GPT-5.6 Sol / Terra / Luna, independent reasoning and Standard/Fast modes, and 372K raw / 353.4K usable context. Unpublished Fast economics or missing cache-write telemetry stay partial or unavailable instead of becoming an invented multiplier.

Codex Discord Rich Presence has its own source-of-truth repo: xt0n1-t3ch/Codex-Discord-Rich-Presence. Pulse mirrors that Rust core into src/codex/ through checked sync scripts and CI freshness gates, so Codex support can move fast here while the standalone Rich Presence project keeps its own audience.

Written in Rust + Tauri 2 + Svelte 5. ≈ 12 MB on Windows, ≈ 18 MB on macOS. Cold-starts in under 200 ms. One-click installers for Windows (NSIS + MSI), macOS (DMG — Apple Silicon + Intel), and Linux (deb, rpm, AppImage). Apache-2.0 licensed (attribution required — see NOTICE). The data never leaves your machine.

 Screenshots

Pulse dashboard — Claude Code and Codex cost, tokens, cache health grade, plan usage limits, and activity heatmap

Dashboard — at-a-glance cost · tokens · cache-hit ratio · plan limits · extra usage · activity heatmap.



Pulse Reports & Insights — A-F cache health grade, model routing, inflection timeline, cost spikes

Reports & Insights — provider-capable cache health · rule-based recommendations · cost inflection detection · one-click fix prompts for Claude Code or Codex.



Pulse Discord Rich Presence on a profile — Claude Code activity with model, reasoning effort, tokens, cost, plan usage
Claude Code Rich Presence
Live model · reasoning effort · project · branch · tokens · cost · 5 h / 7 d / Extra Usage.
Pulse Discord Rich Presence on a profile — ChatGPT App activity with GPT model, reasoning, cost, tokens, context, and quota windows
Codex / ChatGPT App Rich Presence
Selectable desktop identity · GPT-5.6 family · reasoning · speed · cache · cost · context · quota windows.

 Install

Windows

irm https://raw.githubusercontent.com/xt0n1-t3ch/Pulse-Claude-Code-Analytics/main/scripts/install.ps1 | iex

Or grab an installer from the latest release:

Asset Description
Pulse_x.y.z_x64-setup.exe NSIS installer — recommended
Pulse_x.y.z_x64_en-US.msi MSI installer

macOS

curl -fsSL https://raw.githubusercontent.com/xt0n1-t3ch/Pulse-Claude-Code-Analytics/main/scripts/install.sh | bash
Asset Architecture
Pulse_x.y.z_aarch64.dmg Apple Silicon (M1 / M2 / M3 / M4)
Pulse_x.y.z_x64.dmg Intel

Linux

curl -fsSL https://raw.githubusercontent.com/xt0n1-t3ch/Pulse-Claude-Code-Analytics/main/scripts/install.sh | bash
Asset Distro
pulse_x.y.z_amd64.deb Debian / Ubuntu
pulse-x.y.z-1.x86_64.rpm Fedora / RHEL
pulse_x.y.z_amd64.AppImage Any (portable)

From source

git clone https://github.com/xt0n1-t3ch/Pulse-Claude-Code-Analytics.git
cd Pulse-Claude-Code-Analytics
cd frontend && npm install && npm run build && cd ..
cd src-tauri && cargo tauri build

 Features

Analytics dashboard

Provider-owned cost math Per session · day · model. Claude uses its published model/cache/Fast rules and authoritative statusline totals. Codex uses the vendored factual catalog, exposes completeness, and never invents unpublished Fast or cache-write economics.
A – F cache health grade Trend-weighted hit ratio — cchubber-style. See your direction, not just your current number.
Model routing insights Opus / Sonnet / Haiku split + "you could save $X by rerouting N sessions to Sonnet" estimate.
Inflection detection Any session ≥ 2 × baseline cost-per-session gets flagged with context.
Recommendations engine Every finding has a Copy Fix Prompt action routed to the active provider: Claude Code or Codex.
Plan usage limits 5-hour window · weekly all-models · Sonnet-only · Extra Usage monthly spend. Auto-detects Pro / Max / Teams. Sound alert on Extra Usage spikes.
Heatmap · sparklines · charts All-local Chart.js. Zero network.
Reports export Branded HTML + Markdown. One click.
OpenAI Codex support Canonical GPT catalog with GPT-5.6 Sol / Terra / Luna, sourced API rates and Codex credits, exact/partial/unavailable cost status, 372K raw / 353.4K usable context, reasoning effort, and independent Standard/Fast display. One-click provider switch.
Codex RP upstream sync Codex Discord Rich Presence logic is mirrored from Codex-Discord-Rich-Presence with scripts and CI checks, instead of drifting as a private fork.

Discord Rich Presence

Live fields Project · git branch · model · reasoning effort · activity status.
Session timer Elapsed since start. Persists through Discord restarts.
Reasoning tiers Low · Medium · High · Extra High · Max, plus Ultra where the selected Codex model exposes it.
Asset resolver Multi-tier — portal keys → Media Proxy → plain URLs → fallback.
Presets and privacy Minimal · Standard · Full, plus independent project, branch, model, activity, tokens, cost, limits, context, and systems controls.

Privacy & ownership

  • 100 % local. Your session data never leaves your machine. No telemetry, no phone-home, no cloud.
  • SQLite at ~/.claude/pulse-analytics.db — yours to inspect, export, back up, or delete.
  • Apache-2.0 licensed with required attribution. Fork it, audit it, ship your own version — just keep the NOTICE file and credit the original author per the license.

 What makes Pulse different

Pulse Generic dashboards
Opus 4.7 tokenizer awareness (flags inflated counts)
1 M context pricing correctly applied per model (GA flat vs. beta surcharge)
A – F cache health grade (trend-weighted)
Provider-aware Fix with Claude Code / Fix with Codex prompts
Zero-config — reads JSONL transcripts directly setup required
Discord Rich Presence
Native desktop (Tauri 2 + Rust, no Electron bloat)
Open source Apache-2.0 varies

 Usage

First launch → install Pulse → launch → it auto-detects local Claude Code and Codex state → choose a provider; sessions stream in live.

Discord Rich Presence → open the Discord tab → pick a preset (Minimal · Standard · Full) or customize fields → toggle on. Custom presence artwork in docs/discord-assets.md.

Reports → open the Reports tab → read the provider-capable analysis → click Copy Fix Prompt on any item → run it in the active provider. Export HTML / Markdown for your team.

 Roadmap

  • Linux tray icon — system-tray quick toggles (Discord presence on/off, pause analytics, open dashboard) via Tauri's tray-icon feature. Parity with the Windows tray.
  • MCP server inventory — list every MCP server Claude Code has loaded for each session, with its tool count, per-tool invocation frequency, and an estimated token cost per tool call. Helps spot noisy MCPs silently inflating your context.
  • Budget-threshold desktop notifications — native OS notification when you cross configurable thresholds (e.g. "80 % of weekly limit", "Extra Usage just passed $150 of your $200 cap"). Replaces eyeballing the dashboard.
  • Custom Discord presence templates — save / share named field layouts beyond Minimal · Standard · Full. Export a preset as JSON; import one from a teammate.
  • Session replay — step through a past session's prompts and tool-call timeline with the same filters the live dashboard uses. Currently the data is there (JSONL traces) but there's no dedicated UI.
  • Smarter cost forecast — weekly-reset-aware projections with a confidence band, instead of today's linear daily-average multiplication.

Track on the project board.

 Contributing

PRs welcome. CONTRIBUTING.md has the dev setup, style guide, and release process. Please read the Code of Conduct first.

 Sponsor

If Pulse saves you money (or sanity), sponsor its development:

Sponsor xt0n1-t3ch on GitHub

Every contribution goes toward faster releases, better analyzers, and keeping Pulse free and open-source forever.

 Security

Responsible-disclosure policy in SECURITY.md. Report privately via GitHub Security Advisories.

 License

Apache-2.0 © 2026 xt0n1-t3ch. Use Pulse for anything (personal or commercial) — but per the license you must keep the copyright notice and the NOTICE file with original-author attribution in any redistribution or derivative work.


Built with Rust, Tauri, and Svelte for Claude Code and Codex.   ·   github.com/xt0n1-t3ch/Pulse-Claude-Code-Analytics

Windows + WSL session roots

Pulse is Windows-native by default. On Windows it does not launch wsl.exe while polling sessions, because broken WSL installs can raise OS-level crash dialogs. If you intentionally keep Claude/Codex transcripts inside WSL and want Pulse to scan them, opt in before launch:

$env:CC_PRESENCE_INCLUDE_WSL = "1"

Linux and macOS continue to use their native session paths; WSL path bridging remains available only through the explicit Windows opt-in.

About

Open-source Claude Code + OpenAI Codex (ChatGPT App) analytics and Discord Rich Presence. Factual cost, cache, context, and plan telemetry. Native Tauri, 100% local.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages