<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: AgentZ</title>
    <description>The latest articles on Forem by AgentZ (@zagentz).</description>
    <link>https://forem.com/zagentz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874253%2F63eb0a08-776b-4f30-836c-b7608177b25a.png</url>
      <title>Forem: AgentZ</title>
      <link>https://forem.com/zagentz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/zagentz"/>
    <language>en</language>
    <item>
      <title>claude-studio: A Visual Orchestration Platform for Claude Code Multi-Agent Workflows</title>
      <dc:creator>AgentZ</dc:creator>
      <pubDate>Fri, 17 Apr 2026 08:57:57 +0000</pubDate>
      <link>https://forem.com/zagentz/claude-studio-a-visual-orchestration-platform-for-claude-code-multi-agent-workflows-5g0p</link>
      <guid>https://forem.com/zagentz/claude-studio-a-visual-orchestration-platform-for-claude-code-multi-agent-workflows-5g0p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw55g0jlaq51e54owg9bm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw55g0jlaq51e54owg9bm.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I've been using Claude Code for over six months. What started as simple single-agent Q&amp;amp;A has evolved into a system where 5+ agents collaborate simultaneously — one handles social media operations, another manages the GitHub community, and others coordinate development across multiple projects.&lt;/p&gt;

&lt;p&gt;The complexity is on a completely different level. And the problem? It's all hand-written config files.&lt;/p&gt;

&lt;p&gt;Claude Code agent definitions live in &lt;code&gt;.claude/agents/name.md&lt;/code&gt;. Skills go in &lt;code&gt;.claude/skills/name.md&lt;/code&gt;. Workflows are &lt;code&gt;.claude/workflows/name.yaml&lt;/code&gt;. Project instructions sit in &lt;code&gt;CLAUDE.md&lt;/code&gt;. These files have dependencies on each other, but there's no way to see the full picture.&lt;/p&gt;

&lt;p&gt;Changing one agent's prompt means opening the agents directory, finding the right file, editing it, then checking that CLAUDE.md references are still correct, and verifying that the workflow edge relationships haven't broken. For any non-trivial team setup, a single debugging session means jumping between five or six files.&lt;/p&gt;

&lt;p&gt;I needed a GUI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is claude-studio?
&lt;/h2&gt;

&lt;p&gt;claude-studio is a visual editor for the &lt;code&gt;~/.claude/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;That sentence captures the entire design philosophy. No new runtime. No invented config format. Nothing beyond what Claude Code already does. It simply turns your existing markdown, yaml, and json config files into something you can drag, click, and preview.&lt;/p&gt;

&lt;p&gt;Every action you take in the GUI — creating an agent, connecting workflow edges, configuring an MCP server — writes standard files into &lt;code&gt;.claude/&lt;/code&gt;. Close claude-studio, open Claude Code, and your agent team runs exactly the same, because it reads the same files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude-studio (design) → ~/.claude/ (files) → Claude Code (runtime)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Core Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. DAG Workflow Editor
&lt;/h3&gt;

&lt;p&gt;This is the heart of claude-studio. Multi-agent collaboration is fundamentally a directed acyclic graph (DAG) — agents are nodes, and the edges between them represent communication patterns.&lt;/p&gt;

&lt;p&gt;claude-studio provides 4 edge types to describe different collaboration modes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Edge Type&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Visual Style&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dispatch&lt;/td&gt;
&lt;td&gt;Task assignment, execution dependency&lt;/td&gt;
&lt;td&gt;Solid gray&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Report&lt;/td&gt;
&lt;td&gt;Feedback, results reporting&lt;/td&gt;
&lt;td&gt;Dashed cyan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sync&lt;/td&gt;
&lt;td&gt;Peer-to-peer collaboration&lt;/td&gt;
&lt;td&gt;Dotted purple&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Roundtrip&lt;/td&gt;
&lt;td&gt;Bidirectional dispatch + report&lt;/td&gt;
&lt;td&gt;Solid teal, double arrow&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These 4 types were distilled from real-world usage. For example, a Commander agent dispatches tasks to an ops agent (dispatch), the ops agent reports results back (report), and two parallel ops agents share information (sync). Most similar tools only offer a single edge type, but in real multi-agent workflows, semantic distinction matters.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Agent and Skill Management
&lt;/h3&gt;

&lt;p&gt;There are two ways to create agents: choose from 9 built-in templates, or generate with AI.&lt;/p&gt;

&lt;p&gt;The built-in templates cover common scenarios — code review, TDD guidance, security checks, documentation updates, and more. After selecting a template, you can edit the prompt in Monaco Editor with live preview.&lt;/p&gt;

&lt;p&gt;Skills work the same way — create from templates or write manually. Created skills can be drag-and-dropped onto agent nodes in the workflow canvas.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AI Workflow Generation
&lt;/h3&gt;

&lt;p&gt;This is my favorite feature. Describe the workflow you want in plain text — something like "Code review pipeline with security check" or "TDD workflow for KMP project" — and claude-studio calls &lt;code&gt;claude -p&lt;/code&gt; to generate a complete DAG, including agent definitions, edge relationships, skill bindings, and checkpoints.&lt;/p&gt;

&lt;p&gt;The generated result appears on the canvas for further refinement. Don't like something? Change it. Save, and it takes effect immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Visual MCP and Settings Configuration
&lt;/h3&gt;

&lt;p&gt;Claude Code's MCP server config, hooks config, and permissions all live in &lt;code&gt;settings.json&lt;/code&gt;. Hand-writing JSON is error-prone. claude-studio provides a form-based config UI that writes directly to settings.json.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Plugin Export
&lt;/h3&gt;

&lt;p&gt;The entire agent team you build in claude-studio — agents, skills, workflows, settings — can be exported as a standard Claude Code plugin package with one click. Others install the plugin and get your complete team configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. CLAUDE.md Auto-Sync
&lt;/h3&gt;

