GitHub - jpatel3/claude-dashboard: Local web dashboard for Claude Code sessions: live monitoring, history, usage charts, resume commands, and LLM usage analysis · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
jpatel3
claude-dashboard
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>29 Commits<br>29 Commits
client
client
docs
docs
server
server
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
package-lock.json
package-lock.json
package.json
package.json
View all files
Repository files navigation
claude-dashboard
Requires Node 20+, macOS (uses ps/lsof for live-session detection), and the Claude Code CLI.
Local dashboard for Claude Code sessions on this machine: live session monitoring, history, usage charts, one-click resume commands, and on-demand LLM usage analysis.
Screenshot shows sample data. Named sessions (via /rename) display their custom name; everything else falls back to the session's first prompt.
Run
npm install<br>npm run dev
Open http://localhost:5173. API server runs on :3456.
How it works
Reads transcripts from ~/.claude/projects/*/*.jsonl (incremental, append-only parsing).
Detects live sessions by matching claude processes (ps + lsof cwd) to transcript directories; falls back to "modified in last 2 minutes" if process detection is unavailable.
"Analyze my usage" runs claude -p headless over a digest of the last 14 days and caches the report to server/data/last-analysis.json.
Security
The server binds to 127.0.0.1 only (never 0.0.0.0) and enforces a Host allowlist to prevent DNS-rebinding attacks.
POST /api/analyze requires the x-claude-dashboard: 1 header (the UI sends it automatically); bare curl without the header is rejected with 403.
Test
npm test
All tests live in server/test/ and are run with vitest.
Spec: docs/superpowers/specs/2026-06-11-claude-dashboard-design.md
License
MIT — see LICENSE.
Known limitations (v1)
Same-directory concurrent sessions: Two concurrent Claude sessions in the same working directory appear as a single active session — cwd (from lsof) is the only signal used to match a process to a transcript, so the most-recently-active transcript in that directory wins.
Subagent transcripts not counted: Transcripts stored under projects/*//subagents/ are not scanned. Token usage and session counts reflect only top-level session files.
Sessions and stats panels load once per page load: The Recent Sessions table and Charts panel fetch data once at startup and do not auto-refresh — reload the page to see new data. The Active Sessions panel auto-polls every 5 seconds.
About
Local web dashboard for Claude Code sessions: live monitoring, history, usage charts, resume commands, and LLM usage analysis
Resources
Readme
License
MIT license
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
TypeScript<br>95.1%
CSS<br>4.4%
HTML<br>0.5%
You can’t perform that action at this time.