Top
Best
New

Posted by kristianpaul 7 hours ago

Pi – A minimal terminal coding harness(pi.dev)
252 points | 106 comments
CGamesPlay 1 hour ago|
To me, the most interesting thing about Pi and the "claw" phenomenon is what it means for open source. It's becoming passé to ask for feature requests and even to submit PRs to open source repos. Instead of extensions you install, you download a skill file that tells a coding agent how to add a feature. The software stops being an artifact and starts being a living tool that isn't the same as anyone else's copy. I'm curious to see what tooling will emerge for collaborating with this new paradigm.
throwaway13337 46 minutes ago||
I see this happening, too.

We know that a lack of control over their environment makes animals, including humans, depressed.

The software we use has so much of this lack of control. It's their way, their branding, their ads, their app. You're the guest on your own device.

It's no wonder everyone hates technology. It's not theirs. They are made to be subservient to it. People don't like having masters.

A world with software that is malleable, personal, and cheap - this could do a lot of good. Real ownership.

The nerds could always make a home with their linux desktop. Now everyone can. It'll change the equation.

I'm quite optimistic for this future.

hdjrudni 9 minutes ago||
That's just because corporations got greedy and made their apps suck.

Strip away the ads, the data harvesting, add back the power features, and we'll be happy again. I'm more willing than ever to pay a one-time fee good software. I've started donating to all the free apps I use on a regular basis.

I don't want to own my own slop. That doesn't help me. Use your AI tools to build out the software if you want, but make sure it does a good job. Don't make me fiddle with indeterministic flavor-of-the-month AI gents.

axelthegerman 1 hour ago|||
And how great it will be to troubleshoot any issues because everyone is basically running a distinct piece of software
sshine 1 hour ago||
... made minutes ago.
CuriouslyC 43 minutes ago||
The skill for feature thing is just horrible, it's wasteful to everyone but the maintainer. It feels like a YOLO people are getting away with because people drank some kool-aid.
rcarmo 6 hours ago||
My current fave harness. I've been using it to great effect, since it is self-extensible, and added support for it to https://github.com/rcarmo/vibes because it is so much faster than ACP.
baby 53 minutes ago||
Wdym harness? Its a coding agent
furryrain 23 minutes ago||
I think the thesis of Pi is that there isn't much special about agents.

Model + prompt + function calls.

There are many such wrappers, and they differ largely on UI deployment/integration. Harness feels like a decent term, though "coding harness" feels a bit vague.

gusmally 3 hours ago|||
Which ones have you compared it against?
badlogic 6 hours ago||
wow, i love this! was about to build this myself, but this looks exactly what i want.
rcarmo 6 hours ago||
The better web UI is now part of https://github.com/rcarmo/piclaw (which is essentially the same, but with more polish and a claw-like memory system). So you can pick if you want TS or Python as the back-end :)
badlogic 6 hours ago||
if i ever want a claw, i'd obv. go with this :)
rcarmo 5 hours ago||
The claw version’s web UI essentially has better thinking output, more visibility of tool calls, and slightly better SSE streaming. I’ve backported some of it to vibes, but if you want to borrow UI stuff, the better bits are in piclaw. I use both constantly on my phone/desktop.
tmustier 4 hours ago||
I haven’t met a single person who has tried pi for a few days and not made it their daily driver. Once you taste the freedom of being able to set up your tool exactly how you like, there’s really no going back.

and you can build cool stuff on top of it too!

sshine 1 hour ago||
> I haven’t met a single person who has tried pi for a few days and not made it their daily driver.

Pleased to meet you!

For me, it just didn’t compare in quality with Claude CLI and OpenCode. It didn’t finish the job. Interesting for extending, certainly, but not where my productivity gains lie.

esafak 2 minutes ago||
People seem to be really enjoying rolling everything themselves these days...
ck_one 3 hours ago||
What self-built capabilities do you like the most that claude code doesn't offer?
himata4113 6 hours ago||
Preconfigured PI: https://github.com/can1357/oh-my-pi
esafak 1 minute ago||
Why not OpenCode?
virtuallynathan 1 hour ago|||
Big fan of this fork, been using it for everything for the last couple of weeks.

Went from codex/claude code -> opencode -> pi -> oh-my-pi

mijoharas 4 hours ago||
I'd quite like the web tools from oh-my-pi, but able to be extracted to a normal pi tool or plugin... Maybe I should look into that sometime...
mccoyb 5 hours ago||
Pi has made all the right design choices. Shout out to Mario (and Armin the OG stan) — great taste shows itself.
semiinfinitely 5 hours ago|
I do not understand why in the age of ai coding we would implement this in javascript
mccoyb 5 hours ago|||
It’s straightforward: JavaScript is a dynamic language, which allows code (for instance, code implementing an extension to the harness) to be executed and loaded while the harness is running.

This is quite nice — I do think there’s a version of pi’s design choices which could live in a static harness, but fully covering the same capabilities as pi without a dynamic language would be difficult. (You could imagine specifying a programmable UI, etc — various ways to extend the behavior of the system, and you’d like end up with an interpreter in the harness)

At least, you’d like to have a way to hot reload code (Elixir / Erlang could be interesting)

This is my intuition, at least.

