A unified toolkit for efficient and effective coding agents (Karpathy principles, Caveman, Ponytail, RTK, CodeGraph, Context-Mode). Minimal setup under 30 seconds. Any OS.
A unified pipeline for efficient and effective coding harnesses.
One tool, no config — works the moment it lands.
Introduction
Many packages help coding harnesses work more effectively and efficiently. The best tools already exist; wiring them well is the real work. Tokless brings together specialized tools, each with a distinct purpose, and manages them with minimal setup.
✅
Clear purpose — best tool for each job, wired without conflict
✅
No overload — minimal MCP tools with clear, unified instructions
✅
Zero config — works as soon as installed, in under 30 seconds
✅
One place — install, update, and manage all tools across every configured harness
Interactive install detects installed harnesses. First pick tools, then pick harnesses:
tokless # interactive: choose tools, then harnesses
tokless --agents claude,opencode # wire just these harnesses
tokless --tools rtk,codegraph # wire just these tools
Per-project memory: issues, attempts, fixes, decisions, auto-captured from git.
MCP tools
Three tools run as MCP servers. Headroom and rtk wire through their own mechanisms (proxy, hooks, plugins) — no MCP needed.
Upstream those three expose 27 tools. Tokless spawns each server through a bounded proxy that filters its tool list, so 10 land in your context — 17 are trimmed automatically, at install, nothing to configure.
Context Mode wiring. Always the latest 2.x. OpenCode loads it as a config plugin (no MCP entry) and hides the admin tools via permission deny. Other agents use the MCP proxy, which exposes 4 tools: ctx_execute, ctx_batch, ctx_index, ctx_search. 1.x users must run tokless update.
ProjectMem is the case that matters. Its 12 read tools (get_summary, get_plan, …) are replaced by a memory block pushed at session start — hook, plugin/extension, or rule file depending on the harness. Nothing to call: only the 5 writers stay on the list. tokless doctor reports the exposed set.
Usage
tokless # install + wire everything (safe to re-run)
tokless --agents claude,codex # wire only these harnesses
tokless --tools rtk,codegraph # wire only these tools
tokless --dry-run # preview every write, change nothing
tokless update # upgrade CLI + all tools
tokless self-update # upgrade the tokless binary only
tokless doctor # health: tools, harnesses, routes
tokless doctor --fix # start proxy / build index, interactively
tokless info # install paths, config locations
tokless index # build this project's codegraph index
tokless disable --agents claude # unwire harnesses (keep installed tools)
tokless disable --uninstall # unwire + remove installed binaries
tokless uninstall # same as disable --uninstall
tokless proxy up | down | status # headroom proxy (accepts --agents)
tokless proxy autostart on | off # start headroom at login (default: on)
Wiring is the product: after install, everything runs on its own — no runtime commands from you.
Tool
How
When
principles · caveman · ponytail
Instruction block (rules file)
every prompt — always in context
rtk
hook · plugin · extension · cordis patch
every Bash command — rewrite + compress output
headroom
local HTTP proxy + route in config
every model API call — compress prompts, route BYOK + OAuth
codegraph
MCP server (codegraph_explore)
on demand; index builds at first connect
context-mode
OpenCode plugin · MCP proxy elsewhere (ctx_*)
on demand — large files / logs stay out of context
projectmem
MCP server + context injection
~2000-token memory block at session start
INSTALL ─┬─ rules block principles · caveman · ponytail
├─ MCP entries codegraph · context-mode · projectmem
├─ rtk mechanism hook · plugin · extension · patch
└─ headroom route local proxy 127.0.0.1:8787
SESSION ─┬─ codegraph index built on first connect
└─ projectmem block injected before the first prompt
WORK ────┬─ prompt → rules + project memory ride along every turn
├─ Bash → rtk rewrites the command and compresses output
├─ think → codegraph_explore: source, callers, blast radius
├─ big → ctx_* keeps large files and logs out of context
└─ API → headroom compresses prompts, routes BYOK + Grok OAuth
Without tokless, the harness re-reads the raw tree every session, Bash output lands uncompressed, and nothing survives between sessions. Tokless inverts all three: indexed code, compressed commands, persistent memory.
Foreign (non-tokless) entries are never overwritten; tokless verifies its own entries after every write and reports the result in tokless doctor.
OpenCode v2 resolves its config dir in this order: OPENCODE_CONFIG_DIR_V2, then ~/.config/opencode2 (wrapper convention), then the shared ~/.config/opencode (plain v2 default). v1 keeps the original shape; v2 entries additionally carry the v2 forms, and unwires are version-scoped.
Headroom — the local proxy
Headroom is the one tool with no MCP. It is a local HTTP proxy between your harness and the provider: prompts pass through, get compressed, and continue to the original provider. Tokless wires the route at install and starts the daemon.
harness → 127.0.0.1:8787 (Headroom) → provider
Port
Role
8787
Main proxy — anthropic-native (Claude Code) + gemini-native (Antigravity) + openai-compatible (Grok BYOK; Copilot reaches it via its 8790 / 8789 wrappers)
18787
BYOK gateway — named providers (qwencoder, nvidia_nim, cliproxyapi, cline) with your own keys
28787
Grok OAuth — Headroom-owned login proxy
8790 / 8789
Copilot CLI / VS Code wrappers
Grok uses Headroom on both paths: its BYOK base_url is rewritten to the shared daemon (8787/v1), and its OAuth login runs on a Headroom-owned proxy (28787). Cursor’s proxy route is deprecated and Amp is never auto-wired — those two stay on their native provider.
Manage it with tokless proxy up | down | status. Turn start-at-login off with tokless proxy autostart off (or tokless init --no-autostart). --agents scopes any of them to one harness, and down --agents <list> leaves shared Headroom running for the rest.
评论