{"_id":"@darshanpatel2608/claude-dash","_rev":"9-9d386df38bdc20bc903417b8508027d2","name":"@darshanpatel2608/claude-dash","dist-tags":{"latest":"2.1.3"},"versions":{"1.0.0":{"name":"@darshanpatel2608/claude-dash","version":"1.0.0","keywords":["claude","claude-code","dashboard","analytics","token-usage","cost-tracking","ai","llm"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@1.0.0","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.js"},"dist":{"shasum":"1678977d425da04f650c9effca1bdbbbf4cb5e22","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-1.0.0.tgz","fileCount":20,"integrity":"sha512-G9M5Ddnd1ulWVGTZAcHvnDUq2AtqFWff4/xWAXk0Jwn4f3wheuA85oLkTG9dcAddzSQwMgYTrRAZlpgsckYg0A==","signatures":[{"sig":"MEQCIH97C4i5KFdbI3VOfEkY1+aVmqVI2pH1fAwL/sLkpGQFAiBUJV8X2tSB3SDOxAZShnjdnMeOU9ws9bLoUf5LWEkm+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1047543},"main":"index.js","type":"module","gitHead":"649ba0e9af122d56f581ff3a437b4efdb2c85b13","private":false,"scripts":{"dev":"concurrently \"vite\" \"tsx server/index.ts\"","build":"vite build && tsc -p tsconfig.server.json","start":"node bin/claude-dash.js","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"A stunning dashboard for Claude Code session analytics and conversation browsing","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.3","clsx":"^2.1.1","open":"^11.0.0","react":"^19.2.8","shadcn":"^4.16.2","express":"^5.2.1","chokidar":"^5.0.0","recharts":"^3.10.1","react-dom":"^19.2.8","detect-port":"^2.1.0","lucide-react":"^1.30.0","@base-ui/react":"^1.7.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-router-dom":"^7.18.2","class-variance-authority":"^0.7.1","@fontsource-variable/geist":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vite":"^8.2.0","oxlint":"^1.75.0","@types/ws":"^8.18.1","typescript":"~6.0.2","@types/node":"^24.13.3","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_1.0.0_1786249172921_0.04984033211768213","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@darshanpatel2608/claude-dash","version":"1.0.1","keywords":["claude","claude-code","dashboard","analytics","token-usage","cost-tracking","ai","llm"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@1.0.1","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.js"},"dist":{"shasum":"4255ad06e5264750365ffff3898e51ffe4d87c2b","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-1.0.1.tgz","fileCount":21,"integrity":"sha512-xFM0C0uXWkEjF81dJx4VCaSCELTq+cmDBneD43j9rR8Ior/m0+t6E2u4lF/fFaYOOa6DXrCRZSl4YtL4sBjAyA==","signatures":[{"sig":"MEYCIQDMR4zX85dP5JRCaxmW0IChI87a8OY+3HtG7fZpaxfaegIhAJXXHdz3JFRpzS3WQ6QIhFIis8tWBwP6eaNAan3h3yd3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3233366},"main":"index.js","type":"module","gitHead":"a0259f99d79c547c5d242973c5ad05448b36054d","private":false,"scripts":{"dev":"concurrently \"vite\" \"tsx server/index.ts\"","build":"vite build && tsc -p tsconfig.server.json","start":"node bin/claude-dash.js","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"A stunning dashboard for Claude Code session analytics and conversation browsing","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.3","clsx":"^2.1.1","open":"^11.0.0","react":"^19.2.8","shadcn":"^4.16.2","express":"^5.2.1","chokidar":"^5.0.0","recharts":"^3.10.1","react-dom":"^19.2.8","detect-port":"^2.1.0","lucide-react":"^1.30.0","@base-ui/react":"^1.7.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-router-dom":"^7.18.2","class-variance-authority":"^0.7.1","@fontsource-variable/geist":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vite":"^8.2.0","oxlint":"^1.75.0","@types/ws":"^8.18.1","typescript":"~6.0.2","@types/node":"^24.13.3","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_1.0.1_1786251021352_0.062284487649860276","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@darshanpatel2608/claude-dash","version":"1.0.2","keywords":["claude","claude-code","dashboard","analytics","token-usage","cost-tracking","ai","llm"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@1.0.2","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.js"},"dist":{"shasum":"ff85081cb8bd171fcf324ec4e51b36317242841a","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-1.0.2.tgz","fileCount":21,"integrity":"sha512-rv9/N9Fmb/IAaVHrhvLj14YQffpwjzJNtN9IM/zqqVjeCRdGcbR8xanKecgoBu1OTxqaKUaTQ+GNQe3+JkhgmA==","signatures":[{"sig":"MEQCIG7UOm+vm/gxtfkaBV8nmzZcY9NtsFcWDF1OiS5E34KpAiAyAKyAWemtwvT2qE1IpR2vU5BT6g6PywZlGFpX2rnUkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3233540},"main":"index.js","type":"module","gitHead":"7f7c0e7584629c93b4f99dd3c57ba36b4e1e6686","private":false,"scripts":{"dev":"concurrently \"vite\" \"tsx server/index.ts\"","build":"vite build && tsc -p tsconfig.server.json","start":"node bin/claude-dash.js","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"A stunning dashboard for Claude Code session analytics and conversation browsing","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.3","clsx":"^2.1.1","open":"^11.0.0","react":"^19.2.8","shadcn":"^4.16.2","express":"^5.2.1","chokidar":"^5.0.0","recharts":"^3.10.1","react-dom":"^19.2.8","detect-port":"^2.1.0","lucide-react":"^1.30.0","@base-ui/react":"^1.7.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-router-dom":"^7.18.2","class-variance-authority":"^0.7.1","@fontsource-variable/geist":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vite":"^8.2.0","oxlint":"^1.75.0","@types/ws":"^8.18.1","typescript":"~6.0.2","@types/node":"^24.13.3","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_1.0.2_1786251780653_0.09420790266526513","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@darshanpatel2608/claude-dash","version":"1.0.3","keywords":["claude","claude-code","dashboard","analytics","token-usage","cost-tracking","ai","llm"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@1.0.3","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.js"},"dist":{"shasum":"61c5118b997078a2c2ec315a69381e6746d257d8","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-1.0.3.tgz","fileCount":21,"integrity":"sha512-R1nmTKoSDydxmcRbWsoK+XaQ1PDjMh9B/8PUB0ZlaoRS719zWPHwB/JfDjNabLB3YTkwiKt2pP+lA+EtlC582w==","signatures":[{"sig":"MEYCIQCZcnsqFLJISEMGRfCRpsXyVzSo0c9YTqiRp9tg/0nUnAIhAJkZWcP0OfxqL11bPqucaknhEZ3FdF3uzq0udWj48Y+x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3233497},"main":"index.js","type":"module","gitHead":"fce865e782f7d31639fd54de4365c4ef73a97506","private":false,"scripts":{"dev":"concurrently \"vite\" \"tsx server/index.ts\"","build":"vite build && tsc -p tsconfig.server.json","start":"node bin/claude-dash.js","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"A stunning dashboard for Claude Code session analytics and conversation browsing","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.3","clsx":"^2.1.1","open":"^11.0.0","react":"^19.2.8","shadcn":"^4.16.2","express":"^5.2.1","chokidar":"^5.0.0","recharts":"^3.10.1","react-dom":"^19.2.8","detect-port":"^2.1.0","lucide-react":"^1.30.0","@base-ui/react":"^1.7.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-router-dom":"^7.18.2","class-variance-authority":"^0.7.1","@fontsource-variable/geist":"^5.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vite":"^8.2.0","oxlint":"^1.75.0","@types/ws":"^8.18.1","typescript":"~6.0.2","@types/node":"^24.13.3","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","@types/express":"^5.0.6","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_1.0.3_1786252774085_0.8009288431417971","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@darshanpatel2608/claude-dash","version":"2.0.0","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@2.0.0","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.mjs"},"dist":{"shasum":"e00f80af2a2a727df710103a795767a6b292b795","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-2.0.0.tgz","fileCount":35,"integrity":"sha512-OojU6KlHhiPGJRlvgLFET9wP/x7Qf+0Q+P45axhy40SGlHcFtVptXq8xdGDyBMTuvWG+B+RzywvLbhQYsm633Q==","signatures":[{"sig":"MEQCIDkqrdFuM1T9j/h5NJj5nnWW71fU+r0jPJPknFZaWkC8AiAalcNdpyRutCelzJBdi/HYyaI2jlW6yBnbN/wQMNVFWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3092938},"main":"index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"55776482c6681e7aa144405f38820017982536be","private":false,"scripts":{"dev":"concurrently -n web,api -c cyan,magenta \"vite\" \"tsx watch server/main.ts --port 4318\"","lint":"oxlint","test":"node --import tsx --test test/*.test.ts","build":"bun run typecheck && bun run build:web && bun run build:server","start":"node bin/claude-dash.mjs","preview":"vite preview","build:web":"vite build","typecheck":"tsc -b","build:server":"tsup","prepublishOnly":"bun run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","directories":{"test":"test"},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","clsx":"^2.1.1","cmdk":"^1.1.1","gsap":"^3.15.0","hono":"^4.13.1","tsup":"^8.5.1","vite":"^8.2.0","react":"^19.2.8","motion":"^12.23.12","oxlint":"^1.75.0","shadcn":"^4.16.2","sonner":"^2.0.8","chokidar":"^5.0.0","recharts":"3.8.0","react-dom":"^19.2.8","remark-gfm":"^4.0.1","typescript":"~6.0.2","@babel/core":"^7.29.7","@gsap/react":"^2.1.2","@types/node":"^24.13.3","next-themes":"^0.4.6","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","react-router":"^8.3.0","@base-ui/react":"^1.7.0","react-markdown":"^10.1.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","rehype-highlight":"^7.0.2","@hono/node-server":"^2.1.0","@tailwindcss/vite":"^4.3.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.4","@phosphor-icons/react":"^2.1.10","@tanstack/react-query":"^5.101.4","@rolldown/plugin-babel":"^0.2.3","@tailwindcss/typography":"^0.5.20","@tanstack/react-virtual":"^3.14.9","class-variance-authority":"^0.7.1","babel-plugin-react-compiler":"^1.0.0","@fontsource-variable/ibm-plex-sans":"^5.3.0","@fontsource-variable/source-sans-3":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_2.0.0_1786391222299_0.08603561725902376","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@darshanpatel2608/claude-dash","version":"2.0.1","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@2.0.1","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.mjs"},"dist":{"shasum":"8f39afe9fa36da4f2c7140532913816dc0a872f1","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-2.0.1.tgz","fileCount":35,"integrity":"sha512-QutYCb9XsZH20N3RSoCb4l/lUUbcFVivfwxYvdusiOzNVN5eTIupjzFliq1fR5MZWiCGZMCNcJjNgsIHkIOp6A==","signatures":[{"sig":"MEUCICBWcRWCPftg2FeZfHUGUNsw+HYD+AN7sS8MTv54XArPAiEA9OTlr28Rgs+jFkyN7ZI1uzaaJz5gVNiX3C61Y3MMonI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3094977},"main":"index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"b248d12fe7746c7e7a59a75e7dc351a45111a033","private":false,"scripts":{"dev":"concurrently -n web,api -c cyan,magenta \"vite\" \"tsx watch server/main.ts --port 4318\"","lint":"oxlint","test":"node --import tsx --test test/*.test.ts","build":"bun run typecheck && bun run build:web && bun run build:server","start":"node bin/claude-dash.mjs","preview":"vite preview","build:web":"vite build","typecheck":"tsc -b","build:server":"tsup","prepublishOnly":"bun run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","directories":{"test":"test"},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","clsx":"^2.1.1","cmdk":"^1.1.1","gsap":"^3.15.0","hono":"^4.13.1","tsup":"^8.5.1","vite":"^8.2.0","react":"^19.2.8","motion":"^12.23.12","oxlint":"^1.75.0","shadcn":"^4.16.2","sonner":"^2.0.8","chokidar":"^5.0.0","recharts":"3.8.0","react-dom":"^19.2.8","remark-gfm":"^4.0.1","typescript":"~6.0.2","@babel/core":"^7.29.7","@gsap/react":"^2.1.2","@types/node":"^24.13.3","next-themes":"^0.4.6","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","react-router":"^8.3.0","@base-ui/react":"^1.7.0","react-markdown":"^10.1.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","rehype-highlight":"^7.0.2","@hono/node-server":"^2.1.0","@tailwindcss/vite":"^4.3.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.4","@phosphor-icons/react":"^2.1.10","@tanstack/react-query":"^5.101.4","@rolldown/plugin-babel":"^0.2.3","@tailwindcss/typography":"^0.5.20","@tanstack/react-virtual":"^3.14.9","class-variance-authority":"^0.7.1","babel-plugin-react-compiler":"^1.0.0","@fontsource-variable/ibm-plex-sans":"^5.3.0","@fontsource-variable/source-sans-3":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_2.0.1_1786391710230_0.6952322389989964","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@darshanpatel2608/claude-dash","version":"2.0.2","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@2.0.2","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.mjs"},"dist":{"shasum":"78b4bf88590aacf65215f2db10d539dcc29243f5","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-2.0.2.tgz","fileCount":35,"integrity":"sha512-IxSHP368nY8/maoML2QqrKAkkH2UfkOxcn5DhOvpFE3usBZc6FUplOe0iZvX4gXa77Iti74fOHvgkQDAABd2QA==","signatures":[{"sig":"MEQCICwg8zMJq9uQAvqPEENX0+2iXbe6gfWa9rXCNkWV2/uLAiAblAcJzgf9Zohpc+RUnrXcZN9NU7X09X8WJ9h6T3rrhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3106103},"main":"index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"3bf1b8c1e131a868d9060d754b8aa0a85bbb4e5a","private":false,"scripts":{"dev":"concurrently -n web,api -c cyan,magenta \"vite\" \"tsx watch server/main.ts --port 4318\"","lint":"oxlint","test":"node --import tsx --test test/*.test.ts","build":"bun run typecheck && bun run build:web && bun run build:server","start":"node bin/claude-dash.mjs","preview":"vite preview","build:web":"vite build","typecheck":"tsc -b","build:server":"tsup","prepublishOnly":"bun run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","directories":{"test":"test"},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","clsx":"^2.1.1","cmdk":"^1.1.1","gsap":"^3.15.0","hono":"^4.13.1","tsup":"^8.5.1","vite":"^8.2.0","react":"^19.2.8","motion":"^12.23.12","oxlint":"^1.75.0","shadcn":"^4.16.2","sonner":"^2.0.8","chokidar":"^5.0.0","recharts":"3.8.0","react-dom":"^19.2.8","remark-gfm":"^4.0.1","typescript":"~6.0.2","@babel/core":"^7.29.7","@gsap/react":"^2.1.2","@types/node":"^24.13.3","next-themes":"^0.4.6","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","react-router":"^8.3.0","@base-ui/react":"^1.7.0","react-markdown":"^10.1.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","rehype-highlight":"^7.0.2","@hono/node-server":"^2.1.0","@tailwindcss/vite":"^4.3.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.4","@phosphor-icons/react":"^2.1.10","@tanstack/react-query":"^5.101.4","@rolldown/plugin-babel":"^0.2.3","@tailwindcss/typography":"^0.5.20","@tanstack/react-virtual":"^3.14.9","class-variance-authority":"^0.7.1","babel-plugin-react-compiler":"^1.0.0","@fontsource-variable/ibm-plex-sans":"^5.3.0","@fontsource-variable/source-sans-3":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_2.0.2_1786393021948_0.6907587245495577","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@darshanpatel2608/claude-dash","version":"2.0.3","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","_id":"@darshanpatel2608/claude-dash@2.0.3","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"bin":{"claude-dash":"bin/claude-dash.mjs"},"dist":{"shasum":"b874d1b5858a06ad8857275988548881a2c750ac","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-2.0.3.tgz","fileCount":35,"integrity":"sha512-N7w2a1ckZpOjq+iYg32ZCcr7WIRmlsxN5qgm2psc0s8JuiGuXhvzcp4Qt/0JQg6uTM3w0x4NlX2p4opKgyQBjw==","signatures":[{"sig":"MEQCIFSP4c2a7reEd/40Y25t05EHUOq/qzyoZZ98kD3k2MUxAiBaAXdO9uiP4dRq8ZQxIAPhOiIl7eeuZWEtqTGqTfiaxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3106153},"main":"index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"e9ead9283b8bcca9ba9b9963842ed5fc1f498485","private":false,"scripts":{"dev":"concurrently -n web,api -c cyan,magenta \"vite\" \"tsx watch server/main.ts --port 4318\"","lint":"oxlint","test":"node --import tsx --test test/*.test.ts","build":"bun run typecheck && bun run build:web && bun run build:server","start":"node bin/claude-dash.mjs","preview":"vite preview","build:web":"vite build","typecheck":"tsc -b","build:server":"tsup","prepublishOnly":"bun run build"},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"repository":{"url":"git+https://github.com/darshan260802/claude-dash.git","type":"git"},"_npmVersion":"11.17.0","description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","directories":{"test":"test"},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","clsx":"^2.1.1","cmdk":"^1.1.1","gsap":"^3.15.0","hono":"^4.13.1","tsup":"^8.5.1","vite":"^8.2.0","react":"^19.2.8","motion":"^12.23.12","oxlint":"^1.75.0","shadcn":"^4.16.2","sonner":"^2.0.8","chokidar":"^5.0.0","recharts":"3.8.0","react-dom":"^19.2.8","remark-gfm":"^4.0.1","typescript":"~6.0.2","@babel/core":"^7.29.7","@gsap/react":"^2.1.2","@types/node":"^24.13.3","next-themes":"^0.4.6","tailwindcss":"^4.3.3","@types/react":"^19.2.17","concurrently":"^10.0.4","react-router":"^8.3.0","@base-ui/react":"^1.7.0","react-markdown":"^10.1.0","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","@types/react-dom":"^19.2.3","rehype-highlight":"^7.0.2","@hono/node-server":"^2.1.0","@tailwindcss/vite":"^4.3.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.4","@phosphor-icons/react":"^2.1.10","@tanstack/react-query":"^5.101.4","@rolldown/plugin-babel":"^0.2.3","@tailwindcss/typography":"^0.5.20","@tanstack/react-virtual":"^3.14.9","class-variance-authority":"^0.7.1","babel-plugin-react-compiler":"^1.0.0","@fontsource-variable/ibm-plex-sans":"^5.3.0","@fontsource-variable/source-sans-3":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-dash_2.0.3_1786421613664_0.7099123785512282","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@darshanpatel2608/claude-dash","version":"2.1.3","private":false,"description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"homepage":"https://github.com/darshan260802/claude-dash#readme","bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"repository":{"type":"git","url":"git+https://github.com/darshan260802/claude-dash.git"},"license":"MIT","author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"type":"module","main":"index.js","bin":{"claude-dash":"bin/claude-dash.mjs"},"directories":{"test":"test"},"scripts":{"dev":"concurrently -n web,api -c cyan,magenta \"vite\" \"tsx watch server/main.ts --port 4318\"","build":"bun run typecheck && bun run build:web && bun run build:server","build:web":"vite build","build:server":"tsup","typecheck":"tsc -b","lint":"oxlint","start":"node bin/claude-dash.mjs","test":"node --import tsx --test test/*.test.ts","preview":"vite preview","prepublishOnly":"bun run build"},"devDependencies":{"@babel/core":"^7.29.7","@base-ui/react":"^1.7.0","@fontsource-variable/ibm-plex-sans":"^5.3.0","@fontsource-variable/jetbrains-mono":"^5.3.0","@fontsource-variable/source-sans-3":"^5.3.0","@gsap/react":"^2.1.2","@hono/node-server":"^2.1.0","@phosphor-icons/react":"^2.1.10","@rolldown/plugin-babel":"^0.2.3","@tailwindcss/typography":"^0.5.20","@tailwindcss/vite":"^4.3.3","@tanstack/react-query":"^5.101.4","@tanstack/react-virtual":"^3.14.9","@types/babel__core":"^7.20.5","@types/node":"^24.13.3","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.4","babel-plugin-react-compiler":"^1.0.0","chokidar":"^5.0.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","cmdk":"^1.1.1","concurrently":"^10.0.4","gsap":"^3.15.0","hono":"^4.13.1","motion":"^12.23.12","next-themes":"^0.4.6","oxlint":"^1.75.0","react":"^19.2.8","react-dom":"^19.2.8","react-markdown":"^10.1.0","react-router":"^8.3.0","recharts":"3.8.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","shadcn":"^4.16.2","sonner":"^2.0.8","tailwind-merge":"^3.6.0","tailwindcss":"^4.3.3","tsup":"^8.5.1","tsx":"^4.23.12","tw-animate-css":"^1.4.0","typescript":"~6.0.2","untun":"^0.2.2","vite":"^8.2.0"},"engines":{"node":">=20.19.0"},"gitHead":"14cf87b6294a7d596dc87f3b1a39bbe5e7a1796c","_id":"@darshanpatel2608/claude-dash@2.1.3","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-uEGDybPZe4ylYcHDYK4A0HKunnl1/4u4MFmG9q7IP5yu13NrSQgNP0F+lECPB3C9Naykw5T3YYlKb4kYbjaT8g==","shasum":"84e316baaf9b033000d3771aff4b6caee06a017f","tarball":"https://registry.npmjs.org/@darshanpatel2608/claude-dash/-/claude-dash-2.1.3.tgz","fileCount":35,"unpackedSize":3297044,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDnXIjLznXgCA0FIOhhG5GgKxb8yTvUtUGQEzz4dseStwIhAJoYJJHsMvv8TBGSHjQ5rtCNk03PyOWl6/yCAKyJHBVJ"}]},"_npmUser":{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"},"maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-dash_2.1.3_1786820973060_0.03776629920480201"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-09T04:19:32.773Z","modified":"2026-08-15T19:09:33.774Z","1.0.0":"2026-08-09T04:19:33.054Z","1.0.1":"2026-08-09T04:50:21.549Z","1.0.2":"2026-08-09T05:03:00.903Z","1.0.3":"2026-08-09T05:19:34.325Z","2.0.0":"2026-08-10T19:47:02.520Z","2.0.1":"2026-08-10T19:55:10.468Z","2.0.2":"2026-08-10T20:17:02.152Z","2.0.3":"2026-08-11T04:13:33.833Z","2.1.3":"2026-08-15T19:09:33.211Z"},"bugs":{"url":"https://github.com/darshan260802/claude-dash/issues"},"author":{"name":"Darshan Patel","email":"darshanpatel2608ce@gmail.com"},"license":"MIT","homepage":"https://github.com/darshan260802/claude-dash#readme","keywords":["Claude","Claude","Code","Claude","Dashboard","Dashboard","Claude","Live","Claude","Live","Monitor"],"repository":{"type":"git","url":"git+https://github.com/darshan260802/claude-dash.git"},"description":"Local dashboard for Claude Code usage, sessions, tokens and cost — run via `npx claude-dash`","maintainers":[{"name":"darshanpatel2608","email":"darshanpatel2608ce@gmail.com"}],"readme":"# Claude Dash\n\n[![npm version](https://img.shields.io/npm/v/@darshanpatel2608/claude-dash.svg)](https://www.npmjs.com/package/@darshanpatel2608/claude-dash)\n[![license](https://img.shields.io/npm/l/@darshanpatel2608/claude-dash.svg)](https://github.com/darshan260802/claude-dash/blob/master/LICENSE)\n[![node](https://img.shields.io/node/v/@darshanpatel2608/claude-dash.svg)](package.json)\n\nEver wonder how much your [Claude Code](https://claude.com/product/claude-code) sessions are actually costing you, or want to revisit a past chat transcript in full? Claude Dash is a local dashboard that turns Claude Code's own session logs into live cost, token, and usage analytics — plus a full, searchable replay of every chat.\n\nRequires that you already use the Claude Code CLI — Claude Dash reads its local session logs (`~/.claude` by default) and doesn't collect or send any data anywhere.\n\n## Quick start\n\n```sh\nnpx @darshanpatel2608/claude-dash@latest\n```\n\nThat's it — it starts a local server and opens the dashboard in your browser.\n\n![Claude Dash dashboard](https://raw.githubusercontent.com/darshan260802/claude-dash/development/docs/dashboard.png)\n\n## Installation\n\nThe `npx` command above works with no install. If you'd rather have it as a standing command, install it globally and run it as `claude-dash`:\n\n```sh\nnpm i -g @darshanpatel2608/claude-dash@latest\nclaude-dash\n```\n\nEither way, it starts a local server, reads Claude Code's session logs from `~/.claude` (or `$CLAUDE_CONFIG_DIR`), and opens the dashboard in your browser.\n\n## What it shows\n\n- **Dashboard** — total cost, tokens, API calls, cache hit rate, cost over time, model/project/tool breakdowns\n- **Projects & Sessions** — every session, past and currently running, filterable and searchable, with each session's UUID visible so it matches its `~/.claude/.../<uuid>.jsonl` file on disk\n- **Live** — sessions with recent activity, updating in near real time\n- **Session detail** — full chat transcript (user, assistant, thinking, tool calls, MCP, sub-agents, errors), toggle-filterable by message kind, with tool-specific views (Bash stdout/stderr, Edit diffs, Read file contents, sub-agent threads inline)\n- **Agent transcripts** — every sub-agent has its own first-class page (`/sessions/:id/agents/:agentId`), reachable from the session detail sidebar and inline tool-call expander, with a back-link to the parent when the parent is in scope\n- **Search** — full-text search across every transcript\n- **Cost accounting** — exact per-token cost using live LiteLLM pricing, correctly deduped across multi-block turns and forked/resumed sessions\n- **Settings** — see which log directories are indexed, index stats, and manually refresh pricing data\n- **Secure sharing** — share the dashboard (or one specific session or agent) through a Cloudflare quick tunnel behind an 8-character access code — no account, no install on the visitor's side\n\nEverything runs locally. No data leaves your machine unless **you** start a share.\n\n## Sharing\n\nDrop the dashboard onto a teammate's screen without a deploy, an account, or an install on their side. From the **Share** page, click **Start sharing** — a Cloudflare quick tunnel comes up, an 8-character access code is generated, and the visitor gets a single URL plus the code to type in. The local-only path is completely unaffected when sharing is off.\n\n**Two modes:**\n\n- **Whole dashboard** — the default. The visitor lands on the full Dashboard, Projects, Live, and Search views. Settings and the share controls themselves are hidden from the visitor UI.\n- **Specific session or agent** — click the share icon on a session detail header (or on an agent transcript). That single session, *or just that one agent*, becomes the visitor's entire world. Anything else under `/api/*` returns 403 to a scoped visitor, so unshared data never leaks through a filtered list.\n\nIf a whole-dashboard share is already running and you click share on a specific session, a confirm dialog explains the trade-off (replacing global with scoped, same tunnel, same access code) — and the server enforces the same rule with a 409 if anyone bypasses the UI.\n\n**Security, in one paragraph:** the visitor's browser hits the tunnel, sees a gate page, and must type the code (case-insensitive, hyphen-tolerant) before any API route replies. Codes are compared in constant time, the wrong-code path is delayed and locks out after 10 misses from the same IP for 5 minutes, the access cookie is `HttpOnly` + `SameSite=Lax` + `Secure` only over the tunnel, and the host allow-list keeps DNS-rebinding attempts out of the API. Sharing off means the gate object is present but inactive, so local use is exactly the same as before.\n\n## Options\n\n```sh\nclaude-dash [options]\n\n  --port <n>            Port to listen on (default 4317)\n  --host <s>            Host to bind (default 127.0.0.1)\n  --claude-dir <path>   Override ~/.claude location (repeatable)\n  --no-open              Don't open the browser automatically\n  --poll                  Use polling for file watching (WSL/NFS/Docker)\n  --json                  Print an index summary as JSON and exit\n  -h, --help\n  -v, --version\n```\n\n## Requirements\n\nNode.js `>=20.19.0`.\n\n## Development\n\n```sh\nbun install\nbun run dev      # Vite (5173) + API server (4317) with hot reload\nbun run build    # typecheck, build web + server\nbun run test     # run unit tests\n```\n","readmeFilename":"README.md"}