Lightweight CPU + RAM usage charts on the Windows taskbar, with an integrated Claude Code API usage indicator (5-hour session and 7-day weekly quota with time-to-reset).
Forked from the original taskbar-monitor (built on top of CS DeskBand) and adapted for personal use on Windows 11.
- UI trimmed to CPU + RAM only — disk/network/GPU graphs removed, layout reshaped as horizontal percent bars to fit the modern taskbar.
- Claude usage panel — polls the Anthropic API every 60s using the OAuth token from
%UserProfile%\.claude\.credentials.jsonand renders two bars:- CURRENT — 5h unified session utilization + time until reset.
- WEEKLY — 7d unified utilization + time until reset.
- Bar hides automatically when no token / API unreachable.
- Windows 11 positioning fix — the original layout was anchored to
TrayNotifyWnd, which on Win11 only contains the clock and system icons. App tray icons (Telegram, Steam, antivirus, …) are XAML widgets that live outsideTrayNotifyWnd, so the control used to overlap them. The control now enumerates all right-anchored children ofShell_TrayWndto compute the real boundary and sits cleanly to the left of the entire tray cluster. A 4s reposition timer handles dynamic tray icons (apps starting/stopping). - Installer fixed for Win11 — Win11 host runs as a standalone tray app, not a COM DeskBand. Installer no longer tries to
regasmthe DLL on Win11; legacy unregister is best-effort and won't crash the installer if the old DLL is corrupt or not a .NET assembly. - Code-quality fixes across the shared assembly:
Monitor.Dispose()correct teardown order + singleton reset.drawGraphclamp guard fixed (was assigning to the wrong variable).- All
Options.CounterOptions["..."]accesses useTryGetValuewith safe fallbacks. CounterCPUcore-name regex made locale-tolerant.Options.SaveToDiskis now atomic (write.tmp+File.Replace), with corrupt-config fallback inReadFromDisk.PerformanceCounterReadermutatesValuesin place and forces a query re-init on transient PDH errors instead of swallowing them.ClaudeUsageMonitorHTTP client has a 30 s timeout; polling respects theEnableClaudeUsageflag (no more billing the user's quota in the background when the bar is hidden).TaskbarManagerlocksTaskbarListfor cross-thread safety and guardsInvokeagainst disposed controls.Program.cs(Win11): null-safe finally block, plusAppDomain.UnhandledExceptionreporting.
- NuGet alignment —
Newtonsoft.Jsonreference moved from12.0.3to the actually-present13.0.1so the solution restores and builds out of the box.
- Windows 10 (DeskBand) or Windows 11 (standalone tray app).
- .NET Framework 4.7.2 (preinstalled on Windows 10 1803 April 2018 and later).
- (Optional) A Claude Code installation that has logged in at least once, so
%UserProfile%\.claude\.credentials.jsonexists. Without it the Claude bar simply stays hidden.
- Build the solution (
Release|Any CPU) or download a prebuiltTaskbarMonitorInstaller.exe. - Run the installer as Administrator — it installs into
C:\Program Files\TaskbarMonitor, registers itself in startup, and on Windows 11 launches the tray app immediately.
The Windows 10 build is a COM DeskBand — installing registers it, but Explorer doesn't show it automatically. You have to enable it once:
- Right-click an empty spot on the taskbar → uncheck Lock the taskbar (if locked).
- Right-click the taskbar again → Toolbars → click taskbar-monitor.
- The CPU/RAM/Claude bars appear near the clock. Drag the toolbar handle to resize.
If taskbar-monitor does not appear in the Toolbars submenu, the COM registration didn't take effect. Verify and re-register manually:
# PowerShell as Administrator
reg query "HKLM\SOFTWARE\Classes\CLSID\{1A7AC366-8395-4F22-AAC8-CD2502FCE2B5}" /s
# If empty, force re-register:
cd "C:\Program Files\TaskbarMonitor"
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /codebase TaskbarMonitor.dll
Stop-Process -Name explorer -ForceIf a previous broken install left files behind, clean them first:
# PowerShell as Administrator
Stop-Process -Name TaskbarMonitorWindows11 -Force -ErrorAction SilentlyContinue
Remove-Item "C:\Program Files\TaskbarMonitor" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "C:\Program Files (x86)\TaskbarMonitor" -Recurse -Force -ErrorAction SilentlyContinueTaskbarMonitorWindows11\bin\Release\TaskbarMonitorWindows11.exe
Right-click the tray icon for Settings / Open Task Manager / Open Resource Monitor / Exit.
Remove via Settings → Apps → Installed apps (entry taskbar-monitor), or run the installer with /uninstall.
Stored at %LocalAppData%\Programs\taskbar-monitor\config.json. Notable keys:
EnableClaudeUsage— toggle the Claude bar (and the network polling).PollTime— system counter polling interval in seconds.ThemeType—AUTOMATIC/DARK/LIGHT/CUSTOM.
The configuration file is rewritten atomically and self-heals on corruption.
- Original project: leandrolugaresi/taskbar-monitor
- DeskBand framework: dsafa/CSDeskBand
