<?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>DEV Community: SingYee</title>
    <description>The latest articles on DEV Community by SingYee (@singggggyee).</description>
    <link>https://dev.to/singggggyee</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%2F3860006%2Febe2f71d-0f39-4093-9078-b4e94523ba44.png</url>
      <title>DEV Community: SingYee</title>
      <link>https://dev.to/singggggyee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/singggggyee"/>
    <language>en</language>
    <item>
      <title>I analyzed 187 Claude Code sessions. $6,744 worth of tokens. Here's where they actually went.</title>
      <dc:creator>SingYee</dc:creator>
      <pubDate>Fri, 03 Apr 2026 19:57:11 +0000</pubDate>
      <link>https://dev.to/singggggyee/i-analyzed-187-claude-code-sessions-6744-worth-of-tokens-heres-where-they-actually-went-2ae5</link>
      <guid>https://dev.to/singggggyee/i-analyzed-187-claude-code-sessions-6744-worth-of-tokens-heres-where-they-actually-went-2ae5</guid>
      <description>&lt;p&gt;I've been using Claude Code heavily for the past month. Building trading bots, automation tools, side projects.&lt;/p&gt;

&lt;p&gt;I knew I was burning through tokens but never looked at the numbers.&lt;/p&gt;

&lt;p&gt;So I built a small CLI to parse my local session data. The result: &lt;strong&gt;187 sessions. 3.3 billion tokens. $6,744 equivalent API cost.&lt;/strong&gt;&lt;/p&gt;

&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%2Fknklfhwdiloxf4j0xy03.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%2Fknklfhwdiloxf4j0xy03.png" alt=" " width="800" height="599"&gt;&lt;/a&gt;I'm on Max, so this is equivalent API cost, not what I actually paid. But the token patterns are what matter here.&lt;/p&gt;

&lt;h2&gt;
  
  
  97% of my tokens were something I couldn't control
&lt;/h2&gt;

&lt;p&gt;That was the first surprise. 97% were cache reads. Every turn, Claude re-reads the entire conversation context. Think of it like re-reading an entire book every time you turn a page.&lt;/p&gt;

&lt;p&gt;The good news: cache reads are cheap ($1.5/M tokens) and completely normal. The bad news: it means the part you can actually control is tiny.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only 2.8% of my tokens were controllable.&lt;/strong&gt; Of that, 92.5% was cache creation (CLAUDE.md, MCP tools, system prompt loading), 6.6% was Claude's actual output, 0.9% was my input.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I wouldn't have caught from /cost
&lt;/h2&gt;

&lt;p&gt;This was the most useful part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;86 sessions&lt;/strong&gt; over 30 turns without /compact, each one letting context balloon to 2-3x what it needed to be&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;840 subagent calls&lt;/strong&gt;, every single one duplicating the full conversation context just to do a search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;35 anomaly sessions&lt;/strong&gt; burning tokens at 2-3x my normal rate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bash was 40% of all tool calls&lt;/strong&gt;, pumping long command outputs back into context every time&lt;/li&gt;
&lt;li&gt;Peak hours (Mon-Fri 5-11am PT) used &lt;strong&gt;1.3x more tokens&lt;/strong&gt; on average than off-peak&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I actually changed
&lt;/h2&gt;

&lt;p&gt;After seeing the data, three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I use /compact after ~20 turns now instead of letting sessions run endlessly&lt;/li&gt;
&lt;li&gt;I stopped defaulting to Agent for codebase searches and use Grep/Glob directly&lt;/li&gt;
&lt;li&gt;I try to keep heavy sessions out of peak hours when possible&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Small changes, but the anomaly sessions have mostly stopped showing up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tool
&lt;/h2&gt;

&lt;p&gt;Open sourced it. Called &lt;strong&gt;ccwhy&lt;/strong&gt;, written in Rust, runs completely offline on your local ~/.claude/ data. No API keys needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;SingggggYee/tap/ccwhy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or: &lt;code&gt;cargo install ccwhy&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or: &lt;a href="https://github.com/SingggggYee/ccwhy/releases" rel="noopener noreferrer"&gt;grab the binary&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's not a replacement for ccusage. ccusage tells you how much you spent. ccwhy tells you why, and what to change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SingggggYee/ccwhy" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious what other people's breakdowns look like. Is 97% cache reads normal, or is my setup unusually heavy?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rust</category>
      <category>claude</category>
      <category>claudecode</category>
    </item>
  </channel>
</rss>
