ShippedCLI layer for agentsJune 2026
Transcend
An agent-native CLI layer that turns terminal output into typed contracts.
Node.js · MCP · JSON-RPC · NunjucksSource
The context tax
Every AI coding agent runs the same broken loop:
- Call a CLI tool (
grep,find,cat) - Receive kilobytes of human-formatted terminal output
- Dump it into the context window
- Parse it with the LLM — the world’s most expensive regex engine
- Repeat
This works on toy projects. On real codebases it physically cannot work. A single ripgrep across a large repository can return tens of thousands of matches, and the standard agent workflow turns that into millions of tokens. No model on Earth has a context window that large — and even if it did, you’d be paying frontier prices to do string parsing.
Transcend makes it trivial: terminal text in, typed JSON contracts out, with 89–93% context reduction and reasoning payloads under 12KB across 24,000+ matches.
“But tools already have --json flags”
Some do. Most don’t. And even when they do, JSON output is not the same as a
typed contract. rg --json emits NDJSON with envelope messages, redundant
path repetition per match, nested stat objects, and begin/end wrappers that
carry zero information for the agent. Multiply by 24,000 matches and you have
megabytes of verbose, tool-specific JSON.
Three gaps that --json flags don’t close:
No normalisation. Every tool has a different schema. rg --json looks
nothing like fd --json. Transcend normalises all of them into one universal
output contract — same shape, every tool, every time.
No chaining without a context-window relay. Even with JSON output, the agent reads results into its context, extracts file paths, then generates the next call. Transcend chains skills in-process. The agent says “search, then replace” once; the intermediate file list never enters the context window.
No cross-tool contract. Raw tool JSON means N different schemas and arbitrary fallback behaviour when a binary isn’t installed. Transcend skills declare their fallbacks, and every fallback normalises to the same schema regardless of which binary actually executed.
Skill contracts
A Transcend skill is a .skill.json file: typed inputs, typed outputs, an
execution template, and a normalisation pipeline. Every field is a contract —
the agent knows what goes in, what comes out, what can chain next, and what
happens if the tool isn’t installed. No guessing, no parsing.
Execution compiles the template through a fast
Nunjucks engine and pipes directly to
native Rust/Go binaries — ripgrep, fd, ast-grep, jq, yq, sd, delta, hyperfine,
scc. The wrapper tax is a myth: emitting rg --json is computationally
cheaper than formatting human-readable text, and the warm MCP runtime makes
Transcend faster than raw interactive rg in practice.
29 typed skills across 9 categories — search, text/data, git, dev, view/sys — 285 tests across 85 suites.
MCP integration
Transcend exposes its skills through the
Model Context Protocol over stdio, so it’s
instantly compatible with any MCP host — Claude Code, Cursor, Zed, Windsurf,
and anything else that speaks the protocol. Discovery is tools/list,
execution is tools/call with JSON arguments, and the return is always
{"status":"ok","data":…} with exact byte offsets, line numbers, and
checksums.
Zero install:
npx -y github:PXINXYZ/Transcend --mcp
Why agents reason better here
Agents reason over structured data, not terminal text. Tool pipelining passes data between tools internally and returns only a summary manifest — no context-window relay, no OS command-line length limits, no heuristic path-parsing failures. The LLM stops being a regex engine and goes back to being a reasoning engine, which is what you’re paying for.
Source: github.com/PXINXYZ/Transcend.