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.
badlogic 1 hours ago [-]
wow, i love this! was about to build this myself, but this looks exactly what i want.
rcarmo 1 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 1 hours ago [-]
if i ever want a claw, i'd obv. go with this :)
rcarmo 46 minutes 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.
mccoyb 47 minutes ago [-]
Pi has made all the right design choices. Shout out to Mario (and Armin the OG stan) — great taste shows itself.
semiinfinitely 28 minutes ago [-]
I do not understand why in the age of ai coding we would implement this in javascript
mccoyb 22 minutes 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.
25 minutes ago [-]
alvivar 22 minutes ago [-]
One thing in its favor is that it was kind of easy and simple to extend and contribute to and share extensions. JavaScript/node is still the biggest dev environment. The same can be said for OpenClaw.
Blackarea 23 minutes 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
muratsu 20 minutes ago [-]
I’m working with a friend to build an ui around Pi to make it more user friendly for people who prefer to work with a gui (ala conductor). You can check out the repo: https://github.com/philipp-spiess/modern
ramoz 16 minutes ago [-]
In the same spirit, I also ported a planning UI extension for Pi.
Pi ships with powerful defaults but skips features like sub-agents and plan mode
Does anyone have an idea as to why this would be a feature? don't you want to have a discussion with your agent to iron out the details before moving onto the implementation (build) phase?
In any case, looks cool :)
EDIT 1: Formatting
EDIT 2: Thanks everyone for your input. I was not aware of the extensibility model that pi had in mind or that you can also iterate your plan on a PLAN.md file. Very interesting approach. I'll have a look and give it a go.
ramoz 48 minutes ago [-]
See my comment in the thread but there is an intuitive extension architecture that makes integrating these type of things feel native.
There are already multiple implementations of everything.
With a powerful and extensible core, you don't need everything prepackaged.
ge96 1 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 17 minutes 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 1 hours ago [-]
LLM harness has been in vogue for a year now…
outofpaper 1 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 20 minutes 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.
jmorgan 2 hours ago [-]
I've been using Pi day to day recently for simple, smaller tasks. It's a great harness for use with smaller parameter size models given the system prompt is quite a bit shorter vs Claude or Codex (and it uses a nice small set of tools by default).
rpastuszak 15 minutes ago [-]
Which models do you use and what for? I'm looking for ideas to play with.
ramoz 50 minutes ago [-]
The way you’re able to extend the harness through extension/hook architecture is really cool.
Eg some form of comprehensive planning/spec workflow is best modeled as an extension vs natively built in. And the extension still ends up feeling “native” in use
51 minutes ago [-]
suralind 34 minutes ago [-]
I’ve been testing it for a few days on pretty much clean install (no customizations/extensions) and it’s ok. Not sure if I like it yet.
arjie 2 hours ago [-]
Has anyone used an open coding agent in headless mode? I have a system cobbled together with exceptions going to a centralized system where I can then have each one pulled out and `claude -p`'d but I'd rather just integrate an open coding agent into the loop because it's less janky and then I'll have it try to fix the problem and propose a PR for me to review. If anyone else has used pi.dev or opencode or aider in this mode (completely non-interactive until the PR) I'd be curious to hear.
EDIT: Thank you to both responders. I'll just try the two options out then.
fred_tandemai 51 minutes ago [-]
Been using pi exactly for this and it's working great!
evalstate 54 minutes ago [-]
fast-agent lets you do this as well (and has a skill in its default skills repo to help with automation/running in container/hf job).
rcarmo 2 hours ago [-]
You probably want to look into pi then - it's extremely extensible.
I do this with an extension. I run all bash tools with bwrap and ACLs for the write and edit tools. Serves my purposes. Opens up access to other required directories, at least for git and rust.
I think I published it. Check the pi package page.
fjk 46 minutes ago [-]
I’ve been tinkering with Gondolin, a micro-vm agent sandbox.
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.
https://plannotator.ai/blog/plannotator-meets-pi/
https://x.com/victormustar/status/2026380984866710002
Does anyone have an idea as to why this would be a feature? don't you want to have a discussion with your agent to iron out the details before moving onto the implementation (build) phase?
In any case, looks cool :)
EDIT 1: Formatting EDIT 2: Thanks everyone for your input. I was not aware of the extensibility model that pi had in mind or that you can also iterate your plan on a PLAN.md file. Very interesting approach. I'll have a look and give it a go.
https://github.com/badlogic/pi-mono/tree/main/packages/codin...
There are already multiple implementations of everything.
With a powerful and extensible core, you don't need everything prepackaged.
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...
"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.
Eg some form of comprehensive planning/spec workflow is best modeled as an extension vs natively built in. And the extension still ends up feeling “native” in use
EDIT: Thank you to both responders. I'll just try the two options out then.
I think I published it. Check the pi package page.
Here’s an example config: https://github.com/earendil-works/gondolin/blob/main/host/ex...
Anyway, even if you give your agent permission, there's no secure way to know whether what they're asking to is what they'll actually do, etc.