&lt;p&gt;When you save a workflow, claude-studio automatically syncs the team structure, agent roles, and workflow definitions into CLAUDE.md. Design your team visually, and Claude Code picks it up on next startup — no extra configuration needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation
&lt;/h2&gt;

&lt;p&gt;The tech stack is fairly standard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Framework&lt;/strong&gt;: Next.js (App Router)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flow Engine&lt;/strong&gt;: React Flow v12 — custom nodes, edges, and interactions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Editor&lt;/strong&gt;: Monaco Editor — for editing agent prompts and skill definitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling&lt;/strong&gt;: Tailwind CSS + Lucide Icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language&lt;/strong&gt;: TypeScript full-stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture has four layers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────┐
│  GUI (React + React Flow v12)   │  ← Visual layer
├─────────────────────────────────┤
│  Next.js API Routes             │  ← Service layer
├─────────────────────────────────┤
│  ~/.claude/ (source of truth)   │  ← Data layer
├─────────────────────────────────┤
│  Claude Code (runtime)          │  ← Runtime
└─────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key design decision is "the data layer is the file system." No database, no cloud storage — &lt;code&gt;~/.claude/&lt;/code&gt; is the single source of truth. The benefits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fully compatible with Claude Code — same files&lt;/li&gt;
&lt;li&gt;Version control comes free with git&lt;/li&gt;
&lt;li&gt;No accounts or logins required&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;One command, no install required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx claude-code-studio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Custom port:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx claude-code-studio &lt;span class="nt"&gt;--port&lt;/span&gt; 3200
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Development mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/androidZzT/claude-studio.git
&lt;span class="nb"&gt;cd &lt;/span&gt;claude-studio
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comparison with Similar Tools
&lt;/h2&gt;

&lt;p&gt;There aren't many tools doing Claude Code visualization. The ones I've evaluated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CC Workflow Studio&lt;/strong&gt; (VS Code extension) — workflow visualization only, no config or agent management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Flow&lt;/strong&gt; — runtime visualization, read-only, no editing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;claude-code-manager&lt;/strong&gt; — TUI tool, no GUI, no DAG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;claude-studio's positioning is a GUI that simultaneously covers config management + DAG orchestration + team collaboration modeling. The semantic distinction between 4 edge types is a unique design that proves useful in real multi-agent workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The product is still in the polishing phase. Core capabilities are working, but there's plenty of room for improvement in the details.&lt;/p&gt;

&lt;p&gt;Near-term focus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better real-time status display during workflow execution&lt;/li&gt;
&lt;li&gt;Improved AI generation accuracy&lt;/li&gt;
&lt;li&gt;More agent templates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback, issues, and PRs are all welcome.&lt;/p&gt;

&lt;p&gt;MIT licensed.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>claude</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How I Track Claude Code Token Costs</title>
      <dc:creator>AgentZ</dc:creator>
      <pubDate>Mon, 13 Apr 2026 13:04:07 +0000</pubDate>
      <link>https://forem.com/zagentz/how-i-track-claude-code-token-costs-1949</link>
      <guid>https://forem.com/zagentz/how-i-track-claude-code-token-costs-1949</guid>
      <description>&lt;p&gt;Last month I got a surprise. My credit card statement showed I'd spent significantly more on AI coding tools than I thought. The problem wasn't that I was using too much — the problem was I had no idea how much I was using. I had Claude Code open in one terminal, Gemini CLI in another, and Cursor handling a side project. Three separate tools, three separate billing pages, zero unified view.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with AI Coding Cost Visibility
&lt;/h2&gt;

&lt;p&gt;Every major AI coding tool stores session data locally. Claude Code writes JSONL files to &lt;code&gt;~/.claude/projects/&lt;/code&gt;. Gemini CLI logs to &lt;code&gt;~/.gemini/tmp/&lt;/code&gt;. Codex uses &lt;code&gt;~/.codex/sessions/&lt;/code&gt;. Cursor keeps everything in a SQLite database.&lt;/p&gt;

&lt;p&gt;None of them talk to each other. And if you use more than one — which most developers do these days — you're left doing mental arithmetic across four different dashboards.&lt;/p&gt;

&lt;p&gt;Existing monitoring tools weren't much help either. The most popular ones only support Claude Code. That's fine if you're a Claude-only shop, but not if you're like me and reach for whatever tool fits the task.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: cc-statistics
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt; is an open-source tool I built to solve exactly this. It reads local session files from all four platforms, aggregates everything into a unified view, and surfaces it through three interfaces: a CLI, a web dashboard, and a native macOS menu-bar app.&lt;/p&gt;

&lt;p&gt;The install is a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zero dependencies. Pure Python standard library. The macOS app ships as a pre-built binary — no Xcode, no local compilation.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼️ Screenshots
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Dark Mode&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Light Mode&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknsj9z9cexd4zl1xew54.png" alt="macOS App Dark" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam6xqstpqejy3xvxbqs0.png" alt="macOS App Light" width="800" height="801"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;📊 Usage Quota Predictor&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔴 Max Usage Reached&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoevylxlrlsar3v4ff61.png" alt="Usage Quota Predictor" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1d5t1x4v4anv6l0k6a4.png" alt="Max Usage" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔍 Session List&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔧 Tool Call Analytics&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7hzsna7n96cdkkwl684.png" alt="Session List" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjd2h0bcyfg7l9uns7slg.png" alt="Tool Call Analytics" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;⚡ Skill / MCP Analytics&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;💬 Share Session Messages&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv3a7lrrsc2tya4g69ru.png" alt="Skill Analytics" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw6rm59f2wunelryggcc.png" alt="Share Messages" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🌐 4-Platform Unified View&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;⚙️ Settings&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04uijxnatw0fvmvovco4.png" alt="Multi-Platform" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54b7xwhxpt445o29oqb7.png" alt="Settings" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔔 Notifications&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🌐 Web Dashboard&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfs3x0b1uinm5ftkavwz.png" alt="Notifications" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rc47vycitzcliy3x6j8.png" alt="Web Dashboard" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Multi-Platform Support
&lt;/h2&gt;

