<?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: Abhishek Jha</title>
    <description>The latest articles on DEV Community by Abhishek Jha (@abhishekjha17).</description>
    <link>https://dev.to/abhishekjha17</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%2F3867572%2F4f984959-67fc-422b-8fdb-30320805991d.jpg</url>
      <title>DEV Community: Abhishek Jha</title>
      <link>https://dev.to/abhishekjha17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishekjha17"/>
    <language>en</language>
    <item>
      <title>Profling Claude Converstaions</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Fri, 17 Apr 2026 08:11:16 +0000</pubDate>
      <link>https://dev.to/abhishekjha17/profling-claude-converstaions-1h74</link>
      <guid>https://dev.to/abhishekjha17/profling-claude-converstaions-1h74</guid>
      <description>&lt;p&gt;It is the ultimate flow-killer. You sit down, open your IDE, get maybe three or four good turns into a complex refactor, and then—BAM.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You have reached your message limit until 4:00 PM."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It feels broken. You just started! How is the tank already empty? This happened to me so often—while burning through &lt;strong&gt;$50&lt;/strong&gt; worth of tokens a day—that I realized I was flying completely blind. I had no idea what was actually happening under the hood of my conversations.&lt;/p&gt;

&lt;p&gt;I built Intern. It’s a tool to trace your Claude interactions and providing a heuristic-based profile of exactly how you’re consuming resources.&lt;/p&gt;

&lt;p&gt;Intern acts as a transparent proxy. You point your claude code traffic through it, and it keeps a persistent history of every conversation. This allows you to go back and analyze exactly what happened in a session that nuked your limits.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Heuristic Profile: A Reality Check
&lt;/h3&gt;

&lt;p&gt;The core of the project is the profile command. It takes your raw conversation traces and applies a heuristic analysis to categorize the "work" being done.&lt;/p&gt;

&lt;p&gt;When I profiled one of my "short" sessions that somehow cost me $18, this is what intern surfaced:&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="o"&gt;===&lt;/span&gt; Cost Report &lt;span class="o"&gt;===&lt;/span&gt;
MODEL                      MSGS   INPUT     OUTPUT    CACHE READ   TOTAL
claude-opus-4-6            233    &lt;span class="nv"&gt;$0&lt;/span&gt;.0400   &lt;span class="nv"&gt;$1&lt;/span&gt;.9850   &lt;span class="nv"&gt;$11&lt;/span&gt;.2288     &lt;span class="nv"&gt;$17&lt;/span&gt;.8246

&lt;span class="o"&gt;===&lt;/span&gt; Complexity Breakdown &lt;span class="o"&gt;===&lt;/span&gt;
COMPLEXITY  COUNT  %
mechanical  196    70.0%
reasoning   69     24.6%
trivial     15     5.4%

&lt;span class="o"&gt;===&lt;/span&gt; Tool Usage &lt;span class="o"&gt;(&lt;/span&gt;322 total calls&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt;
TOOL            COUNT   %      BAR
&lt;span class="nt"&gt;----&lt;/span&gt;            &lt;span class="nt"&gt;-----&lt;/span&gt;   -      &lt;span class="nt"&gt;---&lt;/span&gt;
Bash            110     34.2%  █████████████████
Read            67      20.8%  ██████████
Edit            49      15.2%  ███████&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What Intern actually shows you:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Mechanical vs. Reasoning: My heuristics showed that 70% of my messages were purely mechanical (file I/O, bash commands). I was using high-tier reasoning limits for brick-laying tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Cache Tax: You can see exactly how much you are spending on CACHE READ. In this session, $11.22 was spent just on Claude re-reading context. If you change your system prompt or a large file mid-way, you can see the immediate financial and rate-limit spike here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trace Persistence: Instead of losing your history to the ether, intern saves everything to .jsonl files. You can analyze patterns across weeks of work to see which projects—or which specific tools—are your "token hogs."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Offload Candidates: The profiler automatically flags messages that are "trivial" or "tool continuations." It tells you exactly how many messages could have been handled by a lighter model without sacrificing quality.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  How to Profile Your Own Workflow
&lt;/h3&gt;

&lt;p&gt;The setup is non-suggestive and stays out of your way.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install the intern cli tool
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;for platforms other than Mac, you can refer to the installation guide&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spin up the proxy:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~ intern proxy
2026/04/17 13:29:08 intern proxy listening on :11411 → https://api.anthropic.com &lt;span class="o"&gt;(&lt;/span&gt;traces → /Users/abhi17/.intern/traces/traces.jsonl&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Start Claude with &lt;code&gt;intern&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~ &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:11411
~ claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Intern will silently log every request and response while you work.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run the heuristic report:
When you hit that rate limit, don't just wait around. Run the analysis:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~ intern profile .intern/traces/traces.jsonl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The choice
&lt;/h3&gt;

&lt;p&gt;Tracing your conversation is about more than just costs; it’s about reclaiming control over your workflow's path. Once you see which parts of your session are purely mechanical, you can consciously choose to offload those branches to cheaper or local models. Instead of being forced down a single, expensive rate-limited road, you get to decide exactly which model is worth your context and when.&lt;/p&gt;

&lt;h4&gt;
  
  
  Check out the project:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://github.com/abhishekjha17/intern" rel="noopener noreferrer"&gt;abhishekjha17/intern&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>go</category>
      <category>github</category>
    </item>
  </channel>
</rss>
