Your AI agent reads
too much. We fix that.

AI coding agents waste tokens reading entire files. Packet28 compresses what your agent sees — a 9,243-line file becomes ~40 relevant lines. Result: 3x more work per context window, and up to 164x fewer tokens on large-file reads.

Works with: Claude Code · Cursor · Codex · Copilot · Windsurf
$ npm install -g packet28
capabilities

What it does

READCompresses file reads

Your agent tries to read a 9,243-line file. Packet28 intercepts it and returns only the ~40 lines that matter for the current task — plus anchors back to the full file. No wasted tokens on irrelevant code.

without packet289,243 lines
The whole file enters the context window. Most of it is never referenced again.
with packet28~40 lines
Only the regions the task touches, with file and symbol anchors to fetch more on demand.
MAPMaps your repo

Builds a structural map of your codebase — files, symbols, dependencies — so the agent navigates directly to relevant code instead of exploring blindly.

MEMRemembers across sessions

A background daemon persists context between agent restarts. Pick up where you left off without the agent re-reading your entire project from scratch.

SETOne command setup

Auto-detects Claude Code, Cursor, Codex, Copilot, or Windsurf and configures everything. One command: packet28 setup --root .

architecture

How it works

A Rust workspace of 28 crates in five layers. Reducers compress artifacts, the runtime decides what the agent sees, and every output carries the same envelope.

Agent surface
packet28-agent wrapper · agent-prompt generator · MCP surface
CLI + daemon
Packet28 CLI · packet28d daemon · task / watch / stream protocol
Context runtime
kernel · scheduler · memory & recall · assembly · correlation · policy & guard · agent state
Reducers
diffy · covy · testy · stacky · buildy · mapy · proxy
Shared contracts
EnvelopeV1 · BudgetCost · FileRef / SymbolRef · Provenance
When it can’t compress safely, it gets out of the way
  • A command that policy excludes, or that can’t be rewritten safely, passes through raw.
  • Unsupported reducer families run raw, and the fallback reason is recorded in the tool result.
  • If pre-tool rewriting isn’t available for your runtime, activity is captured post-tool instead.
  • If the daemon or preferred search backend is down, reducers and search run locally.
benchmark

The numbers

Real benchmark on a 12MB Java codebase (534 files).

WITHOUT PACKET28
139,000 tokens
WITH PACKET28
849
164x
fewer tokens consumed
Task: "Understand StringUtils.wrap and fix null delimiter handling"
Naive agent reads entire 9,243-line files. Packet28 serves ~40 relevant lines + anchors.
Bars are not to scale — at true ratio the Packet28 bar is 0.6% wide. Large-file reads are the best case; across a full session the typical result is ~90% less search overhead and about 3x more work per context window.
quick start

Up and running in 30 seconds

×
terminal
# install globally
$ npm install -g packet28
 
# set up hooks + MCP in your project
$ packet28 setup --root .
✓ Detected runtimes: Claude Code, Cursor
✓ Hooks installed. MCP servers configured.
 
# verify everything works
$ packet28 doctor --root .
✓ All checks passed.
specs

Protocol & format specs

The wire formats everything above is built on, written down.

founder

Built by

Utsav Sharma
Founder
linkedin →
·