Opinionated Windows launcher for Claude Code: multi-session manager with subscription quota monitor, customer feedback inbox, scripts, and per-project todos.
A single ~10 MB Windows executable for power users who run several Claude Code sessions in parallel and want a tray-resident dashboard instead of jumping between terminals.
Status: personal project, public for portfolio reasons. Windows-only. No support promised.
If you only ever run one Claude Code session at a time, you don't need this. CCPilot is built around a workflow where you have 3–10 sessions open across different projects, each in its own Windows Terminal tab/window, and you keep losing track of which is which, which is stuck, which is finished, and how much of your weekly subscription quota you've already burned.
The CLI's own /usage, /resume pickers, and wt tab juggling work fine in isolation but don't compose well at scale.
~/.claude/projects/, with first-message preview, message counts, last-activity timestamps, starring, archiving, search, and time/state filters.wt.exe window via HWND tracking; clicking focuses it..jsonl directly..ccpscript) per project — small PowerShell snippets you can run, view, edit, and AI-generate via Claude. Output captured back into the launcher.feedback.md. Right-click → "Send to Claude" spawns a session with the feedback as the first prompt. Workflow states: pending / sent / applied / ignored.Quit.nvm list versions; picking one runs nvm usecurl https://www.gstatic.com/generate_204 through your local proxy)curl https://ipinfo.io/json through your local proxy)5h: X% · 7d: Y%, the same numbers you see in /usage. See How quota monitoring works below.Grab the latest from the Releases page. Pick one:
ccpilot.exe — single-file portable, double-click to run.CCPilot_*_x64-setup.exe — NSIS installer, registers Start Menu entry.CCPilot_*_x64_en-US.msi — MSI installer.Requires WebView2 Runtime (preinstalled on Windows 11; most updated Windows 10 too).
git clone [email protected]:binfenhulian/cc-pilot.git
cd cc-pilot
npm install
npm run tauri build
Output: src-tauri/target/release/ccpilot.exe.
Note on
rustcversion:rustc 1.94.1has a Windows-specific stack/heap regression that crashes when compiling thewindowsandtauri-utilscrates. If you hitSTATUS_STACK_BUFFER_OVERRUNor weird "Sized not in scope" errors, pin to1.92.0:rustup install 1.92.0 rustup override set 1.92.0 # run inside src-tauri/
Claude Code passes a rate_limits field (the same data backing /usage) on stdin to any registered statusline command. CCPilot ships a tiny ~30-line Node shim that:
five_hour + seven_day percentages and reset times to %LOCALAPPDATA%\CCPilot\usage-snapshot.jsonclaude prompt looks unchanged)Click 📊 enable usage in the status bar — CCPilot writes the shim and adds itself as statusLine in ~/.claude/settings.json. Right-click the same pill to disable (cleanly removes the entry).
The snapshot updates every time Claude Code renders its statusline, which is roughly once per assistant turn. CCPilot polls the file every 30 s and shows "stale" if the snapshot is older than 10 minutes (i.e., no Claude session has been active recently).
Caveat: if you already use claude-hud or another statusline tool, enabling CCPilot's monitor will overwrite that config. Chaining into a pre-existing statusline is not implemented.
Most things are zero-config. The few things that aren't:
127.0.0.1:10809 (v2ray HTTP default). Port 10808 is auto-detected as SOCKS5. Edit src/routes/+page.svelte if you need different defaults; a settings UI is not implemented.~/.claude/projects/ (Claude Code's default). Custom paths are not supported.$state runes, adapter-staticIcon.svelte componentMIT. Use it, fork it, ship it. PRs welcome but unlikely to be reviewed quickly — see Status above.