<?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: VANSH ARORA</title>
    <description>The latest articles on DEV Community by VANSH ARORA (@vansharora21).</description>
    <link>https://dev.to/vansharora21</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977293%2Fc5c372d4-6394-447c-b24e-985f05573fc4.png</url>
      <title>DEV Community: VANSH ARORA</title>
      <link>https://dev.to/vansharora21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vansharora21"/>
    <language>en</language>
    <item>
      <title>Enforcing Zero Network Egress with Automated Sovereignty Tests</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Tue, 29 Sep 2026 18:48:44 +0000</pubDate>
      <link>https://dev.to/vansharora21/enforcing-zero-network-egress-with-automated-sovereignty-tests-g91</link>
      <guid>https://dev.to/vansharora21/enforcing-zero-network-egress-with-automated-sovereignty-tests-g91</guid>
      <description>&lt;p&gt;Many dev tools label themselves local-first while secretly pinging remote endpoints for telemetry, grammar downloads, or license checks.&lt;/p&gt;

&lt;p&gt;When building TokenCap, we decided that security guarantees should not depend on developer discipline. They must be enforced by automated tests in CI.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Four Sovereignty Laws
&lt;/h3&gt;

&lt;p&gt;Every feature added to TokenCap must conform to four rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No runtime network calls (except explicit &lt;code&gt;tokencap upgrade&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;No API keys required, ever.&lt;/li&gt;
&lt;li&gt;Zero native compilation or post-install build scripts.&lt;/li&gt;
&lt;li&gt;Total dependency count stays under 4 packages so the entire tree can be audited in an afternoon.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  How We Test Sovereignty
&lt;/h3&gt;

&lt;p&gt;In &lt;code&gt;test/sovereignty.test.js&lt;/code&gt;, we hook Node.js network primitives and check package manifests:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// test/sovereignty.test.js excerpt&lt;/span&gt;
&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;enforces zero network egress and dependency budget&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;pkg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;package.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;utf8&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;depCount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pkg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;{}).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Hard constraint: Maximum 4 production dependencies&lt;/span&gt;
  &lt;span class="nx"&gt;assert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;depCount&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;`Dependencies exceeded limit: got &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;depCount&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Verify tree-sitter grammars are vendored WASM, not remote downloads&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;grammars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readdirSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dist/grammars&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;assert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;grammars&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Grammars must be vendored locally&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because WASM binaries are vendored into the package, &lt;code&gt;npx tokencap make&lt;/code&gt; runs cleanly inside air-gapped corporate environments, firewalled CI runners, and defense environments without a single network packet leaving the box.&lt;/p&gt;

&lt;p&gt;Inspect our architecture and security docs at tokencap.vansharora.app&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How We Built Blast Radius Impact Analysis for AI Agents Using Tree-Sitter</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Tue, 29 Sep 2026 09:59:38 +0000</pubDate>
      <link>https://dev.to/vansharora21/how-we-built-blast-radius-impact-analysis-for-ai-agents-using-tree-sitter-3j33</link>
      <guid>https://dev.to/vansharora21/how-we-built-blast-radius-impact-analysis-for-ai-agents-using-tree-sitter-3j33</guid>
      <description>&lt;p&gt;When a human refactors a function, they look at who calls it. When an AI agent refactors a function, it often looks only at the single open file and hallucinates that nobody else depends on the old signature.&lt;/p&gt;

&lt;p&gt;To give agents real spatial awareness of code, we built symbol-level impact analysis into TokenCap using tree-sitter WASM grammars.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methodology: From AST to Call Graph
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Parsing: Every JS, TS, Python, Go, Rust, and Java file is parsed into an abstract syntax tree.&lt;/li&gt;
&lt;li&gt;Symbol Extraction: Functions, methods, classes, and exported constants are cataloged with line-range coordinates.&lt;/li&gt;
&lt;li&gt;Call Resolution: Call expressions are matched against defined symbols using precision-aware resolution (disambiguating direct calls vs method invocations).&lt;/li&gt;
&lt;li&gt;Louvain Clustering: The dependency graph is clustered into functional domains to detect boundary crossings.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  CLI Inspection in Action
&lt;/h3&gt;

&lt;p&gt;You can query the blast radius directly from the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tokencap ask impact src/auth/jwt.js:verifyToken
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Target: src/auth/jwt.js:verifyToken (function)
Direct Callers (4):
  - src/middleware/authMiddleware.js:14: authenticate
  - src/api/routes/user.js:45: handleProfile
  - src/api/routes/billing.js:28: handleInvoice
  - src/bridge/server.js:89: validateLoopbackSession
Transitive Reach: 18 files across 3 clusters
Boundary Crossings: Auth -&amp;gt; Billing, Auth -&amp;gt; API Gateway
Risk Assessment: HIGH (Core security primitive with multi-module reach)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By exposing this data via the TokenCap MCP server, agents running in Claude Code, Cursor, or VS Code can check the impact of their planned edits before making them.&lt;/p&gt;

&lt;p&gt;Explore the architecture at tokencap.vansharora.app&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why Top-Down Truncation Breaks AI Agents (And How Even-Span Fixes It)</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sun, 27 Sep 2026 18:43:48 +0000</pubDate>
      <link>https://dev.to/vansharora21/why-top-down-truncation-breaks-ai-agents-and-how-even-span-fixes-it-1n85</link>
      <guid>https://dev.to/vansharora21/why-top-down-truncation-breaks-ai-agents-and-how-even-span-fixes-it-1n85</guid>
      <description>&lt;p&gt;Most AI coding context generators have a hidden design flaw: they truncate long files sequentially from line 1 downward until they hit a token budget limit.&lt;/p&gt;

&lt;p&gt;If a file has 1,200 lines and your budget allows 400 lines, the model receives lines 1 to 400. Everything from line 401 to 1200 vanishes.&lt;/p&gt;

&lt;p&gt;In production codebases, this is fatal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Top: imports and constants&lt;/li&gt;
&lt;li&gt;Middle: core logic and helper functions&lt;/li&gt;
&lt;li&gt;Bottom: exported interfaces, route registrations, module.exports, and lifecycle bindings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the agent cannot see &lt;code&gt;module.exports&lt;/code&gt; or class registrations at the bottom, it assumes they do not exist and generates duplicate or broken code.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Even-Span Sampling Methodology
&lt;/h3&gt;

&lt;p&gt;To solve this without blowing the token budget, TokenCap implements even-span distribution in &lt;code&gt;src/pack/evenSpan.js&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The algorithm divides the file into balanced intervals and samples structural slices while preserving AST function signatures:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// src/pack/evenSpan.js overview&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;computeEvenSpans&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lineCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;maxLines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;anchorPoints&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Guarantees head imports, core anchor blocks, and tail exports&lt;/span&gt;
  &lt;span class="c1"&gt;// are represented proportionally within the allocated budget.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Lines 1 - 350: Captured
Lines 351 - 1200: [TRUNCATED]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Even-span provides:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Lines 1 - 80: Header, configuration, types
... [140 lines folded] ...
Lines 220 - 310: Core logic and targeted symbols
... [290 lines folded] ...
Lines 600 - 680: Lifecycle handlers and bottom exports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every span boundary snaps cleanly to structural declaration boundaries rather than slicing mid-statement.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;tokencap make&lt;/code&gt; to inspect how your large files are budgeted.&lt;/p&gt;

&lt;p&gt;Read more at tokencap.vansharora.app&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How We Achieved a 12.2x Token Reduction on Codebase Context</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sun, 27 Sep 2026 17:54:27 +0000</pubDate>
      <link>https://dev.to/vansharora21/how-we-achieved-a-122x-token-reduction-on-codebase-context-16bj</link>
      <guid>https://dev.to/vansharora21/how-we-achieved-a-122x-token-reduction-on-codebase-context-16bj</guid>
      <description>&lt;p&gt;When feeding codebase context into LLMs, bigger context windows have created sloppy habits. Handing 150k tokens of raw source files to Claude 3.5 Sonnet or GPT-4o degrades recall accuracy and costs serious money when run in automated agent loops.&lt;/p&gt;

&lt;p&gt;We built TokenCap to solve this locally. In recent benchmark evaluations against representative multi-file repositories, TokenCap compressed prompt payloads from 152,000 tokens down to 12,450 tokens while maintaining complete call-chain resolution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benchmark Methodology
&lt;/h3&gt;

&lt;p&gt;We evaluated TokenCap on standard multi-file refactoring and bug-localization tasks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Baseline: Full-file concatenation of all modules in the task directory tree.&lt;/li&gt;
&lt;li&gt;TokenCap: Running &lt;code&gt;tokencap make --profile balanced&lt;/code&gt; with tree-sitter AST extraction and retrieval-gated budgeting.&lt;/li&gt;
&lt;li&gt;Metric: Token volume measured via &lt;code&gt;js-tiktoken&lt;/code&gt; (cl100k_base tokenizer) and recall accuracy on target symbol call sites.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result was an average 12.2x reduction in token volume. More importantly, hallucinated import calls dropped because low-relevance code was pruned before context generation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How the Budget Engine Works
&lt;/h3&gt;

&lt;p&gt;Instead of naive file truncation, TokenCap parses the codebase into an AST graph using WebAssembly tree-sitter grammars. It runs Louvain community clustering to identify functional boundaries and ranks symbols using call frequency and proximity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tokencap make &lt;span class="nt"&gt;--profile&lt;/span&gt; balanced
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CLI output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Indexed 84 files in 1.1s
Call graph: 412 symbols, 891 call edges resolved (88% precision)
Token budget: 12,450 / 150,000 max (12.2x compression)
Wrote .tokencap/snapshot.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The resulting snapshot provides the model with full function signatures, exact export shapes, and high-priority implementation spans while folding repetitive structures.&lt;/p&gt;

&lt;p&gt;If you are developing LLM workflows or MCP servers, stop feeding raw file dumps to your agents.&lt;/p&gt;

&lt;p&gt;Read more at tokencap.vansharora.app&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>TOKENCAP V2.7.0</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sat, 19 Sep 2026 16:46:06 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v270-50pk</link>
      <guid>https://dev.to/vansharora21/tokencap-v270-50pk</guid>
      <description>&lt;h1&gt;
  
  
  We spent months teaching AI to read our codebases. We forgot to teach it how to remember.
&lt;/h1&gt;

&lt;p&gt;Every developer pair-programming with AI knows this feeling. &lt;/p&gt;

&lt;p&gt;You sit down with Claude, Cursor, or Codex and spend three hours untangling a nasty race condition in your auth layer. You try three different ideas that fail, realize why your Redis connection pool is starving, decide on a clean fix, and touch half a dozen files. &lt;/p&gt;

&lt;p&gt;The tests pass. You commit the code. You close the chat tab.&lt;/p&gt;

&lt;p&gt;And just like that, every piece of hard-won architectural context, every discarded dead end, and every decision you made vanishes.&lt;/p&gt;

&lt;p&gt;Tomorrow morning, you open a new session in that same repo. The model greets you with a blank stare. It has no idea what you did yesterday. It does not know why you avoided that third-party library, and it does not know what you plan to tackle next. You are back to square one, watching it grep through your files and burn tokens rediscovering things you solved twelve hours ago.&lt;/p&gt;

&lt;p&gt;Over the past year, our entire industry obsessed over getting context &lt;em&gt;into&lt;/em&gt; the model. We wrote AGENTS.md files, argued about vector embeddings, and built MCP servers. We taught coding agents how to read our projects. &lt;/p&gt;

&lt;p&gt;We completely forgot about the return trip.&lt;/p&gt;

&lt;p&gt;Today we are releasing TokenCap 2.7.0, which we call "Loop". It is built around a simple idea: when an AI coding session ends, it should turn into a small, clean, reviewable handoff back to the codebase. No raw transcripts, no telemetry, and no silent changes to your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three-hour epiphany that dies on tab close
&lt;/h3&gt;

&lt;p&gt;When human engineers wrap up a tricky feature, good teams leave behind a quick pull request summary, a commit note, or a short architecture decision record. It takes two minutes, and it keeps the next person who touches that code from losing their mind.&lt;/p&gt;

&lt;p&gt;With AI tools, we did something strange. Because chat windows feel temporary, we started treating all that problem-solving like scratch paper.&lt;/p&gt;

&lt;p&gt;The data behind this is pretty sobering. Recent telemetry from engineering teams shows that developers using AI assistants are now juggling over 60% more pull request contexts and tasks per day than they were a year ago. Work restarts are up, and tasks sit half-finished for days simply because keeping track of scattered chat sessions is mentally exhausting.&lt;/p&gt;

&lt;p&gt;The problem is not that the models are not capable enough. The problem is that the feedback loop between the conversation and the repository is broken.&lt;/p&gt;

&lt;p&gt;Right now, teams usually pick one of two extremes. Either you hoard raw transcripts, saving tens of thousands of tokens of chat banter and hallucinations into documents nobody will ever read again, or you accept total amnesia and pay the inference bill to rediscover the codebase on every prompt.&lt;/p&gt;

&lt;p&gt;Neither of those makes sense on an engineering team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why we refused to let AI write directly to your git history
&lt;/h3&gt;

&lt;p&gt;When we started building the capture side for 2.7.0, the first suggestion people gave us was obvious: just have the AI update the memory files automatically in the background when the chat finishes.&lt;/p&gt;

&lt;p&gt;We decided early on that we would not do that.&lt;/p&gt;

&lt;p&gt;Models hallucinate. They claim tests passed when they did not run them. They invent dependencies out of thin air. If an agent can silently edit your repository memory or project rules without you looking, you have not built a useful loop. You have just built a machine that slowly poisons your context over time.&lt;/p&gt;

&lt;p&gt;In TokenCap 2.7.0, captures are staged first:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;When a session wraps up, you or the host submit a bounded summary (&lt;code&gt;tokencap remember&lt;/code&gt; or via the local bridge).&lt;/li&gt;
&lt;li&gt;It gets validated, stripped of secrets or API keys, and clamped to under 60 lines.&lt;/li&gt;
&lt;li&gt;It lands in a local folder (&lt;code&gt;.tokencap/memory/inbound/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Nothing touches your actual repository memory until a human runs &lt;code&gt;tokencap remember --approve&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If an agent generated garbage, you reject it. If it captured the right architectural decision, you approve it, and it immediately archives into &lt;code&gt;.tokencap/memory/sessions/&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;From there, running &lt;code&gt;tokencap handoff&lt;/code&gt; prints a clean, 500-token summary of the latest approved work. When you start your next chat session, that handoff sits right at the top of your prompt. The agent knows exactly where you left off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grounding, not "truth"
&lt;/h3&gt;

&lt;p&gt;One thing we had to be very careful with was the quality gate. How do you check if a session summary is actually good before you approve it?&lt;/p&gt;

&lt;p&gt;A lot of modern tools spin up a second LLM to critique the first LLM. That adds delay, burns money, and sends your code off to another server.&lt;/p&gt;

&lt;p&gt;Instead, TokenCap checks grounding against the AST knowledge graph you already have locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the summary reference files that actually exist in your git tree?&lt;/li&gt;
&lt;li&gt;When it claims it modified a function, does that symbol actually exist in the AST?&lt;/li&gt;
&lt;li&gt;Did it write something specific and technical, or did it write vague fluff like "refactored code and improved stability"?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are not trying to evaluate whether the AI is philosophically correct. We are checking whether what it wrote is anchored to the actual structure of your repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context goes stale faster than code
&lt;/h3&gt;

&lt;p&gt;There is another side to this. If you give an AI assistant an intelligence snapshot that is two weeks old while your working directory has fifteen uncommitted file edits, the model gets confused, hallucinates, and gives you broken suggestions. Then everyone blames the model.&lt;/p&gt;

&lt;p&gt;In 2.7.0, we added a build health score (&lt;code&gt;tokencap health&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;It gives you a plain 0 to 100 rating on your current context:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Build health: 94/100 · built 1.2h ago
  100  freshness: built 1h ago
   90  sourceDrift: 1 uncommitted change since build
   95  detection: Node.js, TypeScript detected
   90  coverage: 3/3 layers present
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If the score slips because the codebase moved out from under it, it tells you why, tells you what changed, and prints the exact command to freshen it up (&lt;code&gt;tokencap rebuild&lt;/code&gt;). That same score is piped directly into the MCP overview tool so your agent can see whether its own context is fresh before it starts writing code.&lt;/p&gt;
&lt;h3&gt;
  
  
  Being honest about host support
&lt;/h3&gt;

&lt;p&gt;Almost every dev tool landing page right now has twenty AI logos with a badge claiming full automatic support.&lt;/p&gt;

&lt;p&gt;We ran &lt;code&gt;tokencap remember --hosts&lt;/code&gt; to check what tools actually support automatic session capture today. The reality is simple: almost no tool gives you a reliable, verified hook when a chat conversation ends. An editor closing or an MCP process shutting down is not a session-end signal; nine times out of ten it is just somebody reloading a window or toggling a setting. If a tool treats every window restart as a completed session, it floods your repository with junk.&lt;/p&gt;

&lt;p&gt;So we designed 2.7.0 to be honest about it. We support seven hosts, but we treat manual and staged review as the primary path. When a host actually builds a real conversation lifecycle event, we hook into it. Until then, we do not guess.&lt;/p&gt;
&lt;h3&gt;
  
  
  Staying local
&lt;/h3&gt;

&lt;p&gt;The easiest way to build something like this would have been to put an API key in a settings panel, ship your chat logs to our cloud database, and charge a monthly subscription per seat.&lt;/p&gt;

&lt;p&gt;We built TokenCap under strict constraints from day one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero network egress. Everything runs on your machine. No bytes leave 127.0.0.1.&lt;/li&gt;
&lt;li&gt;Strictly four runtime dependencies. No native compilers, just pure WebAssembly.&lt;/li&gt;
&lt;li&gt;Token budgets that respect model limits instead of blowing past them.&lt;/li&gt;
&lt;li&gt;Everything lives inside your repo under &lt;code&gt;.tokencap/&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Trying it out
&lt;/h3&gt;

&lt;p&gt;If you are already using TokenCap, you can pull the update today:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; tokencap
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Run &lt;code&gt;tokencap health&lt;/code&gt; to see where your repository context stands, try capturing a session with &lt;code&gt;tokencap remember&lt;/code&gt;, and see what it feels like to start a chat where your tools actually remember what you built yesterday.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://tokencap.vansharora.app/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftokencap.vansharora.app%2Fog-image.png" height="400" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://tokencap.vansharora.app/" rel="noopener noreferrer" class="c-link"&gt;
            TokenCap · Codebase Snapshot Tool
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Stop wasting tokens. TokenCap snapshots your workspace into structured, AI-ready prompts instantly.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftokencap.vansharora.app%2Ffavicon.ico%3Ffavicon.08~.qm5hq182m.ico" width="1024" height="559"&gt;
          tokencap.vansharora.app
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
    </item>
    <item>
      <title>TokenCap v2.1.0 is out.</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Mon, 17 Aug 2026 17:30:38 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v210-is-out-4eap</link>
      <guid>https://dev.to/vansharora21/tokencap-v210-is-out-4eap</guid>
      <description>&lt;p&gt;This release is focused on one idea:&lt;/p&gt;

&lt;p&gt;Give AI coding agents better context, while reducing the amount of unnecessary context they need.&lt;/p&gt;

&lt;p&gt;When working across Claude Code, Cursor, Windsurf, Copilot, Cline, Antigravity, and other coding agents, a lot of tokens are wasted repeatedly discovering the same repository structure, reading the same files, and rebuilding context.&lt;/p&gt;

&lt;p&gt;TokenCap is built to solve that.&lt;/p&gt;

&lt;p&gt;What’s new in v2.1.0:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Simplification&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;tokencap analyze simplify&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Find unreachable code, duplicate logic, unnecessary abstractions, and reinvention patterns across JS/TS with evidence and confidence levels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context Compression&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;tokencap compress&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Compress &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;.cursorrules&lt;/code&gt;, and similar context files while preserving headings, code fences, links, and URLs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token Savings&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;tokencap stats&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Track how much context and tokens you actually save across runs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debt Ledger&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;tokencap debt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Track TODOs, FIXMEs, and deferred shortcuts without relying on expensive git blame operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP v2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Expose repository overviews, symbol impact, call graphs, and delta diffs directly to MCP-compatible agents and IDEs.&lt;/p&gt;

&lt;p&gt;Also crossed &lt;strong&gt;2,500+ installs on the VS Code Marketplace&lt;/strong&gt;, which is honestly pretty cool to see for an open source project I started building for my own workflow.&lt;/p&gt;

&lt;p&gt;The idea behind TokenCap is simple:&lt;/p&gt;

&lt;p&gt;Your AI coding agent should not have to rediscover your codebase every time you start a session.&lt;/p&gt;

&lt;p&gt;Website:&lt;br&gt;
&lt;a href="https://tokencap.vansharora.app" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=tokencap.tokencap" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=tokencap.tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/vansharora21/tokencap-plugin" rel="noopener noreferrer"&gt;https://github.com/vansharora21/tokencap-plugin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
npx tokencap make
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>TokenCap v1.9.0 is now live.</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Thu, 06 Aug 2026 17:45:05 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v190-is-now-live-294e</link>
      <guid>https://dev.to/vansharora21/tokencap-v190-is-now-live-294e</guid>
      <description>&lt;p&gt;This release is focused on one thing: making TokenCap scale to the kinds of codebases people are actually working with.&lt;/p&gt;

&lt;p&gt;When I first built TokenCap, the goal was simple—stop AI coding assistants from wasting tokens rediscovering the same project context on every prompt.&lt;/p&gt;

&lt;p&gt;As more people started using it on larger repositories and monorepos, new bottlenecks became obvious. v1.9.0 is all about removing them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's new&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for scale&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bounded parallel graph processing using Node.js worker threads&lt;/li&gt;
&lt;li&gt;Checksum-protected atomic sharded cache&lt;/li&gt;
&lt;li&gt;~55s cold indexing on a deterministic 100,000-file codebase&lt;/li&gt;
&lt;li&gt;~44s warm rebuilds&lt;/li&gt;
&lt;li&gt;~57ms scoped incremental updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Smarter monorepo support&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cross-package dependency mapping&lt;/li&gt;
&lt;li&gt;Package-scoped context generation with &lt;code&gt;--package&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Automatic discovery of package-local AI onboarding files and rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Safe Markdown compression&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The new &lt;code&gt;tokencap compress&lt;/code&gt; command reduces snapshot size by removing markdown noise while keeping every fenced code block byte-for-byte identical.&lt;/p&gt;

&lt;p&gt;No broken examples. No mangled code. Just fewer tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure-aware context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TokenCap now understands Docker Compose services and local Terraform modules, allowing infrastructure to become part of the project graph your AI can reason about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Still local-first&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No telemetry.&lt;/p&gt;

&lt;p&gt;No analytics.&lt;/p&gt;

&lt;p&gt;No network calls.&lt;/p&gt;

&lt;p&gt;Your code never leaves your machine.&lt;/p&gt;

&lt;p&gt;If you're using Cursor, Claude Code, Copilot, Gemini CLI, or any other AI coding workflow, better context usually beats longer prompts.&lt;/p&gt;

&lt;p&gt;Install:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```bash id="buwr3q"&lt;br&gt;
npm install -g tokencap&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


