Hacker News new | ask | show | jobs
by buremba 15 days ago
I would recommend using https://pi.dev/ over Grok Build with your xAI subscription at this point
3 comments

why pi over opencode? earnestly curious, trying to figure out what open solution people are consolidating on. (codex is also pseudo-open but contributions closed and nice)
pi is the neovim of agentic harnesses, its barebones and extremely configurable. if you're the sort of person who likes that sort of things its a forever product, nothing is going to displace it because you have full control.

opencode builds a lot more in, which is better if you dont want to fiddle with config.

> nothing is going to displace it because you have full control

A few months back Pi was working with Gemini. But Gemini support has been removed.

Pi also doesn't work with Claude Code subscription (Anthropic counts tokens used with alternate harnesses separately).

So, in practice Pi is displaced.

Note that that page says it’s against Anthropic ToS to use it with an Anthropic subscription. <shrug>
And there is oh my pi for someone who wants both
nice. i had thought the consensus had moved pretty firmly towards pi, so i was surprised to see Thinking Machines demoing their new model Inkling in OpenCode. wondering if they are previewing an acquisition
OpenCode is a good baseline for "open-source harness with most the stuff already configured an average person will need".
Agree, after spending too much time and tokens configuring Pi and adding extensions to match other harnesses, I switched to OpenCode and left the Pi customization circle jerk. I have other things to do and IMHO harness engineers should do the harness engineering, I don’t want to waste tokens and time to build and benchmark extensions. Pi is great, but would be better with a set of official, trustworthy and efficient extensions, and opt-in to enable it.
That’s basically what oh-my-pi is.
Most of my harness experience is with Claude Code and Pi, a little bit of OpenCode.

I like how quick and snappy Pi is, it feels like a minimal harness, just enough to manage the agent and get out of the way. Earlier models also seemed to have an easier time working with the tools, e.g. GPT-OSS-20B is about a year old and had no trouble in Pi.

Opencode gives you better defaults and a Mac/Windows app for free but pi is much more extensible and portable.
I tried OpenCode but didn't particular like it as a Claude Code user, that is the main reason I switched to Pi. The reason I am sticking is how simple it is to extend it. I moved from Claude Code to Pi and within 2 hours (and the help of Claude Code) I have a setup that matches Claude Code and is even better for my setup.

Things I've added:

1. Built my own AI judge for 'auto' mode that matches my setup.

2. /plan /go for planning and executing.

3. /flow for A-Z setups. That includes planning, executing, testing and shipping.

4. /deep-research a multi fan-out setup for researching a topic.

5. My own sub agents.

6. A TaskCreate/Update/List setup.

7. Monitors.

8. BashOutput / KillShell.

9. Proper notifications with Notify that uses macOS banner and work.

10. Spawn tool that triggers multiple sub agents.

11. A bridge between signal to use Pi remotely.

Yes a lot of these things is something that was already in Claude Code but now I don't have to use Claude Code and I can customize it to fit me exactly.

Pi is good in concept, but why couldn’t they choose a compiled language instead of TypeScript?
I imagine because they want to support plugins, and plugins in compiled language are a lot less natural than plugins in languages like TypeScript or Python.
well neovim does that beautifully
since pi is built to modify itself, isn't it better to use a language like typescript where LLMs have a LOT of training data?

a harness doesn't do any computations by itself so what benefit is using a compiled language?

i find LLMs generally play better with compiled languages actually, they do great with rust. you can think of it almost as analogous to a harness.
The more structure the better. Provides strong guardrails.

I’ve had great experience with Elixir and the new compiler combined with Ash.

They play better with statically typed languages, not compiled ones in particular. Rust's typing is stricter than Typescript though so that probably helps.
For TUIs, Rust/Go vs Typescript doesn't really makes a huge performance difference and you lose the 50x bigger community advantage of Typescript.
It makes a huge memory difference.
Not really because you're not building a database or GUI app where using native elements & data structures help a lot with memory pressure.

TUI renderer is the one using the memory heavily so your terminal takes the heavy lifing. If you're managing the buffers and out-of-screen context good enough, Typescript can be pretty efficient.

I love opencode but it chews through memory on my 64gb MacBook Pro. Can’t have too many long running sessions because the memory use just slowly creeps up.

It’s not about the terminal at all which as you noted accounts for minimal isage. It’s all the internal chat and history and everything else the agent tracks - all of which are smallish (and largish) strings allocated on the heap.

I don’t have the same issues with rust based tuis.

What's the rust based tui that has same capability as opencode?
I would imagine the extension system they built would be much more difficult to manage. They could have opted for Lua, though, I suppose.
I agree, but there are a lot of great reasons for TypeScript:

It's hot reloadable, so any modifications an agents makes can be surfaced in the active session.

Nearly everything is already written in TS which makes integrating Pi into other software, or other software into Pi much easier.

Sorry for self-insert, but that's exactly what I thought and I built https://github.com/gi-dellav/zerostack, so you are right I'd say
Does it matter to you as a user, other than the Nodejs/npm requirement?
Why does it matter? Agent harnesses aren't doing anything that would make a compiled language more suitable than a scripting language.
Opencode is written in Go.
It is written in Typescript.

https://github.com/anomalyco/opencode

There is an archived Opencode project written in Go but I don't think it is affiliated.

https://github.com/opencode-ai/opencode

This is a pretty good summary of what happened:

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

"xAI subscription" what is this referring to? There's a grok subscription but I don't think that gives API access?

Edit: apparently X premium(+?) also gives access to Grok Build, and several third party harnesses are officially supported.