&lt;p&gt;The core differentiator is platform breadth. Here's what cc-statistics reads and where:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Local data path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/&amp;lt;session&amp;gt;.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.gemini/tmp/&amp;lt;project&amp;gt;/chats/&amp;lt;session&amp;gt;.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.codex/sessions/*.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Application Support/Cursor/User/globalStorage/state.vscdb&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The depth of data varies by platform — Claude Code gives you the most (input tokens, output tokens, cache read/write, tool calls, model name), while Cursor currently provides session counts and code-change stats. But even partial data is better than no data, and the picture fills in as you use each tool.&lt;/p&gt;

&lt;p&gt;Why does a unified view matter? Because your real cost is the sum. If Claude Code is your heavy lifter but Gemini CLI is where you do exploratory research and Cursor handles autocomplete all day, only looking at one bill means you're flying blind on the other two. cc-statistics adds them up.&lt;/p&gt;




&lt;h2&gt;
  
  
  Native macOS Menu Bar App
&lt;/h2&gt;

&lt;p&gt;This is the feature I use most. Run &lt;code&gt;cc-stats-app&lt;/code&gt; once, and it lives in your menu bar permanently.&lt;/p&gt;

&lt;p&gt;The status bar shows a Claude logo alongside your current day's token count and estimated cost in real time. When you're approaching your self-set daily limit, it turns red. No checking dashboards, no mental math — it's just there, like a fuel gauge.&lt;/p&gt;

&lt;p&gt;Right-clicking the status bar item lets you switch between display modes: Token+Cost, Token only, Cost only, or Session count. Press &lt;code&gt;Cmd+Shift+C&lt;/code&gt; from anywhere to open the full dashboard panel.&lt;/p&gt;

&lt;p&gt;The dashboard itself is native SwiftUI — it doesn't feel like an Electron app pretending to be native. You get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A source switcher: view stats per platform or aggregate all four&lt;/li&gt;
&lt;li&gt;Dark/light/system theme&lt;/li&gt;
&lt;li&gt;Export to JSON or CSV (auto-saves to Desktop and opens immediately)&lt;/li&gt;
&lt;li&gt;Process manager showing memory usage of all running Claude processes&lt;/li&gt;
&lt;li&gt;Settings for launch at login, language, and update checks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Clawd Pixel-Art Mascot
&lt;/h3&gt;

&lt;p&gt;One of the more delightful features is Clawd — a pixel-art mascot that lives alongside your token counter in the status bar. It's not just decorative: Clawd reacts to what Claude Code is actually doing. When an agent task is running, the animation changes. When Claude is idle, it switches to a different state. When a task completes, there's a brief happy animation.&lt;/p&gt;

&lt;p&gt;The sprites come from the &lt;a href="https://github.com/rullerzhou-afk/clawd-on-desk" rel="noopener noreferrer"&gt;clawd-on-desk&lt;/a&gt; project, which hooks into Claude Code's process state to drive animations. Seeing a tiny pixel character respond to your AI actually working is a small thing, but it makes the experience feel less like staring at a text terminal.&lt;/p&gt;




&lt;h2&gt;
  
  
  CLI Power Features
&lt;/h2&gt;

&lt;p&gt;The CLI is where cc-statistics earns its keep for power users. A few commands I use every day:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# What did I spend in the last 7 days, across all platforms?&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d

&lt;span class="c"&gt;# List every project cc-statistics has found (all platforms)&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--list&lt;/span&gt;

&lt;span class="c"&gt;# Drill into the last 3 sessions for a specific project&lt;/span&gt;
cc-stats my-project &lt;span class="nt"&gt;--last&lt;/span&gt; 3

&lt;span class="c"&gt;# Compare token spend across projects in the last week&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--compare&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 1w

&lt;span class="c"&gt;# Open the web dashboard in a browser&lt;/span&gt;
cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--compare&lt;/code&gt; flag is particularly useful at the end of a sprint. It shows a side-by-side breakdown of token consumption per project, which quickly reveals where the expensive work happened.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session Search and Resume
&lt;/h3&gt;

&lt;p&gt;This one came out of a real frustration: I'd have a productive Claude Code session, close the terminal, and then realize two days later that I needed to pick up exactly where I left off — but I couldn't remember which session it was.&lt;/p&gt;

&lt;p&gt;cc-statistics indexes session content and lets you search by keyword:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--search&lt;/span&gt; &lt;span class="s2"&gt;"database migration"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It returns matching sessions with timestamps and a ready-to-run resume command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--resume&lt;/span&gt; &amp;lt;session-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One copy-paste and you're back in context. This works across all historical sessions, not just recent ones.&lt;/p&gt;




&lt;h2&gt;
  
  
  Beyond Cost Tracking
&lt;/h2&gt;

&lt;p&gt;Token counts and dollar amounts are the obvious metrics. But cc-statistics surfaces several others that I've found surprisingly useful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool Call Analysis
&lt;/h3&gt;

&lt;p&gt;For Claude Code users, every tool call is logged — file reads, shell commands, web searches, and all your MCP tools. cc-statistics aggregates these and shows you a Top 10 breakdown by tool name, with Skill-type and MCP tools expanded to their specific names rather than grouped together.&lt;/p&gt;

&lt;p&gt;This turns out to be a useful debugging signal. If &lt;code&gt;mcp__filesystem__read_file&lt;/code&gt; is dominating your tool calls, maybe your agent is doing too many redundant reads. If a specific MCP tool is called 200 times in a session, you have a concrete number to reason about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Change Statistics
&lt;/h3&gt;

&lt;p&gt;Using &lt;code&gt;git log --numstat&lt;/code&gt; on your project directories, cc-statistics tracks lines added and deleted by language per session. You get a breakdown like: "This week, 3,400 lines of TypeScript and 800 lines of Python were written in AI-assisted sessions."&lt;/p&gt;

