Releases: idevtim/lunopeak
Release list
v1.8.0
LunoPeak v1.8.0
A big Hygiene upgrade — on-demand dependency audits, smarter checks, and a much faster page — plus a macOS menu-bar fix.
Hygiene
- Dependency vulnerability audits, on demand. A new Dependency Audits section detects every auditable project (npm, yarn, pnpm, and Composer) and lets you run an audit per repo with one click. Results break down by severity (critical / high / moderate / low), and the audit runs only when you ask — it never slows down the regular scan.
- One-click safe fixes. For npm, pnpm, and Composer, a Fix button applies the safe, non-breaking fix (
npm audit fix,pnpm audit --fix, or a targetedcomposer update) and re-audits to show what's left, all with a spinner so you know it's working. - Honest about what it can't fix. When vulnerabilities remain that would need a breaking major upgrade, LunoPeak says so plainly and surfaces the
npm audit fix --forcecommand for you to run yourself — rather than quietly applying a breaking change. yarn, which has no safe auto-fix, is audit-only. - Clear failures. A missing package manager, an offline registry, or anything that goes wrong shows up as an inline message instead of failing silently.
- One-click safe fixes. For npm, pnpm, and Composer, a Fix button applies the safe, non-breaking fix (
- Smarter CLAUDE.md and .gitignore checks. These now only flag repos that actually need attention — a recognizable project (one with a build/dependency manifest) that's still being worked on (a commit in the last 90 days). Scratch folders, notes directories, and dormant archives no longer clutter the list. (An unignored
.envis still always flagged — that's a real secret-leak risk anywhere.) - A faster, calmer page. Hygiene now scans your repos in parallel across CPU cores, so the page loads noticeably quicker. Sections start collapsed for a clean overview, and they're ordered by what matters most — errors first, then warnings, then info.
macOS
- Clicking the tray icon over a fullscreen app works again. When another app was running fullscreen, clicking the LunoPeak menu-bar icon could yank you back to your desktop instead of showing the usage popover over the fullscreen Space. LunoPeak now only changes its app mode when it's safe to — so the popover overlays the fullscreen app as intended, without stealing focus or switching Spaces.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.7.3
LunoPeak v1.7.3
Support for Anthropic's new Claude Fable 5 model, plus a Linux/Wayland fix.
- Claude Fable 5 support. LunoPeak now recognizes
claude-fable-5everywhere it handles models:- Accurate costs. Both cost pipelines (the menu-bar usage bars and the Costs page) price Fable 5 at its list rate of $10 / $50 per 1M tokens, including cache reads and 5-minute / 1-hour cache writes. No extended-context premium — Fable 5 bills flat across its full 1M context.
- Sessions view. Fable 5 sessions display as "Fable 5" instead of a raw model id.
- Assistant. Fable is selectable as a model in the Assistant's Anthropic provider, alongside Haiku, Sonnet, and Opus.
- Linux: correct app identification under Wayland. LunoPeak now sets its program name on startup, so Wayland compositors group windows and show the dock icon correctly.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.7.2
LunoPeak v1.7.2
Quality-of-life fixes for the in-app updater: one-click restart, and a banner that actually shows up when you check manually.
- One-click "Restart Now." When an update finishes installing, LunoPeak no longer just tells you to restart — there's a Restart Now button right in the banner (and in the About window) that relaunches the app for you, straight into the new version.
- Manual update checks now surface the banner immediately. Previously, if you'd only closed the window (leaving the menu-bar icon running) and later hit Check for Updates in Settings, it would say an update was available but no banner ever appeared — you had to fully quit and reopen first. The check now drives the banner right away, no relaunch required.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.7.1
LunoPeak v1.7.1
A Linux fix for the menu-bar (tray) icon, which previously did nothing when clicked.
- Clicking the tray icon now works on Linux. Linux's tray protocol doesn't deliver click events to apps the way macOS and Windows do, so the click-to-open popover never fired — the icon just sat there. The icon now opens a small menu with Open LunoPeak, Settings, and Quit.
- macOS and Windows are unchanged — clicking the icon still toggles the usage popover.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.7.0
LunoPeak v1.7.0
LunoPeak now behaves like a proper Mac app and a proper menu-bar app at the same time — dock icon and menus when the window is open, quietly out of the way when it isn't. Settings also picks up a real Alerts tab so you can get notified before you blow through a rate-limit window.
What's new
A real window and a real menu-bar app (macOS)
- When the main window is open, LunoPeak now shows a dock icon with a running dot and a fully working menu bar — the LunoPeak / View / Window / Help dropdowns next to the Apple logo are clickable like any native app.
- Closing the window (red traffic light) tucks the app into the menu bar: the dock icon disappears, but the menu-bar icon stays and keeps refreshing your usage in the background. Reopen any time from the menu-bar icon's Open LunoPeak.
- ⌘Q, or Quit from the menu-bar popover, fully quits everything.
- Launch at login now starts silently in the menu bar — no window pops up and no focus is stolen when you log in. (Already had login-launch enabled? Toggle it off and back on once in Settings so it picks up the new silent behavior.)
- Under the hood this is a dynamic activation policy: a normal foreground app while the window is up, a background menu-bar agent when it's closed — which also lets the menu-bar popover keep overlaying other apps' fullscreen Spaces.
Alerts tab in Settings
- Settings → Budget is now Settings → Alerts, with a dedicated home for every "ping me when…" toggle. Old
?tab=budgetdeep links still land in the right place. - New Usage alerts card: get a native desktop notification (with toast fallback) the moment any provider's 5-hour or weekly window crosses your threshold — Claude Code, Codex, and Cursor are all covered.
- Threshold defaults to 80% and is adjustable from 0–100% in 5% steps. Severity escalates to a red error notification at 90%+.
- Alerts are deduped per provider × window × reset cycle, so you get one heads-up per billing window — not one every poll. New cycle, new alert.
- The existing Cost budget controls (daily / monthly USD limits) live on the same tab so spend alerts and usage alerts sit side by side.
Opus 4.8 support & sharper cost math
- Opus 4.8 is now a selectable model in the assistant and is priced correctly out of the box.
- The cost engine understands the modern Opus tier (4.5–4.8 at $5 / $25 per 1M tokens), the extended-context premium that kicks in once a single prompt crosses 200k input tokens, and the separate, higher 1-hour cache-write rate — so estimates line up with your actual bill.
- Usage tracking now breaks out cache-creation tokens, including the pricier 1-hour ephemeral cache writes, so cached work is attributed accurately instead of lumped in with fresh input.
"Back" that actually goes back
- Detail pages — Cost Detail, Repo Detail, Session Replay, Transcripts, and Repo Pulse — now carry a Back link that returns you to wherever you came from, following your in-app history instead of a hardcoded parent. Deep links and fresh launches fall back to a sensible default.
Git stashes in Repo Pulse
- Repo Pulse now surfaces a Stashes section, listing each repo's stashes along with the files they touch — so work you've set aside doesn't get forgotten.
Clearer cost labels
- The Costs page renames "This week" → "Last 7 days" and tags the all-tools totals as such, so it's obvious what each number covers.
- Sessions now get per-day cost attribution, and new tooltips spell out why a provider's rolling 5-hour / 7-day usage window won't match the Costs page's all-tools, calendar-day totals.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.6.0
LunoPeak v1.6.0
Costs grows up: every repo now drills into a full breakdown of how spend was earned, totals go beyond dollars, and every bar chart in the app gains rich hover tooltips so you can read history without guessing.
What's new
Totals strip on Costs
- Three new top-of-page stat cards: Total messages, Total tokens, Total sessions — alongside the existing Today / Week / Month / All-time spend.
- By repo rows now display cost · messages · tokens at a glance.
Per-repo cost drill-down
- Click any repo in By repo (on Costs or on Repo Detail) to open a dedicated cost-detail page scoped to that repo.
- Header stat cards: cost, messages, tokens, sessions (rolling 30 days).
- 30-day daily spend bar chart.
- Four breakdown tables, each with sessions / messages / tokens / cost columns:
- By day — every day in the trailing 30-day window.
- By 5h session — Anthropic-aligned 5-hour windows, newest first, collapsed to 8 with View all.
- By week — Monday-anchored calendar weeks.
- By weekly session — 7-day rolling sessions that begin at the first activity following the previous block, mirroring Anthropic's weekly window.
Repo Detail: last-30-days usage card
- Every repo's detail page now shows a Last 30 days card with messages, cost, tokens, and sessions, plus a Cost breakdown shortcut into the new drill-down.
- Empty repos surface a clean "No agent activity" note instead of a blank card.
Rich hover tooltips on every chart
- A unified tooltip style replaces native
title=hints across the app — Costs, Sessions (day + hour), Dashboard activity, Timeline, Tools, and Work Graph. - Tooltips show the calendar date alongside the value, so you can read "Tue, May 5 · 12 sessions" instead of decoding "5d ago: 12."
- Hovering a bar dims its neighbors so the focused day pops; tooltips reposition near the right edge so they don't clip out of the chart.
- Endpoint axis labels ("30 days ago" / "Today") replace the noisy
5dtick row on the Work Graph activity chart.
Tools view: Tool Glossary
- New Tool Glossary section at the bottom of the Tools view documents what each tool does and which agents (Claude / Codex / Cursor) use it.
- Tools are grouped by family — File, Shell, Search, Web, Task, Meta — each with its own color-coded chip.
- The distribution rows on the same page pick up the family chip and an inline ⓘ popover with the tool's description, so you can hover a row to learn what
NotebookEditorToolSearchactually is without leaving the page.
Work Graph polish
- Stat cards now carry context hints ("last 7d", "7–30d", "30d+", "last 30d") so the buckets are self-explanatory.
- When viewing Mine, a subtitle clarifies the filter ("Filtered to repos where you've authored commits in the last 30 days").
Theming refresh
- Sidebar picks up a distinct surface — a soft gray in light mode and a deep near-black panel in dark — so it reads as its own region instead of blending into the content.
- Dark mode rebuilt for contrast. The main canvas lifts a step away from the sidebar, cards and borders sit higher, and the active nav item snaps into a brighter glass capsule.
- Readable everywhere. Captions, axis labels, plan tags ("MAX PLAN", "PLUS PLAN", "FREE PLAN"), date stamps, and search placeholders all clear WCAG AA contrast in both themes — no more squinting at "LAST 30 DAYS · COMMITS + SESSIONS" or "Monday, May 25."
- Sidebar feel. Snappier 75ms hover transitions and a proper pointer cursor on every nav item.
Fixes & reliability
- macOS GUI launches now find your CLIs. When you open LunoPeak from Launchpad / the Dock,
PATHno longer omits Homebrew, cargo, and~/.local/bin— soghandgitwork the same as in a terminal. Same treatment for Linux (snap, flatpak, linuxbrew) and Windows (scoop, chocolatey, user shims). - Windows build script now auto-detects the host architecture and imports the Visual Studio environment, fixing cross-compilation between x64 and ARM64 hosts.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.5.2
LunoPeak v1.5.2
A small UX pass on the Sessions and Costs views — see your full list when you want it, not just the top slice.
- Sessions → By Project now has a View all toggle. Heavy users no longer cap out at 10 projects.
- Sessions → Recent Sessions expands the same way, with a count badge in the header.
- Costs → By repo picks up the same toggle when you have more than 12 repos, plus a matching count badge.
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.5.1
LunoPeak v1.5.1
A quick polish pass on the tray popover.
- Dark mode no longer looks washed out when the popover opens over a bright window.
- Brighter secondary text — labels and details in the popover are easier to read.
- No more false "Cursor 5h session" warning before you've used any tokens.
- Dropped the "All windows healthy" banner — the bars already tell you that.
Auto-updates roll this out if you opted in. Otherwise, grab the latest installer from the release page.
v1.5.0
LunoPeak v1.5.0
The menu-bar tray icon grows up. The old native dropdown is gone — clicking the tray icon now opens a rich, frameless popover with per-provider progress bars, an at-a-glance insight strip, today + 30-day spend, and quick-jump actions back into the app. Same data the dashboard surfaces, anchored under the icon so it's there whenever you glance at the menu bar.
What's new
Redesigned tray popover
- Frameless webview, not a native menu. Native OS menus can't render progress bars or per-provider colorways, so v1.5.0 swaps the dropdown for a webview popover styled to match the rest of the app. Frosted glass material (Sidebar on macOS, Mica on Windows) gives it the same chrome as the main window.
- Anchored to the tray icon. The panel positions itself directly under the icon on macOS, or above it when the system tray is at the bottom of the screen on Windows / Linux. Auto-clamps inside the monitor with a 6px margin so it never kisses the screen edge, and DPI math is logical-pixel based so it stays the same physical size on retina vs. external displays.
- Auto-hides on blur. Clicking outside the panel dismisses it instantly. Click the tray icon again to bring it back. No close button needed (but there's a small X in the header anyway, for keyboard-free dismissal).
Insight strip — and you can dismiss it
- One pressing fact, color-coded. The top of the panel surfaces the single most-utilized window across all enabled providers. Emerald when everything's healthy (<60% used), amber for warnings (60–84%), rose for danger (≥85%). The sub-line shows the reset hint ("resets in 1h 34m") so you can size up the urgency at a glance.
- Dismiss with a click. A small X on the strip clears the current insight. Dismissals are keyed by
kind:provider:window, so dismissing a Claude 5h warning stays dismissed while it's still that warning — but a new Codex weekly danger surfaces fresh, without needing a re-trigger.
Tabs + per-provider detail
- Sliding-pill tabs across the top: Overview, plus one per enabled provider. The selected pill carries the provider's mark inline (Anthropic / OpenAI / Cursor) so the layout reads as a control surface, not a list.
- Overview is an at-a-glance grid: every provider as a clickable row with a mini progress bar that escalates to amber → rose as utilization climbs. Click any row to jump into the detailed per-provider view.
- Per-provider detail shows the Session (5h) and Weekly bars with provider-specific gradients — Claude amber→orange, Codex emerald→teal, Cursor sky→blue. A pulsing live dot next to the provider name signals data is refreshing. Cursor gets a single "Active context" bar in place of session/weekly, matching its rate-limit model.
Cost rollup + sparkline
- Today + last 30 days sit at the bottom of the panel, with a 7-day sparkline next to them so you can spot a spending trend before drilling into the Costs view.
Footer actions
- Open LunoPeak brings the main window forward without changing your route — you land back where you left off, not on the dashboard.
- Settings jumps to the Settings view.
- Quit exits the app cleanly (window-state save, plugin teardown — no
process::exitshortcuts).
Fixes
macOS: tray-panel clicks no longer dismiss the panel
- The popover lives on the floating window level (
always_on_top) so it stays above the main window. NSWindow'sacceptsFirstMousedefaults to NO on floating windows, which meant the first click on the panel just activated it — the click never fired. Combined with our blur-to-hide handler, that activation looked like a real blur, so every click silently dismissed the panel and nothing else. Fixed by flippingacceptsFirstMouseon at builder time, so clicks both activate the window and fire the event in one pass.
Main window now reliably takes focus from the popover
- Both the "Open LunoPeak" and "Settings" actions now show + focus the main window before hiding the popover, so the OS has a destination focus target before the always-on-top source vanishes. The previous order could leave the previously-foregrounded app frontmost on macOS instead of LunoPeak.
Under the hood
- The Rust tray module dropped the entire native
MenuBuildertree and now drives the panel through a singleWebviewWindowBuilder. The 60-second refresh loop is unchanged — it keeps re-rendering the tray title and tooltip on its own cadence; the panel reads data via the same React Query keys the rest of the app uses. - A new
tray-panelwindow label is allowed incapabilities/default.jsonalongsidemainandabout, with the same permission set.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out automatically if you opted in. Otherwise, grab the installer for your platform from the release page.
v1.4.0
LunoPeak v1.4.0
The Assistant gets local-first. v1.4.0 adds Ollama as a first-class provider — pick a model from the header, swap on the fly, and run the whole thing without an API key. Fresh installs auto-detect a running Ollama daemon and adopt it as the default before you even open Settings. This release also folds in the dashboard-refresh fixes that shipped in 1.3.2, so live data stays live across the whole app.
What's new
Ollama as a first-class assistant provider
- Local models, no API key. A new "Ollama" tile in Settings → Assistant points at your local daemon (default
http://localhost:11434, overridable). Calls go straight from the app to your machine — nothing routes through us, and you don't need an account anywhere. - Live model discovery. The model picker pulls your installed models from
/api/tagswhenever it opens, so it always reflects what you've actuallyollama pulled. Family and parameter size show inline for each model. - Tool-calling works. Ollama uses its native
/api/chatwith the same tool definitions Anthropic gets, so the assistant's tools (hygiene diagnose, repo list, cost breakdown, session stats, tool usage) work end-to-end on tool-capable models like Llama 3.2, Qwen 2.5 Coder, and Mistral. - Auto-default on first install. When the app boots for the first time and finds Ollama already running locally, it picks Ollama as the default provider and selects your first installed model — so the chat just works the moment you open it. Skipped if you've already set up a cloud key.
- Test connection in Settings. A "Test" button next to the endpoint pings the daemon and lists installed models with a reachable / unreachable badge, so you can verify the setup before opening the chat.
Swap models from the header
- Provider + model dropdown. The Assistant header now has a combined picker that lists every provider you've configured, with their models grouped underneath. Switch from Claude Sonnet to a local Qwen and back without leaving the chat.
- Disabled groups for missing keys. Providers with no API key configured are visibly greyed-out in the dropdown, so it's obvious which ones you can use right now versus which need a Settings detour.
Fixes
Dashboards now refresh on their own
- Time-sensitive queries poll on a 60-second cadence. Cost today, session stats, dashboard summary, sessions, tool stats, and repo activity now refetch in the background while the app is open, so numbers visibly tick forward instead of freezing on whatever was true at launch.
- Switching views revalidates stale data. Navigating back to Readout, Costs, or Repos now triggers a refetch when the cached data is older than its
staleTime, so the first paint after you return reflects current state instead of a snapshot from earlier in the session. - No extra load on the Rust side. The scanners already cache aggressively in-process, so the new poll cadence rides on top of existing caches — most refetches are cheap re-reads of already-warm data.
Platform support
- macOS 10.15+ (Apple Silicon and Intel)
- Windows 10+ (x64 and ARM64)
- Linux (x86_64 and aarch64) — deb, rpm, and AppImage
Auto-updates roll this out automatically if you opted in. Otherwise, grab the installer for your platform from the release page.