Generate your first context capsule:



```bash id="h1zkxv"
tokencap make --full
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Website&lt;br&gt;
&lt;a href="https://tokencap.vansharora.app" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Documentation&lt;br&gt;
&lt;a href="https://tokencap.vansharora.app/docs" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub&lt;br&gt;
&lt;a href="https://github.com/vansharora7/tokencap" rel="noopener noreferrer"&gt;https://github.com/vansharora7/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;npm&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/tokencap" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=VanshArora.tokencap" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=VanshArora.tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open VSX&lt;br&gt;
&lt;a href="https://open-vsx.org/extension/VanshArora/tokencap" rel="noopener noreferrer"&gt;https://open-vsx.org/extension/VanshArora/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As always, feedback, issues, and feature requests are welcome.&lt;/p&gt;

&lt;h1&gt;
  
  
  TokenCap #OpenSource #DeveloperTools #TypeScript #AIEngineering #AICoding #Cursor #ClaudeCode #Copilot #MCP #Monorepo
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>tokencap v 1.7.0</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Tue, 28 Jul 2026 07:23:04 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v-170-2pk</link>
      <guid>https://dev.to/vansharora21/tokencap-v-170-2pk</guid>
      <description>&lt;p&gt;Today every AI sees&lt;/p&gt;

&lt;p&gt;Current Repository&lt;/p&gt;

&lt;p&gt;But developers think in&lt;/p&gt;

&lt;p&gt;Yesterday&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Today&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Tomorrow&lt;/p&gt;

&lt;p&gt;AI has no idea.&lt;/p&gt;

&lt;p&gt;v1.7 introduces&lt;br&gt;
Repository Timeline Intelligence&lt;/p&gt;

&lt;p&gt;Instead of asking&lt;/p&gt;

&lt;p&gt;What does the repository look like?&lt;/p&gt;

&lt;p&gt;TokenCap answers&lt;/p&gt;

&lt;p&gt;How did it become this way?&lt;/p&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;p&gt;You ask&lt;/p&gt;

&lt;p&gt;Why is authentication split into three services?&lt;/p&gt;

&lt;p&gt;Instead of searching files,&lt;/p&gt;

&lt;p&gt;TokenCap answers&lt;/p&gt;

&lt;p&gt;Authentication was split&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Commit 2af91&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Reason:&lt;br&gt;
OAuth support&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Affected Files&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Current Architecture&lt;br&gt;
AI now understands&lt;br&gt;
Why files changed&lt;br&gt;
Why architecture evolved&lt;br&gt;
Why APIs exist&lt;br&gt;
Why certain decisions were made&lt;br&gt;
Which refactors happened&lt;br&gt;
Which code is legacy&lt;br&gt;
Which code replaced what&lt;br&gt;
Repository Evolution Graph&lt;/p&gt;

&lt;p&gt;Instead of&lt;/p&gt;

&lt;p&gt;Authentication&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Current&lt;/p&gt;

&lt;p&gt;Now&lt;/p&gt;

&lt;p&gt;Authentication&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;2024&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;OAuth&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Microservice&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Caching&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Today&lt;br&gt;
Commit Intelligence&lt;/p&gt;

&lt;p&gt;Every commit becomes&lt;/p&gt;

&lt;p&gt;Intent&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Summary&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Impact&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Affected Clusters&lt;/p&gt;

&lt;p&gt;Instead of&lt;/p&gt;

&lt;p&gt;Fix auth&lt;/p&gt;

&lt;p&gt;AI knows&lt;/p&gt;

&lt;p&gt;Reduced login latency&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Moved JWT validation&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Updated middleware&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;No API changes&lt;br&gt;
Decision Graph&lt;/p&gt;

&lt;p&gt;Imagine clicking&lt;/p&gt;

&lt;p&gt;JWT Middleware&lt;/p&gt;

&lt;p&gt;and seeing&lt;/p&gt;

&lt;p&gt;Created&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Reason&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Referenced PR&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Related Files&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Current Dependencies&lt;br&gt;
Natural Language History&lt;/p&gt;

&lt;p&gt;Ask&lt;/p&gt;

&lt;p&gt;Why is this service async?&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;When did Redis become mandatory?&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;Show me all architecture changes this month.&lt;br&gt;
Repository Memory&lt;/p&gt;

&lt;p&gt;Instead of&lt;/p&gt;

&lt;p&gt;Repository Snapshot&lt;/p&gt;

&lt;p&gt;TokenCap now has&lt;/p&gt;

&lt;p&gt;Repository Memory&lt;/p&gt;

&lt;p&gt;Snapshots connected through time.&lt;/p&gt;

&lt;p&gt;Timeline Intelligence&lt;br&gt;
Repository&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Commit Graph&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Architecture Evolution&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Decision Timeline&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;AI&lt;br&gt;
Features&lt;br&gt;
Repository Timeline&lt;br&gt;
Commit Intelligence&lt;br&gt;
Decision Graph&lt;br&gt;
Architecture Evolution&lt;br&gt;
Natural Language History&lt;br&gt;
Refactor Timeline&lt;br&gt;
Feature Timeline&lt;br&gt;
Legacy Detection&lt;br&gt;
Change Story&lt;br&gt;
AI Time Travel&lt;br&gt;
Why this matters&lt;/p&gt;

&lt;p&gt;Current AI knows&lt;/p&gt;

&lt;p&gt;Where code is.&lt;/p&gt;

&lt;p&gt;TokenCap v1.7 lets AI know&lt;/p&gt;

&lt;p&gt;Why code exists.&lt;/p&gt;

&lt;p&gt;That's a much harder problem—and one that can genuinely change how AI helps developers.&lt;/p&gt;

&lt;p&gt;Why I like this better than another optimization&lt;/p&gt;

&lt;p&gt;Every version so far has made TokenCap better at representing the current state of a repository.&lt;/p&gt;

&lt;p&gt;v1.7 could make it represent the history and reasoning behind that state.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>development</category>
      <category>git</category>
    </item>
    <item>
      <title>TokenCap v1.6.0 is now live</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sun, 26 Jul 2026 16:41:12 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v160-is-now-live-3153</link>
      <guid>https://dev.to/vansharora21/tokencap-v160-is-now-live-3153</guid>
      <description>&lt;p&gt;One thing I've realized while building with AI is that context isn't a prompt problem anymore.&lt;/p&gt;

&lt;p&gt;It's an engineering problem.&lt;/p&gt;

&lt;p&gt;Over the last few weeks I've been using TokenCap on larger projects and found myself repeatedly asking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Why is the AI reading files that don't matter?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Why am I sending the same context over and over?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Why does every task start from scratch?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So &lt;strong&gt;v1.6.0&lt;/strong&gt; focuses on making context smaller, smarter, and more reusable.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's new in v1.6.0
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Smarter Context Retrieval&lt;/strong&gt;&lt;br&gt;
Only fetches the parts of your project that are actually relevant to the current task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improved Context Packing&lt;/strong&gt;&lt;br&gt;
Better prioritization means higher signal and fewer wasted tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better Dependency Resolution&lt;/strong&gt;&lt;br&gt;
Related files and components are grouped more intelligently before packing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faster Generation&lt;/strong&gt;&lt;br&gt;
Optimized pipeline for noticeably quicker context creation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug fixes &amp;amp; stability improvements&lt;/strong&gt;&lt;br&gt;
Because reliable developer tooling matters more than flashy features.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Explore TokenCap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌐 Website: &lt;a href="https://tokencap.vansharora.app" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📦 npm: &lt;a href="https://www.npmjs.com/package/tokencap" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛒 VS Code Marketplace: &lt;a href="https://marketplace.visualstudio.com/items?itemName=VanshArora21.tokencap" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=VanshArora21.tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔧 Open VSX: &lt;a href="https://open-vsx.org/extension/VanshArora21/tokencap" rel="noopener noreferrer"&gt;https://open-vsx.org/extension/VanshArora21/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building with AI, give it a try and let me know what you'd like to see in the next release.&lt;/p&gt;

&lt;p&gt;Feedback, issues, and contributions are always welcome.&lt;/p&gt;

&lt;h1&gt;
  
  
  opensource #showdev #vscode #typescript #ai #contextengineering #developers #webdev #programming
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>software</category>
      <category>tools</category>
    </item>
    <item>
      <title>TokenCap v1.5 — Making MCP Feel Invisible</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sat, 18 Jul 2026 20:17:23 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v15-making-mcp-feel-invisible-4ha4</link>
      <guid>https://dev.to/vansharora21/tokencap-v15-making-mcp-feel-invisible-4ha4</guid>
      <description>&lt;p&gt;Two days ago, I released &lt;strong&gt;TokenCap v1.4.0&lt;/strong&gt; with support for &lt;strong&gt;Local MCP (Model Context Protocol)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The response was great, but while using it myself, I realized something.&lt;/p&gt;

&lt;p&gt;The difficult part wasn't MCP.&lt;/p&gt;

&lt;p&gt;It was &lt;strong&gt;everything around it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every AI coding tool has its own configuration format and setup process. Whether you're using Claude Code, Cursor, VS Code, Windsurf, or Codex, the first few minutes usually look the same:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the documentation.&lt;/li&gt;
&lt;li&gt;Find the configuration file.&lt;/li&gt;
&lt;li&gt;Copy some JSON.&lt;/li&gt;
&lt;li&gt;Restart the editor.&lt;/li&gt;
&lt;li&gt;Hope everything works.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It isn't complicated, but it's unnecessary friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea Behind v1.5
&lt;/h2&gt;

&lt;p&gt;Instead of asking developers to configure MCP manually, why not let TokenCap do it?&lt;/p&gt;

&lt;p&gt;That's exactly what &lt;strong&gt;TokenCap v1.5&lt;/strong&gt; introduces.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tokencap mcp &lt;span class="nt"&gt;--init&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command.&lt;/p&gt;

&lt;p&gt;TokenCap detects the AI coding tool you're using and writes the appropriate Local MCP configuration automatically.&lt;/p&gt;

&lt;p&gt;Whether you're working in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;Windsurf&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…the setup process becomes the same.&lt;/p&gt;

&lt;p&gt;Run one command and start coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Experience First
&lt;/h2&gt;

&lt;p&gt;One principle guided this release:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Developers shouldn't have to visit multiple documentation pages just to connect their AI to their repository.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The best setup process is the one you barely notice.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Than Just MCP
&lt;/h2&gt;

&lt;p&gt;While automatic MCP configuration is the headline feature, v1.5 also includes several improvements behind the scenes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better repository indexing for faster intelligence generation.&lt;/li&gt;
&lt;li&gt;A cleaner Repository Intelligence Compiler with less duplicated data.&lt;/li&gt;
&lt;li&gt;Improved Local-Only security auditing and secret redaction.&lt;/li&gt;
&lt;li&gt;Faster builds and a more maintainable architecture.&lt;/li&gt;
&lt;li&gt;General improvements across the CLI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't flashy features, but they make the everyday experience noticeably better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still Local. Still Private.
&lt;/h2&gt;

&lt;p&gt;One thing hasn't changed since the first release.&lt;/p&gt;

&lt;p&gt;TokenCap remains &lt;strong&gt;local-first&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No cloud.&lt;/li&gt;
&lt;li&gt;No API keys.&lt;/li&gt;
&lt;li&gt;No telemetry.&lt;/li&gt;
&lt;li&gt;Your repository never leaves your machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your repository intelligence stays exactly where it belongs—on your computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Every release of TokenCap has been moving toward the same goal:&lt;/p&gt;

&lt;p&gt;Making AI coding assistants understand repositories without developers constantly thinking about context.&lt;/p&gt;

&lt;p&gt;v1.5 is another step in that direction.&lt;/p&gt;

&lt;p&gt;Not by adding more features.&lt;/p&gt;

&lt;p&gt;But by removing one more thing developers shouldn't have to do.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://tokencap.vansharora.app" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/tokencap" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/tokencap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts or feedback if you give TokenCap a try.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Looping vs Prompting: Why I Stopped Writing Better Prompts and Started Building Better Context</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Mon, 29 Jun 2026 00:29:00 +0000</pubDate>
      <link>https://dev.to/vansharora21/looping-vs-prompting-why-i-stopped-writing-better-prompts-and-started-building-better-context-23nj</link>
      <guid>https://dev.to/vansharora21/looping-vs-prompting-why-i-stopped-writing-better-prompts-and-started-building-better-context-23nj</guid>
      <description>&lt;p&gt;I used to think the problem was my prompts.&lt;/p&gt;

&lt;p&gt;Every time an LLM lost track of what I was building mid-session, I'd rewrite the prompt. Add more detail. Be more specific about the architecture. Paste more code. The model would snap back on track — for a while — and then drift again.&lt;/p&gt;

&lt;p&gt;After months of this, I finally diagnosed the real problem: I was prompting when I should have been looping.&lt;/p&gt;

&lt;p&gt;The difference nobody talks about&lt;/p&gt;

&lt;p&gt;Prompting is a one-shot act. You write a request, get a response, and start fresh next time. The model has no memory of what came before unless you manually re-paste it. Every new conversation is a blank slate.&lt;/p&gt;

&lt;p&gt;Looping is a different mental model entirely. Instead of treating each request as isolated, you maintain a persistent, structured snapshot of your project that travels with every context window. The model isn't starting from zero — it's continuing from a known state.&lt;/p&gt;

&lt;p&gt;That distinction sounds small. It isn't.&lt;/p&gt;

&lt;p&gt;Why prompting alone breaks at scale&lt;/p&gt;

&lt;p&gt;Here's a scenario most of you have hit:&lt;/p&gt;

&lt;p&gt;You start a session, paste your codebase overview, explain the architecture&lt;br&gt;
The model gives great answers for 20 minutes&lt;br&gt;
Context fills up. You start a new session.&lt;br&gt;
You forget to re-explain something. The model suggests a refactor that conflicts with a decision you made two sessions ago.&lt;br&gt;
You spend 15 minutes debugging something that wasn't broken — you just lost state.&lt;/p&gt;

&lt;p&gt;This is context drift. And no prompt, however well-crafted, fully solves it. Because prompting is fighting the symptom. The disease is that there's no single source of truth the model can always reference.&lt;/p&gt;

&lt;p&gt;Looping: what it actually means&lt;/p&gt;

&lt;p&gt;Looping means your project has a living document — call it a snapshot, a context file, a manifest — that gets updated as the project evolves and is automatically included whenever you start an AI session.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;p&gt;"Here's my project, it does X, the architecture is Y, now help me with Z"&lt;/p&gt;

&lt;p&gt;You just ask:&lt;/p&gt;

&lt;p&gt;"Help me with Z"&lt;/p&gt;

&lt;p&gt;Because the model already knows X and Y. They're in the loop.&lt;/p&gt;

&lt;p&gt;The loop is closed. Context is continuous. Drift disappears.&lt;/p&gt;

&lt;p&gt;This is what I built TokenCap to solve&lt;/p&gt;

&lt;p&gt;TokenCap is an open-source CLI + VS Code extension that generates a TOKENCAP.md — a clean, AI-optimized snapshot of your entire codebase.&lt;/p&gt;

&lt;p&gt;It's your looping artifact. One file. Every AI tool reads it. You attach it once per session and stop re-explaining your architecture from scratch.&lt;/p&gt;

&lt;p&gt;But the original TokenCap was still prompt-adjacent: it gave you better input for your prompt. The snapshot was static. Useful, but not truly looping.&lt;/p&gt;

&lt;p&gt;TokenCap v1.3.0 — The Task Intelligence Layer&lt;/p&gt;

&lt;p&gt;This is where v1.3.0 changes everything.&lt;/p&gt;

&lt;p&gt;v1.3.0 ships the Task Intelligence Layer — the first version of TokenCap that doesn't just snapshot what your code is, but tracks what you're doing with it.&lt;/p&gt;

&lt;p&gt;Here's what's new:&lt;/p&gt;

&lt;p&gt;🔁 Task-Aware Snapshots&lt;/p&gt;

&lt;p&gt;TOKENCAP.md now includes an active task context block — what you're currently building, what decisions have been made, and what's in-progress. When you start a new AI session, the model knows not just your architecture, but your intent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Active Task Context
&lt;/h2&gt;

&lt;p&gt;Current task: Refactor auth middleware to support OAuth2&lt;br&gt;
Status: In progress&lt;br&gt;
Last decision: Using &lt;code&gt;passport-oauth2&lt;/code&gt;, rejected &lt;code&gt;node-oauth2-server&lt;/code&gt; (too low-level)&lt;br&gt;
Blockers: None&lt;br&gt;
Next steps: Wire up callback route, write integration test&lt;/p&gt;

&lt;p&gt;🔂 Session Continuity Blocks&lt;/p&gt;

&lt;p&gt;Between sessions, TokenCap generates a continuity block — a brief structured summary of what happened, what changed, and where you left off. It's appended to your TOKENCAP.md automatically. No manual note-taking.&lt;/p&gt;

&lt;p&gt;📋 Decision Logging&lt;/p&gt;

&lt;p&gt;Every significant architectural decision you flag during a session gets captured as a structured entry. Future sessions (and future teammates) can see why something was built the way it was, not just how.&lt;/p&gt;

&lt;p&gt;🔃 Loop Mode (CLI)&lt;/p&gt;

&lt;p&gt;bashtokencap --loop&lt;/p&gt;

&lt;p&gt;Loop Mode keeps TOKENCAP.md in sync in the background as you work. File changes, new decisions, task completions — the snapshot stays current without you lifting a finger.&lt;/p&gt;

&lt;p&gt;The mental model shift&lt;/p&gt;

&lt;p&gt;Here's the clearest way I can put it:&lt;/p&gt;

&lt;p&gt;PromptingLoopingYou explain context every sessionContext travels with youModel starts fresh each timeModel continues from known stateDrift is inevitableDrift is structurally preventedBetter prompts = marginal gainsBetter loops = compounding gains&lt;/p&gt;

&lt;p&gt;Prompting is a skill. Looping is infrastructure.&lt;/p&gt;

&lt;p&gt;You can keep getting better at prompting. Or you can stop losing state between sessions entirely.&lt;/p&gt;

&lt;p&gt;Try it&lt;/p&gt;

&lt;p&gt;bashnpm install -g tokencap&lt;br&gt;
tokencap&lt;/p&gt;

&lt;p&gt;The CLI works with any codebase. The VS Code extension generates and updates your TOKENCAP.md from inside the editor. Both are free and open source.&lt;/p&gt;

&lt;p&gt;v1.3.0 is launching soon. If you want to be part of the early access, drop a comment or find me on GitHub.&lt;/p&gt;

&lt;p&gt;npm: npmjs.com/package/tokencap&lt;/p&gt;

&lt;p&gt;If this resonated — or if you've been fighting context drift in your own workflow — I'd genuinely love to hear how you've been handling it. What's your current strategy between AI sessions?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>TokenCap v1.1.0: Teaching AI How to Engineer, Not Just Understand Code</title>
      <dc:creator>VANSH ARORA</dc:creator>
      <pubDate>Sun, 28 Jun 2026 19:36:27 +0000</pubDate>
      <link>https://dev.to/vansharora21/tokencap-v110-teaching-ai-how-to-engineer-not-just-understand-code-3f0p</link>
      <guid>https://dev.to/vansharora21/tokencap-v110-teaching-ai-how-to-engineer-not-just-understand-code-3f0p</guid>
      <description>&lt;p&gt;Most AI tooling today focuses on one problem:&lt;/p&gt;

&lt;p&gt;How do we give the model better context?&lt;/p&gt;

&lt;p&gt;That's an important problem, and it's exactly what TokenCap has been solving through repository intelligence.&lt;/p&gt;

&lt;p&gt;But after spending months using AI coding agents every day, I realized something.&lt;/p&gt;

&lt;p&gt;Context isn't where most failures happen anymore.&lt;/p&gt;

&lt;p&gt;Even after an AI understands the repository, it still:&lt;/p&gt;

&lt;p&gt;Expands task scope.&lt;br&gt;
Rewrites unrelated code.&lt;br&gt;
Skips verification.&lt;br&gt;
Loops on the same idea.&lt;br&gt;
Declares success too early.&lt;/p&gt;

&lt;p&gt;These aren't intelligence problems.&lt;/p&gt;

&lt;p&gt;They're execution problems.&lt;/p&gt;

&lt;p&gt;Repository Intelligence vs Execution&lt;/p&gt;

&lt;p&gt;Repository Intelligence answers:&lt;/p&gt;

&lt;p&gt;What exists inside this project?&lt;/p&gt;

&lt;p&gt;Execution answers:&lt;/p&gt;

&lt;p&gt;How should work proceed?&lt;/p&gt;

&lt;p&gt;Those are two different problems.&lt;/p&gt;

&lt;p&gt;TokenCap v1.1.0 introduces the second half.&lt;/p&gt;

&lt;p&gt;Execution Contract&lt;/p&gt;

&lt;p&gt;Running:&lt;/p&gt;

&lt;p&gt;tokencap agent --execution&lt;/p&gt;

&lt;p&gt;generates an Execution Contract that accompanies the Self-Loading Universal Context Layer.&lt;/p&gt;

&lt;p&gt;Instead of giving AI more information, it gives AI a structured engineering workflow.&lt;/p&gt;

&lt;p&gt;It includes:&lt;/p&gt;

&lt;p&gt;Execution State&lt;br&gt;
Engineering Principles&lt;br&gt;
Decision Framework&lt;br&gt;
Execution Ladder&lt;br&gt;
Scope Tracking&lt;br&gt;
Verification Rules&lt;br&gt;
Change Classification&lt;br&gt;
Recovery Mode&lt;br&gt;
Scope Drift Detection&lt;/p&gt;

&lt;p&gt;This is probably my favorite feature.&lt;/p&gt;

&lt;p&gt;AI agents naturally expand work.&lt;/p&gt;

&lt;p&gt;A simple login fix slowly becomes:&lt;/p&gt;

&lt;p&gt;Authentication → Middleware → Database → Analytics.&lt;/p&gt;

&lt;p&gt;The Execution Contract continuously asks:&lt;/p&gt;

&lt;p&gt;Are you still solving the user's original problem?&lt;/p&gt;

&lt;p&gt;If the scope expands, the AI must explain why before continuing.&lt;/p&gt;

&lt;p&gt;Minimal Solution First&lt;/p&gt;

&lt;p&gt;One habit good engineers have is avoiding unnecessary code.&lt;/p&gt;

&lt;p&gt;Before writing anything new, TokenCap encourages AI to check:&lt;/p&gt;

&lt;p&gt;Configuration&lt;br&gt;
Existing utilities&lt;br&gt;
Existing components&lt;br&gt;
Existing services&lt;br&gt;
Installed dependencies&lt;br&gt;
Native platform features&lt;br&gt;
Existing repository patterns&lt;/p&gt;

&lt;p&gt;Only after exhausting those options should new code be written.&lt;/p&gt;

&lt;p&gt;Confidence Rating&lt;/p&gt;

&lt;p&gt;"Fixed."&lt;/p&gt;

&lt;p&gt;We've all seen it.&lt;/p&gt;

&lt;p&gt;Instead, the Execution Contract encourages AI to produce a verification report that includes build, test, lint status, and an explicit confidence rating before claiming success.&lt;/p&gt;

&lt;p&gt;Recovery Mode&lt;/p&gt;

&lt;p&gt;Rather than silently retrying forever, the AI documents:&lt;/p&gt;

&lt;p&gt;Current hypothesis&lt;br&gt;
Previous attempts&lt;br&gt;
Remaining unknowns&lt;br&gt;
Recommended next step&lt;/p&gt;

&lt;p&gt;This makes debugging far more transparent for both developers and the model.&lt;/p&gt;

&lt;p&gt;The Goal&lt;/p&gt;

&lt;p&gt;I'm not trying to make AI smarter.&lt;/p&gt;

&lt;p&gt;I'm trying to make AI behave more like a disciplined software engineer.&lt;/p&gt;

&lt;p&gt;Repository Intelligence tells AI what exists.&lt;/p&gt;

&lt;p&gt;Execution Contract tells AI how to work.&lt;/p&gt;

&lt;p&gt;Together, they form TokenCap's approach to AI-assisted development.&lt;/p&gt;

&lt;p&gt;This is just v1.1.0, and there's still plenty more to build. But I think the future of AI coding isn't only about adding more context—it's also about improving the engineering process itself.&lt;/p&gt;

&lt;p&gt;Try TokenCap&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://tokencap.vansharora.app" rel="noopener noreferrer"&gt;https://tokencap.vansharora.app&lt;/a&gt;&lt;br&gt;
NPM: &lt;a href="https://www.npmjs.com/package/tokencap" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/tokencap&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