&lt;p&gt;This is useful for understanding where AI coding is actually generating output, not just consuming tokens. A session with high token usage but zero code changes probably means you spent the time in discussion or planning — which is fine, but worth knowing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Time vs. User Time
&lt;/h3&gt;

&lt;p&gt;cc-statistics measures how long Claude is "thinking" versus how long it spends waiting for you to respond. This ratio tells you something about your workflow efficiency. A high AI time percentage in short sessions usually means you're prompt-and-wait; a more balanced ratio might mean you're doing more interactive back-and-forth.&lt;/p&gt;

&lt;p&gt;I've found this metric helpful for spotting sessions where I should have batched more work into a single prompt rather than going back and forth ten times.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reports and Notifications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Automatic Weekly and Monthly Reports
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; week
cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; month
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These generate Markdown files summarizing your usage across all platforms for the period: total tokens, cost by model, most active projects, top tool calls, and code changes by language. Useful for personal accountability, or for justifying your AI tooling budget to a manager.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webhook Push
&lt;/h3&gt;

&lt;p&gt;If you're on a team, you can push reports to a channel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--notify&lt;/span&gt; https://hooks.slack.com/services/your-webhook-url
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Slack, Feishu, and DingTalk webhooks all work. I have a weekly cron job that pushes a summary to a personal Slack channel so I have a permanent record. You could use this for team-wide visibility into AI tooling costs, or just for your own history.&lt;/p&gt;




&lt;h2&gt;
  
  
  Usage Alerts
&lt;/h2&gt;

&lt;p&gt;You can set daily and weekly spending limits, and cc-statistics will fire a macOS system notification when you're close to or over the threshold. This lives in the app's Settings panel.&lt;/p&gt;

&lt;p&gt;The notification goes through the standard macOS notification system, so it respects your Focus modes and doesn't require the app to be in the foreground. Combined with the status bar turning red, it's hard to miss.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Dashboard
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens a browser-based dark-themed dashboard — useful on non-Mac platforms or when you want a larger view than the menu bar panel provides. It shows the same data as the native app: sessions, tokens by model, daily trends, tool call breakdowns.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started in 3 Steps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Install&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# uv (fastest)&lt;/span&gt;
uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or pipx&lt;/span&gt;
pipx &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or Homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;androidZzT/tap/cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Run your first report&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This scans all detected platforms and prints the last 7 days of activity. If you only use Claude Code, it'll show Claude Code. If you have Gemini CLI sessions too, those appear automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Launch the menu bar app (macOS)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable "Launch at Login" in Settings once, and you'll have a persistent cost gauge from then on.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;A few things on the roadmap that I'm working toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rate limit progress bar&lt;/strong&gt; — visual indicator of how close you are to Claude's session limits, similar to what claude-usage does for Pro/Max subscribers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hourly activity distribution&lt;/strong&gt; — see which hours of the day you use AI coding tools most, and whether those overlap with peak throttling windows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget forecasting&lt;/strong&gt; — project end-of-month spend based on current usage velocity&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;https://github.com/androidZzT/cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install: &lt;code&gt;uv tool install cc-statistics&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PyPI: &lt;a href="https://pypi.org/project/cc-statistics/" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're using multiple AI coding tools and want a single place to see what they're actually costing you, give it a try. And if something doesn't work or you want a platform added, open an issue — the project is actively maintained.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>tooling</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I Track AI Coding Costs Across 4 Platforms with One Tool</title>
      <dc:creator>AgentZ</dc:creator>
      <pubDate>Mon, 13 Apr 2026 13:00:50 +0000</pubDate>
      <link>https://forem.com/zagentz/how-i-track-ai-coding-costs-across-4-platforms-with-one-tool-1bf0</link>
      <guid>https://forem.com/zagentz/how-i-track-ai-coding-costs-across-4-platforms-with-one-tool-1bf0</guid>
      <description>&lt;p&gt;Last month I got a surprise. My credit card statement showed I'd spent significantly more on AI coding tools than I thought. The problem wasn't that I was using too much — the problem was I had no idea how much I was using. I had Claude Code open in one terminal, Gemini CLI in another, and Cursor handling a side project. Three separate tools, three separate billing pages, zero unified view.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with AI Coding Cost Visibility
&lt;/h2&gt;

&lt;p&gt;Every major AI coding tool stores session data locally. Claude Code writes JSONL files to &lt;code&gt;~/.claude/projects/&lt;/code&gt;. Gemini CLI logs to &lt;code&gt;~/.gemini/tmp/&lt;/code&gt;. Codex uses &lt;code&gt;~/.codex/sessions/&lt;/code&gt;. Cursor keeps everything in a SQLite database.&lt;/p&gt;

&lt;p&gt;None of them talk to each other. And if you use more than one — which most developers do these days — you're left doing mental arithmetic across four different dashboards.&lt;/p&gt;

&lt;p&gt;Existing monitoring tools weren't much help either. The most popular ones only support Claude Code. That's fine if you're a Claude-only shop, but not if you're like me and reach for whatever tool fits the task.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: cc-statistics
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt; is an open-source tool I built to solve exactly this. It reads local session files from all four platforms, aggregates everything into a unified view, and surfaces it through three interfaces: a CLI, a web dashboard, and a native macOS menu-bar app.&lt;/p&gt;

