<?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: Javokhir Khusanov</title>
    <description>The latest articles on DEV Community by Javokhir Khusanov (@jkhusanov).</description>
    <link>https://dev.to/jkhusanov</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%2F3981422%2F716945e9-1bf9-44ea-99b6-18cfc3417efa.png</url>
      <title>DEV Community: Javokhir Khusanov</title>
      <link>https://dev.to/jkhusanov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jkhusanov"/>
    <language>en</language>
    <item>
      <title>Helicone is in maintenance mode. So I built the lightweight alternative I wanted.</title>
      <dc:creator>Javokhir Khusanov</dc:creator>
      <pubDate>Fri, 12 Jun 2026 14:23:49 +0000</pubDate>
      <link>https://dev.to/jkhusanov/helicone-is-in-maintenance-mode-so-i-built-the-lightweight-alternative-i-wanted-1abl</link>
      <guid>https://dev.to/jkhusanov/helicone-is-in-maintenance-mode-so-i-built-the-lightweight-alternative-i-wanted-1abl</guid>
      <description>&lt;p&gt;If you were using Helicone to track your LLM costs, you've probably seen the news: after the Mintlify acquisition in March, it's officially in maintenance mode. Feature development has stopped. 16,000+ organizations are quietly looking around. Langfuse — the other indie-friendly option — was acquired by ClickHouse in January, and self-hosting it means running ClickHouse + Postgres + Redis + S3. To look at your own API bill.&lt;/p&gt;

&lt;p&gt;Meanwhile the problem is getting worse, not better. We're all running agents now, and agents have a special talent: an uncapped recursive loop can turn a $4k/month budget into an $11.2k bill in three weeks (real story). The provider dashboards tell you what you spent. Not where, not which feature, not which customer.&lt;/p&gt;

&lt;p&gt;So I built TokenWatch — the tool I wanted as a solo AI builder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tokenwatch-sdk serve   &lt;span class="c"&gt;# dashboard on localhost:4318. That's the whole setup.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;wrapAnthropic&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;init&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tokenwatch-sdk&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;claude&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;wrapAnthropic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;feature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;summarize&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;customerId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;acme&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;enforceBudget&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every call — streaming included — is now tracked: model, tokens, cost, latency, errors, attributed to features and customers.&lt;/p&gt;

&lt;p&gt;Design decisions (a.k.a. my complaints about the incumbents)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;No proxy in your request path. Your calls go straight to OpenAI/Anthropic; telemetry ships async on the side. A monitoring tool should never be the reason your product is down.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One process, SQLite, zero native deps. It uses Node's built-in node:sqlite. No Docker compose with four services. Your usage data stays on your machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A budget kill-switch, not just a budget chart. Set a monthly budget: at 80% your webhook fires, at 100% wrapped calls throw BudgetExceededError instead of spending more. Watching a dashboard doesn't stop an agent loop at 3am — an exception does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Margin attribution, not traces. Tracing UIs are built for debugging. Most of the time I have a simpler question: which feature is losing money and which customer is profitable? Cost by feature and by customer is the default view, not a saved query.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python SDK with literally zero dependencies. Standard library only. wrap_openai(client) and you're done.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What it's not&lt;br&gt;
It's not a tracing platform, it's not an eval suite, and it won't replace Langfuse for a 50-person team that lives in traces. It's the 80% tool for the solo builder and small team: where is the money going, is quality degrading, and stop the bleeding automatically.&lt;/p&gt;

&lt;p&gt;It's MIT-licensed and v0.1 — built in public, partly with AI agents (Claude Code wrote a lot of it, which felt appropriately recursive for a tool that monitors AI spend). Feedback, issues, and brutal honesty welcome.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;What's your current setup for tracking LLM costs — and has an agent ever surprised you with a bill?&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>monitoring</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