jatari 4 hours ago|||
Code hotloading isn't a particularly difficult feature to implement in any language.
jauntywundrkind 1 hour ago|||
Rust can't even dynamically link!

I'm super on board the rust train right now & super loving it. But no, code hot loading is not common.

Most code in the world is dead code. Most languages are for dead code. It's sad. Stop writing dead code (2022) was no where near the first, is decades and decades late in calling this out, but still a good one. https://jackrusher.com/strange-loop-2022/

mccoyb 4 hours ago|||
Sure, but why implement a novel language with said feature if your concern is a harness ... not on implementing a brand new language with this feature?
sergiomattei 4 hours ago|||
I built my own harness on Elixir/Erlang[0]. It's very nice, but I see why TypeScript is a popular choice.

No serialization/JSON-RPC layer between a TS CLI and Elixir server. TS TUI libraries utilities are really nice (I rewrote the Elixir-based CLI prototype as it was slowing me down). Easy to extend with custom tools without having to write them in Elixir, which can be intimidating.

But you're right that Erlang's computing vision lends itself super well to this problem space.

[1]: https://github.com/matteing/opal

sean_pedersen 3 hours ago||||
There is a Rust port: https://github.com/Dicklesworthstone/pi_agent_rust
jauntywundrkind 1 hour ago||
Fwiw @dicklesworthstone / jeff Emanuel is definitely my favorite dragon rider right now, doing the most with AI, to the most effect.

Their agent mail was great & very early in agent orchestration. Code agent search is amazing & will tell you what's happening in every harness. Their Franktui is a ridiculously good rust tui. They have project after project after project after project and they are all so good.

Didn't know they had a rust Pi. Nice.

Blackarea 5 hours ago||||
yes! I just don't understand that as well. Up until some time ago claud code's preferred install was a npm i, wasn't it? Please serious answers for why anyone would use a web language for a terminal app
fragmede 1 hour ago||
Because it's what the person writing it's preferred language.

So it can share code with the web app.

Because writing it in javascript is easier than writing it in raw brute forced assembly.

andai 1 hour ago||||
See also: pz: pi coding-agent in Zig

https://news.ycombinator.com/item?id=47120784

moonlion_eth 2 hours ago|||
i wrote an agent in zig, it kinda sucks tho. the language is just words
rahimnathwani 5 hours ago||
Hugging Face now provides instructions for using local models in Pi:

https://x.com/victormustar/status/2026380984866710002

ge96 6 hours ago||
Is that an official term "coding harness"

Wondering if you wanted a similar interface (though a GUI not just CLI) where it's not for coding what would you call that?

Same idea cycle through models, ask question, drag-drop images, etc...

arcanemachiner 5 hours ago||
Yes. It seems to be the term that stands out the most, as terms like "AI coding assistant", "agentic coding framework", etc. are too vague to really differentiate these tools.

"harness" fits pretty nicely IMO. It can be used as a single word, and it's not too semantically overloaded to be useful in this context.

rcarmo 6 hours ago||
LLM harness has been in vogue for a year now…
outofpaper 6 hours ago||
A harness is a collection of stubs and drivers configured to assist with automation or testing. It's a standard term often used in QA as they've been automating things for ages before Gen Ai came on to the scene.
arcanemachiner 5 hours ago||
Yes, it is also a device used to control the movement of work animals, which farmers have been using for ages before QA came on to the scene.
ianlpaterson 1 hour ago||
Coming from OpenClaw, it's pretty amazing how fast pi is, particularly paired with Qwen3 that dropped today. It's a magical time.
kristianpaul 1 hour ago|
Indeed, it seems to just works with a self hosted Qwen3 coder next.
chriswarbo 3 hours ago||
I've been using pi via the pi-coding-agent Emacs package, which uses its RPC mode to populate a pair of Markdown buffers (one for input, one for chat), which I find much nicer than the awful TUIs used by harnesses like gemini-cli (Emacs works perfectly well as a TUI too!).

The extensibility is really nice. It was easy to get it using my preferred issue tracker; and I've recently overridden the built-in `read` and `write` commands to use Emacs buffers instead. I'd like to override `edit` next, but haven't figured out an approach that would play to the strengths of LLMs (i.e. not matching exact text) and Emacs (maybe using tree-sitter queries for matches?). I also gave it a general-purpose `emacs_eval`, which it has used to browse documentation with EWW.

dnouri 2 hours ago|
Nice! I'm curious to hear how you're mapping `read` and `write` to Emacs buffers. Does that mean those commands open those files in Emacs and read and write them there?

Let me also drop a link to the Pi Emacs mode here for anyone who wants to check it out: https://github.com/dnouri/pi-coding-agent -- or use: M-x package-install pi-coding-agent

We've been building some fun integrations in there like having RET on the output of `read`, `write`, `edit` tool calls open the corresponding file and location at point in an Emacs buffer. Parity with Pi's fantastic session and tree browsing is hopefully landing soon, too. Also: Magit :-)

infruset 6 hours ago|
Note there is a fork oh-my-pi: https://github.com/can1357/oh-my-pi of https://blog.can.ac/2026/02/12/the-harness-problem/ fame. I use it as a daily driver but I also love pi.
More comments...