&lt;p&gt;The install is a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zero dependencies. Pure Python standard library. The macOS app ships as a pre-built binary — no Xcode, no local compilation.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼️ Screenshots
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Dark Mode&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Light Mode&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknsj9z9cexd4zl1xew54.png" alt="macOS App Dark" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam6xqstpqejy3xvxbqs0.png" alt="macOS App Light" width="800" height="801"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;📊 Usage Quota Predictor&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔴 Max Usage Reached&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoevylxlrlsar3v4ff61.png" alt="Usage Quota Predictor" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1d5t1x4v4anv6l0k6a4.png" alt="Max Usage" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔍 Session List&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔧 Tool Call Analytics&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7hzsna7n96cdkkwl684.png" alt="Session List" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjd2h0bcyfg7l9uns7slg.png" alt="Tool Call Analytics" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;⚡ Skill / MCP Analytics&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;💬 Share Session Messages&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv3a7lrrsc2tya4g69ru.png" alt="Skill Analytics" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw6rm59f2wunelryggcc.png" alt="Share Messages" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🌐 4-Platform Unified View&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;⚙️ Settings&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04uijxnatw0fvmvovco4.png" alt="Multi-Platform" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54b7xwhxpt445o29oqb7.png" alt="Settings" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔔 Notifications&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🌐 Web Dashboard&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfs3x0b1uinm5ftkavwz.png" alt="Notifications" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rc47vycitzcliy3x6j8.png" alt="Web Dashboard" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Multi-Platform Support
&lt;/h2&gt;

&lt;p&gt;The core differentiator is platform breadth. Here's what cc-statistics reads and where:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Local data path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/&amp;lt;session&amp;gt;.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.gemini/tmp/&amp;lt;project&amp;gt;/chats/&amp;lt;session&amp;gt;.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.codex/sessions/*.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Application Support/Cursor/User/globalStorage/state.vscdb&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The depth of data varies by platform — Claude Code gives you the most (input tokens, output tokens, cache read/write, tool calls, model name), while Cursor currently provides session counts and code-change stats. But even partial data is better than no data, and the picture fills in as you use each tool.&lt;/p&gt;

&lt;p&gt;Why does a unified view matter? Because your real cost is the sum. If Claude Code is your heavy lifter but Gemini CLI is where you do exploratory research and Cursor handles autocomplete all day, only looking at one bill means you're flying blind on the other two. cc-statistics adds them up.&lt;/p&gt;




&lt;h2&gt;
  
  
  Native macOS Menu Bar App
&lt;/h2&gt;

&lt;p&gt;This is the feature I use most. Run &lt;code&gt;cc-stats-app&lt;/code&gt; once, and it lives in your menu bar permanently.&lt;/p&gt;

&lt;p&gt;The status bar shows a Claude logo alongside your current day's token count and estimated cost in real time. When you're approaching your self-set daily limit, it turns red. No checking dashboards, no mental math — it's just there, like a fuel gauge.&lt;/p&gt;

&lt;p&gt;Right-clicking the status bar item lets you switch between display modes: Token+Cost, Token only, Cost only, or Session count. Press &lt;code&gt;Cmd+Shift+C&lt;/code&gt; from anywhere to open the full dashboard panel.&lt;/p&gt;

&lt;p&gt;The dashboard itself is native SwiftUI — it doesn't feel like an Electron app pretending to be native. You get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A source switcher: view stats per platform or aggregate all four&lt;/li&gt;
&lt;li&gt;Dark/light/system theme&lt;/li&gt;
&lt;li&gt;Export to JSON or CSV (auto-saves to Desktop and opens immediately)&lt;/li&gt;
&lt;li&gt;Process manager showing memory usage of all running Claude processes&lt;/li&gt;
&lt;li&gt;Settings for launch at login, language, and update checks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Clawd Pixel-Art Mascot
&lt;/h3&gt;

&lt;p&gt;One of the more delightful features is Clawd — a pixel-art mascot that lives alongside your token counter in the status bar. It's not just decorative: Clawd reacts to what Claude Code is actually doing. When an agent task is running, the animation changes. When Claude is idle, it switches to a different state. When a task completes, there's a brief happy animation.&lt;/p&gt;

&lt;p&gt;The sprites come from the &lt;a href="https://github.com/rullerzhou-afk/clawd-on-desk" rel="noopener noreferrer"&gt;clawd-on-desk&lt;/a&gt; project, which hooks into Claude Code's process state to drive animations. Seeing a tiny pixel character respond to your AI actually working is a small thing, but it makes the experience feel less like staring at a text terminal.&lt;/p&gt;




&lt;h2&gt;
  
  
  CLI Power Features
&lt;/h2&gt;

&lt;p&gt;The CLI is where cc-statistics earns its keep for power users. A few commands I use every day:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# What did I spend in the last 7 days, across all platforms?&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d

&lt;span class="c"&gt;# List every project cc-statistics has found (all platforms)&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--list&lt;/span&gt;

&lt;span class="c"&gt;# Drill into the last 3 sessions for a specific project&lt;/span&gt;
cc-stats my-project &lt;span class="nt"&gt;--last&lt;/span&gt; 3

&lt;span class="c"&gt;# Compare token spend across projects in the last week&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--compare&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 1w

&lt;span class="c"&gt;# Open the web dashboard in a browser&lt;/span&gt;
cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--compare&lt;/code&gt; flag is particularly useful at the end of a sprint. It shows a side-by-side breakdown of token consumption per project, which quickly reveals where the expensive work happened.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session Search and Resume
&lt;/h3&gt;

&lt;p&gt;This one came out of a real frustration: I'd have a productive Claude Code session, close the terminal, and then realize two days later that I needed to pick up exactly where I left off — but I couldn't remember which session it was.&lt;/p&gt;

&lt;p&gt;cc-statistics indexes session content and lets you search by keyword:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--search&lt;/span&gt; &lt;span class="s2"&gt;"database migration"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It returns matching sessions with timestamps and a ready-to-run resume command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--resume&lt;/span&gt; &amp;lt;session-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One copy-paste and you're back in context. This works across all historical sessions, not just recent ones.&lt;/p&gt;




&lt;h2&gt;
  
  
  Beyond Cost Tracking
&lt;/h2&gt;

&lt;p&gt;Token counts and dollar amounts are the obvious metrics. But cc-statistics surfaces several others that I've found surprisingly useful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool Call Analysis
&lt;/h3&gt;

