M
Mario Zechner
mariozechner.at · Personal blog · on HN since 2024
Mario Zechner, developer known for libGDX and RoboVM, writes about building coding agents, MCP versus CLI, and agentic engineering.
What HN saysHN commenters cite his write-up on the minimal Pi coding agent, including the "bash is all you need" idea and his terminal harness findings.
55HN people shared it
31linked it in comments
31stories submitted
618story points
3 months agolast shared
2024people per year2026
Most-shared posts
- 1What I learned building an opinionated and minimal coding agent23 people · 19 points · first shared 2025 · 1 comments on HN
- 2Taming agentic engineering – Prompts are code, .json/.md files are state5 people · 25 points · first shared 2025 · 2 comments on HN
- 3I've Sold Out5 people · 9 points · first shared 2026 · discussion on HN
- 4Thoughts on Slowing the Fuck Down5 people · 6 points · first shared 2026 · 1 comments on HN
- 5Cchistory: Tracking Claude Code System Prompt and Tool Changes4 people · 7 points · first shared 2025 · discussion on HN
- 6Boxie – an always offline audio player for my 3 year old2 people · 291 points · first shared 2025 · 92 comments on HN
- 7What if you don't need MCP at all?2 people · 237 points · first shared 2025 · 183 comments on HN
- 8MCP vs. CLI2 people · 6 points · first shared 2025 · 1 comments on HN
- 9What if you don't need MCP at all?2 people · 5 points · first shared 2025 · discussion on HN
- 10Mario Zechner: Two years in review2 people · 3 points · first shared 2024 · discussion on HN
- 11MCP vs. CLI: Benchmarking Tools for Coding Agents2 people · 3 points · first shared 2025 · discussion on HN
- 12macOS code injection for fun and no profit2 people · 2 points · first shared 2024 · discussion on HN
- 13How to Build a Shitty Robot2 people · 1 points · first shared 2026 · discussion on HN
- 14Taming agentic engineering: A complex porting job, 7x faster with Claude Code1 people · 3 points · first shared 2025 · discussion on HN
- 15Armin is wrong [about LLM state] and here's why1 people · 1 points · first shared 2025 · 1 comments on HN
What HN people wrote when they linked it
tasuki · 2026-07-06
FYI the name is Mario Zechner[0]. I'm also grumpy and old and also use Pi for the same reasons as you. I also use an OpenAI subscription (the models aren't entirely bad), but am ready to jump ship to OpenCode Go or GLM Coding Plan any minute. And I've been watching the Claude Code shitshow with glee!
[0]: https://mariozechner.at/
andai · 2026-06-07
See also excellent write up on Pi agent harness by its author, where I first heard this idea "bash is all you need".
What I learned building an opinionated and minimal coding agent
https://news.ycombinator.com/item?id=46844822
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
sehugg · 2026-03-25
That's hilarious. I've been following Mario since his work on libGDX and RoboVM.
His blog post on pi is here: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
aadishv · 2026-03-15
You get used to it :) And especially once you get used to the YOLO lifestyle, you end up realizing that practically any form of security is entirely worthless when you're dealing with a 200 IQ brainwashed robot hacker.
I think using the Pi coding agent really got me used to this way of thinking:
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#toc_13
theturtletalks · 2026-02-12
Mario, the creator of Pi terminal agent, has this great blog post[0]. He talks about how TerminalBench's highest scores comes from using the Terminus 2 harness which uses tmux under the hood.
When I was reading the Opus 4.6 launch post, they mentioned the same thing and their TerminalBench score was based on using Terminus 2 and not CC.
0. https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
simgt · 2026-02-06
Very nice. As a consequence of this new way of working I'm using `git worktree` and diffview all the time.
For more on the "harness engineering", see what Armin Ronacher and Mario Zechner are doing with pi: https://lucumr.pocoo.org/2026/1/31/pi/ https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
> I really don't care one way or the other if AI is here to stay3, I'm a software craftsman that just wants to build stuff for the love of the game.
I suspect having three comma on one's bank account helps being very relaxed about the outcome ;)
biddit · 2026-01-27
Yes!
pi is the best-architected harness available. You can do anything with it.
The creator, Mario, is a voice of reason in the codegen field too.
https://shittycodingagent.ai/
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
badlogic · 2025-10-10
I love this! Not just because I also grew up in the 90ies and like your music choice :)
As we drown in media and slop, I think it's super important to teach kids how to be selective, develop taste. And I too found that physical connection does help with that.
Great project and execution. It would be great if you could also introduce a social aspect, i.e. kids sharing/swapping cards.
(Did something similar for our then 3yo, since it's one of a kind, the social aspect is kinda not there. Yet! https://mariozechner.at/posts/2025-04-20-boxie/)
marckrn · 2025-09-29
I'm using Anthropic's pay-as-you-go API, since it was easier to set up on the server than CC's CLI/web login method. Running the bot costs me ~$1.8 per month.
The bot is based on Mario Zechner's excellent work[1] - so all credit goes to him!
[1] https://mariozechner.at/posts/2025-08-03-cchistory/
ramoz · 2026-07-05
As crazy as it may sound, my workflow today does not look too different from a year ago - where I was already heavy into claude code.
Im not certain things will look too different a year from now either. We still have serious bottlenecks in terms of focus/attention you have for both delegating agent work and being able to review it. Even if we solve the "trust what ai does" problem, these cognitive deficit issues still exist - for teams coordinating work, even users adopting new shit, etc.
As an industry we are leaning heavy into accepting "slop" as the status quo - we care more about efficiency of output right now. Slop will get better & we can become more adaptive to living with the paradox of amazing yet delicate systems generated by AI. But I feel big shifts coming in this regard and if/when it does we may find ourselves in the dystopia of broader unemployment with worse net outcomes.
I do think the teams that ship quality with AI will do so by learning to slow down
https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-…
fpereiro · 2026-02-08
Hi HN! OP here. Thanks for reading and commenting -- (and @swah for posting!). It's unsettling to hit the HN front page, and even more so with an article that I hastily wrote down. I guess you never know what's going to hit a nerve.
Some context: I'm basically trying to make sense of the tidal wave that's engulfing software development. Over the last 2-3 weeks I've realized that LLMs will start writing most code very soon (I could be wrong, though!). This article is just me making sense of it, not trying to convince anybody of anything (except of, perhaps, giving the whole thing a think). Most of the "discarded" objections I presented in the list were things I espoused myself over the past year. I should have clarified that in the article.
I (barely) understand that LLMs are not a programming language. My point was that we could still think of them as a "higher level programming language", despite them 1) not being programming languages; 2) being wildly undeterministic; 3) also jumping levels by them being able to help you direct them. This way of looking at the phenomenon of LLMs is to try to see if previous shifts in programming can explain at least partially the dynamics we are seeing unfold so quickly (to find, in Ray Dalio's words, "another kind of those").
I am stepping into this world of LLM code generation with complicated feelings. I'm not an AI enthusiast, at least not yet. I love writing code by hand and I am proud of my hand-written open source libraries. But…
sathish316 · 2025-11-22
The framework has the following capabilities:
1. A way to create function tools
2. A way to create specialised subagents that can use their own tool or their own model. The main agent can delegate to subagent exposed as a tool. Subagents don’t get confused because they have their own context window, tools and even models (mix and match Remote LLM with Local LLM if needed)
3. Don’t use all tools of the MCP servers you’ve added. Filter out and select only the most relevant ones for the problem you’re trying to solve
4. HigherOrderTool is a way to callMCPTool(toolName, input) in places where the Agent to MCP interface can be better suited for the problem than what’s exposed as a generic interface by the MCP provider - https://github.com/sathish316/opus_agents/blob/main/docs/GUIDE_ADD_HIG… . This is similar to Anthropic’s recent blogpost on Code tools being better than MCP - https://www.anthropic.com/engineering/code-execution-with-mcp
5. MetaTool is a way to use ready made patterns like OpenAPI and not having to write a tool or add more MCP servers to solve a problem - https://github.com/sathish316/opus_agents/blob/main/docs/GUIDE_ADD_MET… . This is similar to a recent HN post on Bash tools being better for context and accuracy than MCP - https://mariozechner.at/posts/2025-11-02-what-if-you-dont-need-mcp/
Other than AgentBuilder, CustomTool, HigherOrderTool, MetaTool, SubagentBuilder the framework does not try to control PydanticAI’s main agent…
josh_p · 2026-08-05
Mario talked about the Earendil transition in his blog post here: https://mariozechner.at/posts/2026-04-08-ive-sold-out/
Him and Armin especially, have been involved in OSS for years and have worked hard to build communities around projects they’ve built and maintained. We’ve all seen enough projects become what you’re afraid of, Mario included. I’m optimistic that they’ll keep true to their goal of keeping pi open while building their other products around it. I think they understand the community dynamics necessary to keep a project like pi going. And they want it to succeed that way.
gcr · 2026-07-05
Agree with your critique. I think this work is presenting common ideas as novel without thinking through existing problems. Defining a provider-agnostic event graph that enables full session branching replay was the whole point of pi: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/ , though the language around it perhaps didn’t click until a bit later. I don’t even think pi was the first to do this.
Another critique: the abstract mentions how their system allows for “branch[ing] a run at any event without re-executing the shared prefix,” but that’s only possible with very careful KV caching. Generally, rerunning inference from an earlier point still incurs O(n) input token cost and this paper is working at the wrong layer to see that. In this work, execution refers to tool calls but token generation is the expensive part.
bix6 · 2026-06-16
https://mariozechner.at/posts/2026-04-08-ive-sold-out/
Sounds like it is not related
flexagoon · 2026-05-22
AFAIK the two most popular open source harnesses right now are OpenCode and Pi. They take a pretty different approach, OpenCode includes a lot of features while Pi is very minimal by design and focused on extensibility, to the point where many people are just asking Pi to write a plugin for itself whenever they want it to have a new feature. I personally like Pi's philosophy more and I think its developer justified the choices really well in his blog post:
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#toc_10 (the pi-coding-agent section)
timwis · 2026-05-17
Different harness (pi), but this blog post may partially answer your question: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
chabes · 2026-05-12
Yes. Mario is still “at the helm”, but with help from a team now.
See Mario’s post about the acquisition: https://mariozechner.at/posts/2026-04-08-ive-sold-out/
caspar · 2026-04-24
Not the OP but here is a good example: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
Initially I read it because just it was interesting but it has ended up being the harness I have stuck with - pi is well designed, nicely extensible and supports many model provider APIs. Though sadly gemini and claude's subscriptions can't really be used with it anymore thanks to openclaw.
swah · 2026-04-08
boxerbk · 2026-03-31
Maybe everyone should slow the fuck down - https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-…
alainrk · 2026-03-25
For context, this is an answer to a more pessimistic outlook here: https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-…
raincole · 2026-03-19
This is a better introduction to it: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
I have nothing against Codex's cli or OpenCode. I just found pi is sufficient for me and it's easy to understand what's going on under the hood.
By ChatGPT I mean the subscription plan, not the web UI. I only use gpt-5.3-codex with pi.
solarkraft · 2026-02-25
What issues are you facing with OpenCode?
I looked a bit into the reasoning for Pi’s design (https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#toc_13) and, while it does seem to do a lot of things very well around extensibility, I do miss support for permissions, MCP and perhaps Todos and a server mode. OpenCode seems a lot more complete in that regard, but I can well imagine that people have adapted Pi for these use cases (OpenClaw seems to have all of these). So it’s definitely not out of the race yet, but I still appreciate OpenCodes relative seeming completeness in comparison.
athrowaway3z · 2026-02-19
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
This coding agent is minimal, and it completely changed how I used models and Claude's cli now feels like extremely slow bloat.
I'd not be surprised if you're right in that this is companies / management will prefer to "pay for a complete package" approach for a long while, but power-users should not care for the model providers.
I have like 100 lines of code to get me a tmux controls & semaphore_wait extension in the pi harness. That gave me a better orchestration scheme a month ago when I adopted it, than Claude has right now.
As far as I can tell, the more you try to train your model on your harness, the worse they get. Bitter lesson #2932.
slhck · 2025-07-28
Yeah, look at what https://x.com/badlogicgames has done porting an engine with the help of Claude Code. He's set up a TODO loop to perform this: https://github.com/badlogic/claude-commands – background blog article: https://mariozechner.at/posts/2025-06-02-prompts-are-code/
gawa · 2026-03-27
The part about permissions with settings.json [0] is laughable. Are we really supposed to list all potential variations of harmful commands? In addition to the `Bash(cat ./.env)`, we would also need to add `Bash(cat .env)`, Bash(tail ./.env)`, Bash(tail .env)`, `Bash(head ./.env)`, `Bash(sed '' ./.env)`, and countless others... while at the same time we allow something like `npm` to run?
I know the deny list is only for automatically denying, and that non-explicitly allowed command will pause, waiting for user input confirmation. But still it reminds me of the rationale the author of the Pi harness [1] gave to explain why there will be no permission feature built-in in Pi (emphasis mine):
> If you look at the security measures in other coding agents, *they're mostly security theater*. As soon as your agent can write code and run code, it's pretty much game over. [...] If you're uncomfortable with full access, run pi inside a container or use a different tool if you need (faux) guardrails.
As you mentioned, this is a big feature of Claude Code Web (or Codex/Antigravity or whatever equivalent of other companies): they handle the sand-boxing.
[0] https://blog.dailydoseofds.com/i/191853914/settingsjson-permissions-an…
[1] https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#toc_13
4corners4sides · 2026-02-07
A 77% score on terminal-bench 2 is really impressive. I remember reading the article about the pi coding agent (https://mariozechner.at/posts/2025-11-30-pi-coding-agent/) getting into the top ten percent of agents on that benchmark. It got about 50%. While it may still be in the top ten, that category just turned into one champion and a long of inferior offerings.
I was shocked to see that in the prompt for one of the landing pages the text “lavender to blue gradient” was included as if that’s something that anybody actually wants. It’s like going to the barber and saying “just make me look awful”.
This was my first time actually seeing what the GDPval benchmark looked like. Essentially they benchmark for all the artifacts that HR/finance might make or work on (onboarding documents, accounting spreadsheets, powerpoint presentations .etc). I think it’s good that models are trained to generate things like this well since people are going to use AI to do such anyway. If the middlemen passing AI ouputs around are going to be lazy I’m grateful that at least OpenAI researchers are cooking something behind the scenes.