by Arindam200
Local analytics dashboard for Claude Code. No cloud, no telemetry.
# Add to your Claude Code skills
git clone https://github.com/Arindam200/cc-lensGuides for using cli tools skills like cc-lens.
Last scanned: 5/16/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
"severity": "high"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "express-rate-limit: express-rate-limit: IPv4-mapped IPv6 addresses bypass per-client rate limiting on servers with dual-stack network",
"severity": "high"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to path traversal via percent-encoded dot segments",
"severity": "high"
},
{
"type": "npm-audit",
"message": "flatted: flatted vulnerable to unbounded recursion DoS in parse() revive phase",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono Vulnerable to Cookie Attribute Injection via Unsanitized domain and path in setCookie()",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "next: Next.js has a Denial of Service with Server Components",
"severity": "high"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Denial of Service via sequential optional groups",
"severity": "high"
},
{
"type": "npm-audit",
"message": "picomatch: Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
"severity": "high"
},
{
"type": "npm-audit",
"message": "postcss: PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
"severity": "medium"
}
],
"status": "WARNING",
"scannedAt": "2026-05-16T06:23:06.481Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}cc-lens is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Arindam200. Local analytics dashboard for Claude Code. No cloud, no telemetry. It has 556 GitHub stars.
cc-lens returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/Arindam200/cc-lens" and add it to your Claude Code skills directory (see the Installation section above).
cc-lens is primarily written in TypeScript. It is open-source under Arindam200 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh cc-lens against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.

Local analytics dashboard for Claude Code. No cloud, no telemetry, no API key, just your ~/.claude/ data, visualized.
npx cc-lens
The CLI finds a free local port, starts the dashboard, and opens it in your browser.
[!NOTE] cc-lens 0.4.0 is out
Adds Insights, budgets, team adoption, terminal digest, Wrapped, and expanded project docs.
Run directly with npx:
npx cc-lens
On first run, cc-lens prepares a small runtime cache in ~/.cc-lens/. After that, launches are faster.
| OverviewTrack sessions, messages, tokens, cost, storage, trends, models, peak hours, projects, and recent activity. | SessionsSearch sessions, replay JSONL conversations, inspect Markdown replies, tool calls, costs, tokens, and compactions. |
| CostsReview estimated spend, cache savings, project costs, model breakdowns, token usage, and pricing references. | InsightsFind cache, model, compaction, plan-fit, budget, and savings opportunities from local usage patterns. |
| ProjectsBrowse projects by sessions, duration, spend, languages, branches, MCP usage, agents, and top tools. | Project TrendsAnalyze project sessions, spend, language mix, branch activity, model usage, tools, and activity over time. |
| Tools & FeaturesCompare tool rankings, categories, skill (slash-command) usage, MCP servers, feature adoption, errors, versions, and git branch usage. | ActivityView activity calendars, streaks, active days, peak hours, day-of-week patterns, and usage consistency. |
| TasksBrowse Claude Code todos with search, status filters, task metadata, project context, and local file provenance. | WorkspaceInspect workspace state, memory, settings, installed skills, plugins, MCP servers, and local storage usage. |
| WrappedCreate a yearly card with sessions, usage, spend, favorite tools, active projects, and local highlights. | Export & ImportExport portable .cclens.json files with stats, metadata, facets, history, previews, and date filters. |
Import is preview-only right now. It shows which sessions are new or already present, but it does not write merged data back into ~/.claude/, to avoid corrupting live Claude Code files.
By default, cc-lens reads ~/.claude/. To point it at another Claude Code config directory, set CLAUDE_CONFIG_DIR:
# Default profile
npx cc-lens
# Work profile
CLAUDE_CONFIG_DIR=~/.claude-work npx cc-lens
On Windows PowerShell:
$env:CLAUDE_CONFIG_DIR="C:\Users\you\.claude-work"; npx cc-lens
The active config directory is shown in the CLI banner on launch.
npx cc-lens [options]
| Option | Default | Description |
|---|---|---|
--host <host> |
127.0.0.1 |
Address to bind. Loopback only by default. Set 0.0.0.0 to expose the dashboard on your LAN. Also settable with the CC_LENS_HOST env var. |
--port <port> |
3000 |
Port to listen on. Auto-increments if the port is taken. Also settable with the PORT env var. |
--help, -h |
Print usage and exit. | |
--version, -v |
Print the version and exit. |
The dashboard serves your private Claude Code history, so it binds to loopback (127.0.0.1) by default. cc-lens does not read the shell's HOSTNAME variable, so it works the same on WSL, containers, and CI. Override the host only if you understand the exposure.
# Bind to a fixed port
npx cc-lens --port 4000
# Expose on the local network (opt-in)
npx cc-lens --host 0.0.0.0
There are also cc-lens push and cc-lens digest subcommands for team mode; see Team mode.
~/.claude/npm install
npm run dev
Open http://localhost:3000, or the port shown in your terminal.
npm run build
npm start
For the packaged standalone bundle used by the CLI:
npm run build:dist
npm run lint
npm test
cc-lens reads local Claude Code files directly:
~/.claude/projects/<slug>/*.jsonl: session JSONL and replay data~/.claude/stats-cache.json: aggregate stats when available~/.claude/usage-data/session-meta/: session metadata fallback~/.claude/history.jsonl: command history~/.claude/todos/: todo files~/.claude/plans/: saved plan files~/.claude/projects/*/memory/: project memory files~/.claude/settings.json: settings, skills, plugins, and MCP configDashboard data refreshes every 5 seconds while the app is open.
Claude Code Lens runs locally and reads files from your machine. It does not require a login, API key, hosted backend, or telemetry service. Your Claude Code history stays on your computer.
Claude Code stores token counts and model identifiers, not final billing totals. cc-lens estimates cost using the pricing table in lib/pricing.ts. If provider pricing changes, update that file to keep estimates current.
To override or add rates without editing source, create ~/.cc-lens/pricing.json. Entries are merged over the defaults, so you can override a single model or add new ones. Values are in dollars per million tokens:
{
"claude-opus-4-8": { "input": 5.0, "output": 25.0, "cacheWrite": 6.25, "cacheRead": 0.5 }
}