&lt;p&gt;For Claude Code users, every tool call is logged — file reads, shell commands, web searches, and all your MCP tools. cc-statistics aggregates these and shows you a Top 10 breakdown by tool name, with Skill-type and MCP tools expanded to their specific names rather than grouped together.&lt;/p&gt;

&lt;p&gt;This turns out to be a useful debugging signal. If &lt;code&gt;mcp__filesystem__read_file&lt;/code&gt; is dominating your tool calls, maybe your agent is doing too many redundant reads. If a specific MCP tool is called 200 times in a session, you have a concrete number to reason about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Change Statistics
&lt;/h3&gt;

&lt;p&gt;Using &lt;code&gt;git log --numstat&lt;/code&gt; on your project directories, cc-statistics tracks lines added and deleted by language per session. You get a breakdown like: "This week, 3,400 lines of TypeScript and 800 lines of Python were written in AI-assisted sessions."&lt;/p&gt;

&lt;p&gt;This is useful for understanding where AI coding is actually generating output, not just consuming tokens. A session with high token usage but zero code changes probably means you spent the time in discussion or planning — which is fine, but worth knowing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Time vs. User Time
&lt;/h3&gt;

&lt;p&gt;cc-statistics measures how long Claude is "thinking" versus how long it spends waiting for you to respond. This ratio tells you something about your workflow efficiency. A high AI time percentage in short sessions usually means you're prompt-and-wait; a more balanced ratio might mean you're doing more interactive back-and-forth.&lt;/p&gt;

&lt;p&gt;I've found this metric helpful for spotting sessions where I should have batched more work into a single prompt rather than going back and forth ten times.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reports and Notifications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Automatic Weekly and Monthly Reports
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; week
cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; month
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These generate Markdown files summarizing your usage across all platforms for the period: total tokens, cost by model, most active projects, top tool calls, and code changes by language. Useful for personal accountability, or for justifying your AI tooling budget to a manager.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webhook Push
&lt;/h3&gt;

&lt;p&gt;If you're on a team, you can push reports to a channel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--notify&lt;/span&gt; https://hooks.slack.com/services/your-webhook-url
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Slack, Feishu, and DingTalk webhooks all work. I have a weekly cron job that pushes a summary to a personal Slack channel so I have a permanent record. You could use this for team-wide visibility into AI tooling costs, or just for your own history.&lt;/p&gt;




&lt;h2&gt;
  
  
  Usage Alerts
&lt;/h2&gt;

&lt;p&gt;You can set daily and weekly spending limits, and cc-statistics will fire a macOS system notification when you're close to or over the threshold. This lives in the app's Settings panel.&lt;/p&gt;

&lt;p&gt;The notification goes through the standard macOS notification system, so it respects your Focus modes and doesn't require the app to be in the foreground. Combined with the status bar turning red, it's hard to miss.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Dashboard
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens a browser-based dark-themed dashboard — useful on non-Mac platforms or when you want a larger view than the menu bar panel provides. It shows the same data as the native app: sessions, tokens by model, daily trends, tool call breakdowns.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started in 3 Steps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Install&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# uv (fastest)&lt;/span&gt;
uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or pipx&lt;/span&gt;
pipx &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or Homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;androidZzT/tap/cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Run your first report&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This scans all detected platforms and prints the last 7 days of activity. If you only use Claude Code, it'll show Claude Code. If you have Gemini CLI sessions too, those appear automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Launch the menu bar app (macOS)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable "Launch at Login" in Settings once, and you'll have a persistent cost gauge from then on.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;A few things on the roadmap that I'm working toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rate limit progress bar&lt;/strong&gt; — visual indicator of how close you are to Claude's session limits, similar to what claude-usage does for Pro/Max subscribers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hourly activity distribution&lt;/strong&gt; — see which hours of the day you use AI coding tools most, and whether those overlap with peak throttling windows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget forecasting&lt;/strong&gt; — project end-of-month spend based on current usage velocity&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;https://github.com/androidZzT/cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install: &lt;code&gt;uv tool install cc-statistics&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PyPI: &lt;a href="https://pypi.org/project/cc-statistics/" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're using multiple AI coding tools and want a single place to see what they're actually costing you, give it a try. And if something doesn't work or you want a platform added, open an issue — the project is actively maintained.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>claude</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How I Track AI Coding Costs Across 4 Platforms with One Tool</title>
      <dc:creator>AgentZ</dc:creator>
      <pubDate>Sun, 12 Apr 2026 08:51:54 +0000</pubDate>
      <link>https://forem.com/zagentz/how-i-track-ai-coding-costs-across-4-platforms-with-one-tool-jmn</link>
      <guid>https://forem.com/zagentz/how-i-track-ai-coding-costs-across-4-platforms-with-one-tool-jmn</guid>
      <description>&lt;p&gt;Last month I got a surprise. My credit card statement showed I'd spent significantly more on AI coding tools than I thought. The problem wasn't that I was using too much — the problem was I had no idea how much I was using. I had Claude Code open in one terminal, Gemini CLI in another, and Cursor handling a side project. Three separate tools, three separate billing pages, zero unified view.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with AI Coding Cost Visibility
&lt;/h2&gt;

&lt;p&gt;Every major AI coding tool stores session data locally. Claude Code writes JSONL files to &lt;code&gt;~/.claude/projects/&lt;/code&gt;. Gemini CLI logs to &lt;code&gt;~/.gemini/tmp/&lt;/code&gt;. Codex uses &lt;code&gt;~/.codex/sessions/&lt;/code&gt;. Cursor keeps everything in a SQLite database.&lt;/p&gt;

&lt;p&gt;None of them talk to each other. And if you use more than one — which most developers do these days — you're left doing mental arithmetic across four different dashboards.&lt;/p&gt;

