How I learned words matter... ALOT
Iāve spent most of the last week living inside OpenCode, and if thereās one thing Iāve learned, itās that the “Model Context Protocol” (MCP) is both a godsend and a token-eating monster. We’re moving fast into agentic workflows, but weāre hitting a wall: Tool Bloat.
The MCP Handshake Tax
When you connect an MCP server, it doesn’t just “exist.” The host app has to inject the entire JSON-RPC schema into the model’s context. Iāve seen handshakes for complex database tools eat 50k tokens before I even finish my first prompt. This “token tax” is realāit kills reasoning depth and makes models prone to “choice paralysis.”
Skills vs. Tools
In OpenCode, Iāve been leaning harder on Skills (those .md guidance layers) rather than raw execution tools.
- Tools: Preloaded, verbose, and static.
- Skills: Lazy-loaded. The agent only pulls the procedural recipe when it actually needs it.
If you’re seeing your context window evaporate, move your logic to SKILL.md files.
The Permission Surface Area
The permissions you set (allow, ask, deny) do more than just gatekeepāthey prune the context.
- Allow: The model sees the tool and plans around it.
- Ask: The model sees it but knows it needs a “Mother May I” step.
- Deny: The tool is surgically removed from the context.
Pro-tip: If a tool is marked deny, the agent stops trying to use it in its planning phase, saving you from “I can’t do that” loops.
Model Limits: GPT-5-mini is Not a Power User
I’ve been testing GPT-5-mini, and you have to be careful. While the flagship models can juggle hundreds of tools, the “mini” variants often hit a hard limit (around 128 tools) and just crash with a Tool limit exceeded error. If youāre using mini models, you must prune your MCP servers or it simply won’t load.
Crush vs. OpenCode
Apps like Crush handle this differently. While OpenCode is a collaborative powerhouse with its subagent system (Oracle, Sage, etc.), Crush is built in Go and uses LSP (Language Server Protocol) for structural awareness. It feels faster and more stable for single-threaded precision, whereas OpenCode is where I go when I need a whole team of agents to refactor a codebase.
The $400 Doom Loop
Learn from my mistakes: I accidentally triggered a “doom loop” with Claude Opus 4.5. A misunderstood error message caused the agent to recursively query its own history and re-run bash commands. With a 200k+ context being re-injected every turn, I managed to run up a $400 bill before I caught it. Always use “ask” permissions for bash and edit.
Mobile Autonomy: Pi in Termux
The craziest thing I got working this week? The Pi agent (shittycodingagent) running on my phone via Termux.
- pkg install nodejs
- npm install -g @mariozechner/pi-coding-agent
Itās insane to have a full coding agent with clipboard access and filesystem control running in a mobile terminal. I can literally refactor code while I’m out and about.
Updates to the Site
Iāve updated a few things on the main site:
- AI Hot Picks: Check out jelloeater.me/apps/#-ai-hot-picks for tools like Cherry Studio and OpenWork.
- Automation Scripts: Iāve added new install scripts at jelloeater.me/scripts/ to help you set up the Pi agent and other CLI tools quickly using stew or eget.
Stay agentic, but watch your tokens.
ā jelloeater
Reply:
Mastodon Bluesky Email