&lt;p&gt;Existing monitoring tools weren't much help either. The most popular ones only support Claude Code. That's fine if you're a Claude-only shop, but not if you're like me and reach for whatever tool fits the task.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: cc-statistics
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt; is an open-source tool I built to solve exactly this. It reads local session files from all four platforms, aggregates everything into a unified view, and surfaces it through three interfaces: a CLI, a web dashboard, and a native macOS menu-bar app.&lt;/p&gt;

&lt;p&gt;The install is a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zero dependencies. Pure Python standard library. The macOS app ships as a pre-built binary — no Xcode, no local compilation.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼️ Screenshots
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Dark Mode&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🖥️ macOS App — Light Mode&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknsj9z9cexd4zl1xew54.png" alt="macOS App Dark" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fam6xqstpqejy3xvxbqs0.png" alt="macOS App Light" width="800" height="801"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;📊 Usage Quota Predictor&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔴 Max Usage Reached&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoevylxlrlsar3v4ff61.png" alt="Usage Quota Predictor" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1d5t1x4v4anv6l0k6a4.png" alt="Max Usage" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔍 Session List&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🔧 Tool Call Analytics&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7hzsna7n96cdkkwl684.png" alt="Session List" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjd2h0bcyfg7l9uns7slg.png" alt="Tool Call Analytics" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;⚡ Skill / MCP Analytics&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;💬 Share Session Messages&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv3a7lrrsc2tya4g69ru.png" alt="Skill Analytics" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw6rm59f2wunelryggcc.png" alt="Share Messages" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🌐 4-Platform Unified View&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;⚙️ Settings&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04uijxnatw0fvmvovco4.png" alt="Multi-Platform" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54b7xwhxpt445o29oqb7.png" alt="Settings" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;strong&gt;🔔 Notifications&lt;/strong&gt;&lt;/td&gt;
    &lt;td&gt;&lt;strong&gt;🌐 Web Dashboard&lt;/strong&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfs3x0b1uinm5ftkavwz.png" alt="Notifications" width="800" height="800"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rc47vycitzcliy3x6j8.png" alt="Web Dashboard" width="800" height="800"&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Multi-Platform Support
&lt;/h2&gt;

&lt;p&gt;The core differentiator is platform breadth. Here's what cc-statistics reads and where:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Local data path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/&amp;lt;session&amp;gt;.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.gemini/tmp/&amp;lt;project&amp;gt;/chats/&amp;lt;session&amp;gt;.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex CLI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.codex/sessions/*.jsonl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Application Support/Cursor/User/globalStorage/state.vscdb&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The depth of data varies by platform — Claude Code gives you the most (input tokens, output tokens, cache read/write, tool calls, model name), while Cursor currently provides session counts and code-change stats. But even partial data is better than no data, and the picture fills in as you use each tool.&lt;/p&gt;

&lt;p&gt;Why does a unified view matter? Because your real cost is the sum. If Claude Code is your heavy lifter but Gemini CLI is where you do exploratory research and Cursor handles autocomplete all day, only looking at one bill means you're flying blind on the other two. cc-statistics adds them up.&lt;/p&gt;




&lt;h2&gt;
  
  
  Native macOS Menu Bar App
&lt;/h2&gt;

&lt;p&gt;This is the feature I use most. Run &lt;code&gt;cc-stats-app&lt;/code&gt; once, and it lives in your menu bar permanently.&lt;/p&gt;

&lt;p&gt;The status bar shows a Claude logo alongside your current day's token count and estimated cost in real time. When you're approaching your self-set daily limit, it turns red. No checking dashboards, no mental math — it's just there, like a fuel gauge.&lt;/p&gt;

&lt;p&gt;Right-clicking the status bar item lets you switch between display modes: Token+Cost, Token only, Cost only, or Session count. Press &lt;code&gt;Cmd+Shift+C&lt;/code&gt; from anywhere to open the full dashboard panel.&lt;/p&gt;

&lt;p&gt;The dashboard itself is native SwiftUI — it doesn't feel like an Electron app pretending to be native. You get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A source switcher: view stats per platform or aggregate all four&lt;/li&gt;
&lt;li&gt;Dark/light/system theme&lt;/li&gt;
&lt;li&gt;Export to JSON or CSV (auto-saves to Desktop and opens immediately)&lt;/li&gt;
&lt;li&gt;Process manager showing memory usage of all running Claude processes&lt;/li&gt;
&lt;li&gt;Settings for launch at login, language, and update checks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Clawd Pixel-Art Mascot
&lt;/h3&gt;

&lt;p&gt;One of the more delightful features is Clawd — a pixel-art mascot that lives alongside your token counter in the status bar. It's not just decorative: Clawd reacts to what Claude Code is actually doing. When an agent task is running, the animation changes. When Claude is idle, it switches to a different state. When a task completes, there's a brief happy animation.&lt;/p&gt;

&lt;p&gt;The sprites come from the &lt;a href="https://github.com/rullerzhou-afk/clawd-on-desk" rel="noopener noreferrer"&gt;clawd-on-desk&lt;/a&gt; project, which hooks into Claude Code's process state to drive animations. Seeing a tiny pixel character respond to your AI actually working is a small thing, but it makes the experience feel less like staring at a text terminal.&lt;/p&gt;




&lt;h2&gt;
  
  
  CLI Power Features
&lt;/h2&gt;

&lt;p&gt;The CLI is where cc-statistics earns its keep for power users. A few commands I use every day:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# What did I spend in the last 7 days, across all platforms?&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d

&lt;span class="c"&gt;# List every project cc-statistics has found (all platforms)&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--list&lt;/span&gt;

&lt;span class="c"&gt;# Drill into the last 3 sessions for a specific project&lt;/span&gt;
cc-stats my-project &lt;span class="nt"&gt;--last&lt;/span&gt; 3

&lt;span class="c"&gt;# Compare token spend across projects in the last week&lt;/span&gt;
cc-stats &lt;span class="nt"&gt;--compare&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 1w

&lt;span class="c"&gt;# Open the web dashboard in a browser&lt;/span&gt;
cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--compare&lt;/code&gt; flag is particularly useful at the end of a sprint. It shows a side-by-side breakdown of token consumption per project, which quickly reveals where the expensive work happened.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session Search and Resume
&lt;/h3&gt;

&lt;p&gt;This one came out of a real frustration: I'd have a productive Claude Code session, close the terminal, and then realize two days later that I needed to pick up exactly where I left off — but I couldn't remember which session it was.&lt;/p&gt;

&lt;p&gt;cc-statistics indexes session content and lets you search by keyword:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--search&lt;/span&gt; &lt;span class="s2"&gt;"database migration"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It returns matching sessions with timestamps and a ready-to-run resume command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--resume&lt;/span&gt; &amp;lt;session-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One copy-paste and you're back in context. This works across all historical sessions, not just recent ones.&lt;/p&gt;




&lt;h2&gt;
  
  
  Beyond Cost Tracking
&lt;/h2&gt;

&lt;p&gt;Token counts and dollar amounts are the obvious metrics. But cc-statistics surfaces several others that I've found surprisingly useful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool Call Analysis
&lt;/h3&gt;

&lt;p&gt;For Claude Code users, every tool call is logged — file reads, shell commands, web searches, and all your MCP tools. cc-statistics aggregates these and shows you a Top 10 breakdown by tool name, with Skill-type and MCP tools expanded to their specific names rather than grouped together.&lt;/p&gt;

&lt;p&gt;This turns out to be a useful debugging signal. If &lt;code&gt;mcp__filesystem__read_file&lt;/code&gt; is dominating your tool calls, maybe your agent is doing too many redundant reads. If a specific MCP tool is called 200 times in a session, you have a concrete number to reason about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Change Statistics
&lt;/h3&gt;

&lt;p&gt;Using &lt;code&gt;git log --numstat&lt;/code&gt; on your project directories, cc-statistics tracks lines added and deleted by language per session. You get a breakdown like: "This week, 3,400 lines of TypeScript and 800 lines of Python were written in AI-assisted sessions."&lt;/p&gt;

&lt;p&gt;This is useful for understanding where AI coding is actually generating output, not just consuming tokens. A session with high token usage but zero code changes probably means you spent the time in discussion or planning — which is fine, but worth knowing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Time vs. User Time
&lt;/h3&gt;

&lt;p&gt;cc-statistics measures how long Claude is "thinking" versus how long it spends waiting for you to respond. This ratio tells you something about your workflow efficiency. A high AI time percentage in short sessions usually means you're prompt-and-wait; a more balanced ratio might mean you're doing more interactive back-and-forth.&lt;/p&gt;

&lt;p&gt;I've found this metric helpful for spotting sessions where I should have batched more work into a single prompt rather than going back and forth ten times.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reports and Notifications
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Automatic Weekly and Monthly Reports
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; week
cc-stats &lt;span class="nt"&gt;--report&lt;/span&gt; month
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These generate Markdown files summarizing your usage across all platforms for the period: total tokens, cost by model, most active projects, top tool calls, and code changes by language. Useful for personal accountability, or for justifying your AI tooling budget to a manager.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webhook Push
&lt;/h3&gt;

&lt;p&gt;If you're on a team, you can push reports to a channel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--notify&lt;/span&gt; https://hooks.slack.com/services/your-webhook-url
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Slack, Feishu, and DingTalk webhooks all work. I have a weekly cron job that pushes a summary to a personal Slack channel so I have a permanent record. You could use this for team-wide visibility into AI tooling costs, or just for your own history.&lt;/p&gt;




&lt;h2&gt;
  
  
  Usage Alerts
&lt;/h2&gt;

&lt;p&gt;You can set daily and weekly spending limits, and cc-statistics will fire a macOS system notification when you're close to or over the threshold. This lives in the app's Settings panel.&lt;/p&gt;

&lt;p&gt;The notification goes through the standard macOS notification system, so it respects your Focus modes and doesn't require the app to be in the foreground. Combined with the status bar turning red, it's hard to miss.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Dashboard
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens a browser-based dark-themed dashboard — useful on non-Mac platforms or when you want a larger view than the menu bar panel provides. It shows the same data as the native app: sessions, tokens by model, daily trends, tool call breakdowns.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started in 3 Steps
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Install&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# uv (fastest)&lt;/span&gt;
uv tool &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or pipx&lt;/span&gt;
pipx &lt;span class="nb"&gt;install &lt;/span&gt;cc-statistics

&lt;span class="c"&gt;# or Homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;androidZzT/tap/cc-statistics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Run your first report&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--since&lt;/span&gt; 7d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This scans all detected platforms and prints the last 7 days of activity. If you only use Claude Code, it'll show Claude Code. If you have Gemini CLI sessions too, those appear automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Launch the menu bar app (macOS)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cc-stats-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable "Launch at Login" in Settings once, and you'll have a persistent cost gauge from then on.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;A few things on the roadmap that I'm working toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rate limit progress bar&lt;/strong&gt; — visual indicator of how close you are to Claude's session limits, similar to what claude-usage does for Pro/Max subscribers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hourly activity distribution&lt;/strong&gt; — see which hours of the day you use AI coding tools most, and whether those overlap with peak throttling windows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget forecasting&lt;/strong&gt; — project end-of-month spend based on current usage velocity&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/androidZzT/cc-statistics" rel="noopener noreferrer"&gt;https://github.com/androidZzT/cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install: &lt;code&gt;uv tool install cc-statistics&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PyPI: &lt;a href="https://pypi.org/project/cc-statistics/" rel="noopener noreferrer"&gt;cc-statistics&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're using multiple AI coding tools and want a single place to see what they're actually costing you, give it a try. And if something doesn't work or you want a platform added, open an issue — the project is actively maintained.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>claude</category>
      <category>tooling</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
