I used to use ChatGPT/Claude in the TUI up until like 3 months ago, but my usage of LLMs has exploded - many sessions across many projects. I feel like I outgrew the TUI and now I'm using ChatGPT/Claude desktop. VS Code has become a code review tool and place where I manage git if need be.
The GUI is less verbose with the nitty gritty hidden in expandable sections, which makes history easier and cleaner to scroll through, also no scrolling bugs, rich text is easier to read with tables, and images integrated into the chat, resources like browsers in the context of the session. Drag and drop session organization (pins), scheduled tasks, etc.. all that in the side bar.
Usually a TUI would be open in VS Code and scoped to whatever repo I'm working with so 10 projects, 10 VS Code instances open, not super scalable. With the GUI desktop app it's one app, and I can start sessions in an repo and switch between them easily, no need to open VS Code for each. I don't see what could make me want to go back to using a TUI.
Who else is just using the GUI nowadays, or are you still on the TUI, and why, have you tried the GUI interfaces?
I just ended up making my own GUI. I never really liked any of the pre-build ones. It started slow (3-4 days of work) and grew organically around my working style. I can also have my preferred UX (e.g., high information density).
Take a look at the Codex App Server or the Claude Agent SDK as a way to communicate with harnesses running headlessly and build your own UI on top. I’m sure Pi can be set up in a similar fashion.
I've been building my own open-source coding agent, VT Code, in Rust.
I wanted more control over the harness itself, especially tool execution, sandboxing, approvals, and context management.
Recently built a native macOS app with GPUI on top of the same agent runloop. It's been interesting exploring how the same engine works across terminal and desktop workflows.
I did this for myself several times. I started with winforms and evolved into a full blown clone of ChatGPT.com experience built as a razor/MVC project in .NET10.
I have 2 versions that are just for working on unity projects. One that is for working on the client project. There is also one that I refer to as the ring of power / Death Star that I keep mostly to myself. Eventually, the client saw what I was doing and decided they wanted a custom ChatGPT.com experience for the whole team, so I got paid to build the most recent one.
Using AI to assist with the development of this stuff is the RSI you've been looking for. I'm in a situation where I was only able to solve a problem due to two levels of bootstrapping enabled by custom harnesses. The product the client uses cannot be "one shot" using the latest frontier tools. I had to build an ad-hoc agent loop fit for just that one purpose using another tool that was possible to build via copilot. For example, using copilot in VS over a unity project's scripts might as well be a drunk person throwing darts from a boat compared to a purpose built harness that can execute ad-hoc scripts in the editor environment as often as it pleases.
The client's custom experience is better than ChatGPT.com in many important ways now. It certainly performs better. It will run on safari without doing horrific things to layout and my CPU. You can easily exceed the capabilities of the frontier AI companies in ways that are important if you use their tools cleverly. These companies are great at making AI models. Not harnesses, websites, apps, etc.
Could you share what the custom harness does better? I'd also like to build my own custom harness and any tips/tricks that aren't already widely known would be very welcome!
I have the same setup. All you need is a server hosted on your own machine and a few adapters to connect them to providers using ACP and various thin client all connected through tailnet. I have developed my own web and mobile applications with gemini live full duplex routing to opus my local projects and maintain the same session across any platform I choose, including Hermes. Building personal software is easy these days.
I thought the TUI was the ultimate power tool and loved the original embrace from claude code. I still use TUI a lot, but have been using deepseek harness web app atop my local model and am already liking the better organization and UI of this interface. I can see my load shifting to it. But you are right, you almost always need a VS Code interface open as well.
The outputs of Opus 5.5 were so much easier to read, but I do find the the deepseek web based tool much easier to comprehend for some reason. Plus I can access it from phone (over tailscale) as well when out and about and continue sessions very easily. AND it is all open source/weights. I'm pretty thrilled, but it's been less than a week.
People seem to forge Claude has a very powerful GUI as well. I don’t get why most still seem to be using it in the terminal instead. A bit like emacs. The GUI is infinitely superior to use!
Look, it's just a tool, you are a developer, you've used TUIs all your career, this is just one more TUI, no different than your beloved Vim or Emacs. No need to be scared, this won't replace you because mere mortals won't know what to do with a TUI, so you can use it freely and get more work done, just as you were always obsessed with doing when configuring your Vim bindings.
Then, a year in, when everybody is hooked line and sinker, people start to understand that the TUI is the least important part of the whole thing, and the model and harness are what really matters.
Claude Web app includes Claude code tab with remote option to work from your own machine (if preferred). I am using it very often.
I have a project folder which is my default environment, and within it I have my many repo clones. That way I can work on any project from my prompt and reference elements in one project to include in another.
I've been using deepseek lately (just the chat interface on hobby stuff) and it's frankly better at searching the web and writes less like it's trying to bullshit its way through pretending to know what it's doing, i think it is just easier to understand. Unfortunately it also is more often wrong, or more often writes bugs, but i guess in a harness that's kinda mitigated -- it does usually find its earlier mistakes ime
And it's so fast! Claude often thinks for >60s which drives me insane for simple questions. Maybe it's also the configuration of the harness, but at least the web interface of Deepseek already has half a page written after a single second - a bliss!
I dislike the harness TUIs for this for the same reasons. Nothing against TUI in general, the lazy* universe for example is great.
OpenChamber (the desktop app, not the VSC extension) for OpenCode currently works best for me. Especially because of its seamless remote control via their iOS app.
""GUI is less verbose with the nitty gritty hidden in expandable sections, ""
? The GUI has nothing to do with that.
If you use Chat / Work / Code <- that's the differentiation.
So 'Code' in 'Gui' is identical to Claude Code except for the visual layout.
If you use Work or Chat, which are not optimized for Coding you'll see a different experience.
If you use iTerm or Ghostty and set a key combo to switch tabs you can very easily switch between tabs and the TUI generally gives more dense information.
Usually people migrate to TUI not the other way around.
I think that there are reasons to use GUI - if there is deeper integration with Git or an issue tracker - or - in VSCode - for navigating files etc. - definitely those things are valid.
But for raw AI the getting a TUI to work the way you want it is ideal.
I don't get why people love TUIs so much. They're basically GUIs made using inferior tools. Why hammer in a nail using your fist if you have a hammer handy?
A GUI is strictly more powerful than a TUI (because a GUI could just show plain text in cases where that is the most appropriate mode of interaction, E.G. Bloomberg, AMadeus), but it could also do so much more in cases where it is not.
I do love terminals, don't get me wrong. When what you're interacting with is CLIs and Unix tools in a shell, a terminal is exactly what you want. I do love the Unix philosophy, I like small and composable tools that you can use together, and I think the interactive way of working that a shell or REPL can give you is great (though notebooks would have been better, but that's beside the point). Those are things that the terminal shines at. Pretending to be a GUI is not one of those things.
> 3. Often much easier to drive with automation software (agents/scripts)
TUIs? Not really. TUIs aren't composable, CLIs are.
Now, many TUIs also have a separate CLI mode built-in, but guess what, many good GUIs also have a built-in CLI.
TUIs are also frequently harder to automate via click-click than decent GUIs, since mature GUI toolkits tend to have built-in accessibility and I doubt anyone has ever programmed extra accesibility into any TUI in history, outside of the default keyboard access they get because they're inherently character driven (though that can take you quite far).
As a daily screen reader user... you can't build accessibility into a TUI. You literally can't. There are no APIs for it. This is, in fact, one of my frustrations with TUIs and why I think GUIs are better in principle.
Are you saying I should go back to GUI? I just feel it’s so awkward. I have LazyVim for more advanced review, Hunk, etc… the GUI is like a inferior version of Eclipse IDE or something. Or it used to be, atleast.
It's because you can ssh into something and VNC sucks.
GUIs are great when you're sitting in front of the computer it's running on. Trying to do anything remotely with them is terrible. RDP is pretty great at making that experience suck less tho.
Ironically, remote work is the main thing I use Claude Desktop (and mobile) for. When I work locally, I’m usually happy with the TUI, unless I need a lot of equations or images. When I work remotely, keeping the SSH connection alive or juggling tmux sessions is too much of a hassle, and running the remote session from Claude Desktop/mobile is more comfortable.
Claude has a killer feature for me with that remote-control command.
Spawn a Claude TUI where you need it and take remote control with no friction.
I tried it in codex and they messed up the flow so bad. You need to add a device oauth token every time you set it up even though it's already logged into your account.
Just a heads up, I build Cosyra, a mobile terminal app, so this problem is something I've been considering a lot. For the SSH side, mosh fixes most of it. And for the tmux sessions I use a leader terminal who does all the juggling for me. Remote control is great, but then I'm completely locked into using Claude which, for me, does not work.
Have you heard about sixel or the kitty graphics protocol? I. what makes me a terminal terrorist, I've got an adaptation of cat on my GitHub where you can cat an image in the terminal, and if you're using a modern terminal, it'll display the graphic.
You can but with agents you might want a security boundary/faux-airgap between the agent and your machine. I don't think you should trust X11/Wayland forwarding to maintain strong isolation against a malicious server in that scenario.
TUIs are superior in that case because they cuts the attack surface down to a regular SSH session.
Agreed. I sandbox agents using containers which also allows me to inject credentials and all sorts of things.
I think there's 2 clear layers in these coding tools: the runtime engine that lives ON the system, can execute commands, read/write files, make network calls and the UI, which can be a local (TUI) or remote.
A remote UI allows you to manage multiple remote runtimes concurrently and can even be on your phone.
Anyone preferring Desktop vs TUI is not managing multiple systems I would guess.
It should be three (four) layers, and that seems to be the emerging architecture for agents.
Layer 1 is the frontend (TUI, GUI, phone app). Layer 2 is the brain / harness (the thing that stores sessions, connects to MCP servers and decides what to do next given the latest model answer). This part would ideally run in the cloud, and be independent of the particular ephemeral sandbox you run your commands in, or the particular phone you view the transcript on. Layer three is the hands (the thing that actually executes tool calls on a machine), this should be a small utility that the brain connects to over ssh, or a local Unix socket if colocated.
Personally the Claude Code TUI also sucked every time i used it. Scrollback bugs in IDEA embedded shells, extraneous output vs the VSCode extension, and unreliable links to source code.
Isn't the CC TUI written in React?? I mean my web dev "all i have is this hammer" brain is intrigued, but surely, there's better things to do? Like you said, the terminal is great for piping inputs and outputs, for scripting, for bulk operations. It's really not great for real time interaction across many files, which is how i use CC and kind of wonder how you would use it any other way. (I guess if you literally just prompt and pray, the UI literally doesn't matter?)
Most GUIs are designed in a way that I dislike. It’s true that terminals lack power compared to GUIs, and some GUI apps (Bloomberg, Blender, …) are reasonably well designed for their use case, but most GUIs are such a disaster that it’s almost more fun interacting with them via curl to an API or SQL directly to a database.
The other problem is that all the GUI apps look different. I really want one extremely powerful, composable GUI “framework” that all apps sit within. Ideally I could even decompose and recombine parts of different apps into new tools or workspaces.
Now that anyone can build a GUI by prompting LLMs, maybe we’ll get actually good GUIs, or at least be able to build our own, but up to now the direction of travel has been disappointing to say the least.
Most agentic UIs are structured exactly the same regardless of the interface. TUIs are not composable in any possible meaning of that word (unlike CLI/REPL), they are GUIs on a fixed cell grid. Real TUI aren't unified either.
They are rich TUI but they remain somewhat scriptable environments. From the plain claude -p to run Claude code unattended, all the way to setting up hooks, MCP tools and injecting key presses. Complex and hackish yes, but probably not worse than attempting to automate fully GUI tools like Claude desktop which is meant to automate stuff, not the other way around.
All that is completely UI-agnostic and not related to GUI/TUI distinction in absolutely any way. Keypress automation is terrible, if you have to resort to jank like this you'd better use something like AT-SPI (which no TUI implements) or at least DOM manipulation and userscripts on web, although I've never seen a use case for that, sanely designed agents are malleable enough to avoid it.
The point is that I agree with the OP, terminals are fundamentally unfit for applications like agents that are not REPL and need complex interfaces. All attempts to fit them into it I've seen are 99% cargo cult, like the entire TUI zoo that keeps layering the cruft just because people are culturally averse to clean first-principle designs or put pretentious "aesthetics" first. Just look at the amount of misconceptions voiced ITT. This incidental complexity is destined to snowball into web/Electron-like Rube Goldberg machines pretty fast, and I guarantee you will hate it. It's already spinning out of control with agents.
Because a minimum viable GUI is way worse experience than a minimum viable TUI. Also GUIs take more skill in order to feel performant, which many companies do not possess (just look at various documentation webapps that take >100ms just to navigate between really simple mostly-text pages. Horrible).
Good GUIs with full keyboard functionality are definitely better than TUIs though. There's just no guarantee that some solo dev'd GUI for a brand new workflow can meet that standard.
I went the same way but found that the GUIs (Claude and Codex Desktop) are still too low-level to scale well. They are basically just tabbed chat windows. I wanted more structure and more targeted UX for managing my work. It's easy nowadays to build your own GUI, so I did.
(I found it's still quite some work to polish it so that it's actually good. Therefore, sharing it could still benefit others, so I did: obeya.si, free, open-source)
> Who else is just using the GUI nowadays, or are you still on the TUI, and why, have you tried the GUI interfaces?
I generally prefer GUIs but I'm OK with a TUI harness. Anyway, there's a web frontend for Pi (https://github.com/agegr/pi-web) which looks very promising although it still has some rough edges. They even have an interactive demo: https://agegr.github.io/pi-web/
I went from TUI and tested several GUIs that can also support a "TUI" view.
After testing several options at the moment I'm using Orca IDE as my daily driver - effectively as a layer on top anthropic / openai
- Supports both anthropic and openai with subscriptions and can you swithc easily between those two + other LLms
- Its a bit hidden / non intuitive to setup but it does support running everything on remove host -> I run (95%) of my jobs on remote hosts that I can both access from my laptop + their native app via a wirguard vpn
- You can switch between chatview + TUI on the same conversation - very useful if you move e.g. from desktop session to mobile view.
- For repeating LLM tasks Orca also suports a kind of scheduler - but I prefer currently to have the agent set things up via chronjobs on the remote machine (not super happy with this ...)
Key reason I dont want to go fully ChatGPT/Claude is also I dont want to build a super strong dependency on those mega players and remain the ability to switch to other interefernce providers / models.
As LLM usage is already a core workflow in our company - a sudden unavailability of one or a massive price increase - makes it absolutely necessary to build out alternatives.
We all know the downsides of SAAS Lock in too well from the 2010s. In that sense Fool me once, fool me twice..
+1 on the Orca and remote machine. I've basically turned it into my own Claw machine. It does super well at letting me remote in across 3 computers and phone and hitting all the same sessions. I have one master session that is always kept alive as my main "agent", and spin out other full sessions from that.
It solves the crappy user experience of the CLI vs using an SSH terminal in VS code. (Easy copy pasting, everything formatted correctly, etc.) I created my own version of artifact hosting with a simple "mailbox" page on the box - every session can drop it's html reports off there nicely.
Completely agree on being able to flex out to different models. I'm using Claude Code as daily driver given the insane subsidies we are getting. But want something where I can switch easily onto the open weights, etc.
I kinda built a "mailbox" style feature for models to dump images in, its really annoying to chase down the goofy spots they decide to dump images for review otherwise, my web ui just gets a little popup when the images are ready to review, i review them and send them back and it injects my response into the session.
> Key reason I dont want to go fully ChatGPT/Claude is also I dont want to build a super strong dependency on those mega players and remain the ability to switch to other interefernce providers / models.
Pragmatically I agree with you, but I also believe that the landscape ahead is going to look so different that locking in to current tools won’t do anything to lock you in to near-future tools
Orca looks neat, but also super dangerous. It runs everything in yolo mode and actively fights staying in any sandbox you try to put it in.
TUI's might not have the best UI ever, but its much easier locking them down via something like nono.sh. I can sleep at night and not have to worry where my keys and .env files are being sent.
Yeah I tried going to GUIs aswell but ended up writing my own Terminal manager called switchboard. Since then I've tried a few others, like T3, which is pretty decent, but still keep coming back to Switchboard. It supports both Claude and Codex CLIs together with project grouping organization.
I built my own app Tomrade to do all my jobs in one place, it comes with an agentic built-in task management system like kanban board, and split-panel terminal. actually now I use Tomrade for everything except for code review, which I still use Orca. Having to say that Orca is doing a good job as ADE, so haven't had a plan to make another ADE inside Tomrade. https://tomrade.com
I switched to the GUIs half a year ago and never looked back.
From the text rendering and scrolling alone, they are much more pleasant to work with.
Conversations with activity and MR status indicators, nested sessions, images in the chat, and generally more information and functionality on the screen.
One negative is that it gives Claude, and particularly Codex, room to mess up with auto-opening artifacts.
Codex, when I was still using it, kept opening report or comparison pages in fullscreen when I did not ask for artifacts.
Claude loves to open its iOS simulator pane, but somehow never displays the one it's actually using, instead showing a simulator that is idle. It might be related to my custom tooling.
No idea what you're working on, but if it's anything involving sifting a lot of data, how do you know if your code actually works or does what Claude says it's doing?
Some of it is the historical snobbery that CLI users have for GUI users. I count myself among them. Isn't it way cooler how I can fix my NIC with just three chained bash commands, while the windows users have to navigate 8 levels of dialogues?
But that mentality doesn't leave room for a lot of nuance. Even the most hard core TUI proponents and neovim gurus probably do not use Lynx as their browser (well maybe they use a vibe coded hacker news TUI client instead)
Paseo has been pretty amazing at getting more autonomy. It's the way the agent profiles work. It is effectively a fully adaptive "auto-harness" with just the tiniest amount of config.
Fully switched from TUI 4 weeks back while testing it out for another use case.
I also like the inner text display of the GUI more, but the window management of it terrible IMO. On my Mac I have 3 desktops open, one for "private" and two for a project each. With the Claude TUIs I just have 1-5 open terminals per desktop, each with its title neatly set automatically. With the GUI app, I can only have 1 open, not one per desktop. It seems you can open several very reduced versions of the Claudr app with a single chat but that didn't work well for me. So that's why I'm still with TUIs..
Im also using the desktop apps (codex/claude). Using the tui doesn’t bring any advantage anymore. I can drag and drop pdfs, images, i have the browser view, can easily switch between conversations, fork them at any point.
I use whatever IDE to review the code, read tests, etc. I used to use the terminal for everything prio AI, but not anymore.
You can drag and drop files in the TUI. You can also paste in images. With tmux you have forking, and tmux windows are fully scriptable, and controllable via your agent. I have them run shell tasks in tmux windows so I can see what they’re doing.
Just GUI now. I can also connect to Mac Codex from my phone and have a voice chat with it. Collects all my work in projects, can jump in and out anytime. Can start a project on the phone, move to Mac. (Almost) No sync issues, which I found the TUI/phone had.
I find TUI scales better for multiple concurrent agents across the same and different codebases, especially using tools such as herdr. I can fire off an agent, which runs sub-agents. Then check-in periodically to re-steer as needed or be interrupt driven for completions of tasks. I can't see how vscode/GUI is better for this?
Herdr looks similar to the Jetbrains Air stuff they just added to their IDEs. You can have GUI sessions in tabs, label them, tag them, stick them in folders, archive them, put them next to the code that's being changed, etc.
Does CC desktop support non-Claude models? That could be a big one. Herdr works pretty seemlessly with any model provider and different harnesses, like Pi.
This seems to be the new meta for a segment of the HN crowd, and I'm struggling to understand how it works. I'm at most having 4 sessions parallely, and even then I am burned out after a full day of this. How can you keep up with what all the agents are doing?
From the people around me doing this - they aren't keeping up, they aren't looking at the finished project/product, then throwing it over the wall for others to triage. Rinse and repeat. Definitely fits some people's personalities, but not mine.
It's less 12 projects and more 1 project + 11 changes/experiments. Complex projects still get the most attention, but I do a lot more work which may end up being discarded, and agents pick up any tasks which would've otherwise landed in the backlog. Update dependencies here, rebase this branch, start working on this issue, change this and benchmark it, etc.
I guess the main benefit of herdr is it essentially flags the state of agents and what needs attention. So you can have multiple ones running and quickly go to the ones that need an input.
I think there _is_ a way to do this nicely in a GUI btw, which I've been toying with as a side project. Basically... build it as a trello style board.
And it's not 12 projects, its multiple tasks, e.g. 'look at this crash for me', 'fix this extension in my pi env that is doing something bad', 'debug this high memory usage', etc. etc. It's easy to just fire tasks off and come back to them later. The project ones usually require more human focus ofc.
> I think there _is_ a way to do this nicely in a GUI btw, which I've been toying with as a side project. Basically... build it as a trello style board
It took me like 500k tokens to vibe a similar kanban board for OpenCode desktop (I took orca and herdr as references). It is a v2 plugin and I love it. It does what I need across all my projects, I tweak it the way I need, and it's much more convenient than the native tab panel.
I've found an agent to manage agents, plus aggressively creating skills/workflows helps.
The main agent is the entry point:
"review this PR" should open a new workspace and spin up one or more agents to do whatever review workflow you like.
"Implement ticket xyz" should open a new space, read the ticket content, plan/write/test/review/create a PR without much managerial input. You'll still need to answer questions and check work between steps, but all of the busy work can be done by your agent(s) with skills. If they get it wrong, update the skill.
Same for "research this bug report/product question/error trace".
what? herdr and gui interface for this look very similar aside from being able to have 12 windows open at the same time in herdr but i don't want that?
For me the tight integration with Claude Artifacts (and whatever OpenAIs copy of those is) is super value-able for me. The biggest bottleneck for me is gathering all my thoughts and analyzing what needs to be done.
I was a long term user of the TUI and tools like cmux / herdr but now I find it much easier to actually focus
Check out https://open-artifacts.com - it gives you that and much more. It also allows your agent sessions to talk to each other regardless of which machine they’re running on. It’s free and OSS. I’m the creator - happy to answer questions.
I’ll send this to the team at my company. No one likes feeling vendor locked in on artifacts but they are great at being like “hey I had an agent cook on this topic over night, here are the results, and what we need to make a decision on”.
Just some feedback for corporate use - it’s not clear to me from the landing page if it’s really intended for internal company use and if it’s hard tied to CloudFlare. I.e. if there was a “here’s how you can deploy it on AWS in 2 minutes” option I would just toss it on our dev env and show people a POC.
With open source projects we’re increasingly worried about supply chain type risks - it would be good if there was some boilerplate on “this is how you know this can be deployed internally and have zero risk of phoning home etc”
Hey, great feedback. I'm currently re-doing the landing page as the project has expanded quite a bit (including native annotations/comments, presence, inter-instance collaboration/sharing, Yjs based real-time collaboration for agents and humans, etc).
Currently this works using Cloudflare Workers (and Durable Objects). This provides your agents with trivial tools to make realtime multi-player artifacts. Some demos include (all made by DeepSeek v4.1 Flash in ~5-10m each:
Exactly. It is based on Cloudflare primitives to give real-time/multiplayer capabilities to artifacts. It also comes with a bus (originally made it as a separate project https://open-bus.ai, but made it all into one project).
The problem I'm trying to solve for myself is: I want to have a single place where me and my collaborators (my agents, other humans and _their_ agents) can all come together and do work efficiently. It's like a Google Docs/Drive but for the AI era and not tied to any one AI lab.
What do people mean that VS code can not support 12 sessions? I never do that, but 3-4 in parallel is fine, and I don't see why it would not support many more.
I do use multiple windows though, I never liked mutiple workspaces in the same window, it also makes contexts blow up I find.
Kepler had a really nice issue tracker integration but the UI was very vibey and not quite as to the point as I'd like (who needs graph visualization of what the agents do, just give me tools that work), and Paseo had a really nice UI that I could use to drive both Codex and Claude Code, but some OpenCode agents would sometimes hang and I didn't have tools to really do anything about it.
Maybe I should also give JetBrains Air a look again, if I ever end up subscribing to them again (I just moved to Zed for my code editing): https://www.jetbrains.com/air/
Interesting space, with so many additional tools popping up! That said, the OpenCode TUI was really pleasant too.
I actually just decided to cancel my Jetbrains account, and your comment made me think about trying Air before I go.
I went to my Jetbrains Toolbox, and it's not there.
I went to the site, and there are 3 options:
Install it as a plugin to one of their other IDEs. This feels really stupid to me.
Air Teams. This isn't widely available yet, and you have to ask nicely and be put on a list. No go.
Air CLI. I honestly don't know WTF this is doing that I couldn't just do from the CLI with my existing agents. I already have Antigravity (for planning) using Claude for implementation and all I had to do was ask Antigravity to set it up.
They really need to get their stuff together over there at Jetbrains.
Don't forget about their AI Assistant (agentic but mostly chat focused plugin) and Junie (a harness, that you can apparently use through Air too), people have critiqued them about it being messy, but tbh OpenCode for example has TUI, web and desktop versions heh.
Oh to make things more interesting, Air also has a mobile option too, adding to the list. Odd to couple it with an IDE though since you have various IDEs for various stacks (e.g. IntelliJ IDEA vs WebStorm vs GoLand, unless you just shove a crapload of plugins into IDEA) and agentic tools don't always need all of that.
To be fair though, they're probably scrambling to keep up with the AI craze because it cuts into their margins A LOT and throwing everything they can at the wall. Shame they killed Fleet, could have been a cool basis to compete with Zed (or VS Code, more directly) and integrate Air there or something.
>Shame they killed Fleet, could have been a cool basis to compete with Zed (or VS Code, more directly) and integrate Air there or something.
JB’s wheelhouse is human-oriented code authoring, they own it. That realization is the fundamental reason they abandoned Fleet: as with VS Code and others, Fleet was draining their talent and would have resulted in a tool that wasn’t best-of-breed in any one category.
This situation reminds me of the beginning of the end of Borland’s demise: they spent nearly two years writing OS/2 versions of all their language products, suspending innovation and progress across the board, and allowing the competition (Microsoft) to catch up and begin to hire away their talent.
This story doesn’t perfectly align with JB, but it definitely rhymes. I hope they switched gears soon enough.
> Fleet was draining their talent and would have resulted in a tool that wasn’t best-of-breed in any one category.
Visual Studio Code, but JetBrains would have been pretty cool, especially when you want something that supports other modes of work (e.g. ADE). Now VSC/Zed fills that role and JetBrains don’t compete with them, now even to upsell to their full IDE for more deep work.
Air was a standalone app, but it wasn't clear why and they got feedback that this wasn't wanted. You can have the exact same GUIs and functionality integrated into the IDE and it's a pure functionality upgrade. For example, Air in IntelliJ/their other IDEs lets you do things like execute SQL queries on connected databases from the chat box and have the results be sent straight to the model.
There's a school of thought that says IDEs are history, their functionality is now worthless etc. But apparently lots of people don't think that.
I guess I'm one of those people too, because I tried the Air standalone app but it didn't gel for me for some reason. But I tried Air in IntelliJ and it immediately clicked. If models were always perfect and their work never benefited from reviews or changes, fine, you could argue the IDE is pointless. But it's been years and I've not yet found a model where that's true. You can slop for a while if the project isn't that important but for the stuff that matters, human intervention still changes the quality slope quite a lot.
Are any of these tool currently able to do things like follow my own custom routing logic. At the moment I have some python code that is checking my various provider api balances and usegaes, and available free tokens, and making a routing choice based on this when creating subagents, but its getting a bit unwieldy. I wonder if these agent management tools could have this in their flow.
Not that I know of! You’d probably either need to alter their source code or make your own local OpenAI/Anthropic API proxy that routes stuff wherever you want. I think that’s what most folks would do.
I graduated from Claude Code to Herdr to now T3Code.
T3Code can do anything I might need such a tool to. It supports a bunch of different harnesses, therefore also subscriptions. It supports running agents on different servers, from the same GUI. Mobile app that works well. Orchestration that allows any agent to orchestrate others in T3Code directly.
I'm using pi with herdr/ovis, which gets me both a GUI and a TUI. There's a Chat/Terminal switch, which is just a different view of the same pi session. It's got a decent mobile web UI, and I've been really liking it so far.
I am not a terminal head, but I find it simpler to drop into a dir and codex from there. In the GUIs, I often mistakenly end up under the wrong tab (Chat/Work/Code) and if I am in Chat, sooner or later the thing will ask me to switch to Work. On the other hand, the GUI provides the history of threads. I semi defeated this by using hooks to write questions and answers to an SQLite db.
I’m being slowly forced to use a GUI at work, and it’s fine, but I simply prefer the TUI.
I use:
claude agents
Granted, I run it as a terminal tab in my editor so that I can look at files. I prefer the TUI in a tab instead of the editor’s half-assed plugin. These days, however, I mostly look at PRs in the browser.
For my personal work I still prefer to let the agent edit the local files so I can preview the changes in my editor. I avoid PRs in my personal work.
I switched to the Linux desktop as soon as it was available to avoid all of the TUI rendering bugs and restore sensible copy/paste. I was using vscode's git panel to review diffs before they got committed, but had a feeling that there had to be a way to make agents pull harder so my review wasn't always the long pole in the tent.
Imagine a local GitHub PR web UI (thanks to difit), married to your agent for real time in-context discussions, and built-in skills to teach agents how to write easy to follow PR, focusing on both why's and hows.
Reading these comments I'm also curious about this.
I'm currently using some custom bwrap scripts (like [1]) to isolate projects with their own vscode /w claude extension
The desktop app I wonder if is worse because your web chat is accessible. In my bwrap sandbox, obviously some claude auth token is approved for using claude code, which I could be wrong but assume is limited and can't reach into web session history.
No I’m not using any GUI because (1) I regularly ssh to many different computers without any GPUs to run Claude; (2) the sandboxing tool required by work is built for TUIs because it highly restricts many kinds of file accesses including ioctls but basically exempts fd 0 and 1. I don’t think /dev/dri even exists in the sandbox; the Firefox browser does not run inside it.
I do not find the arguments against TUI convincing but that is just my experience. I use ghostel and searching in the conversation is so easy. I do not see any major scrolling bugs; I see a couple of small rendering bugs easily worked around by pressing C-l. I work on many projects simultaneously too but I do not understand the need to open one editor instance per project; I have one emacs for everything.
I also have that, and have been absolutely in love w/ the ssh capabilities of both Claude and Codex desktop apps!
I have a single history of sessions on my laptop, in the cloud and on various ssh machines. The app makes it easy for me to see at a glance which agent session is where etc
especially that I can also hop into these sessions from my mobile using the app.
I've tried many ssh terminal tools for the phone, but an agent I can talk to that is working on the remote machine is such a great form factor!
Went from TUI to gui. Main reason because I mostly let the computer do the work and control it from the phone. Was doing that over ssh but the remote web tools are better. Had to write my own wrapper for antigravity because how the google login is handled but hey. That’s what LLMs are for.
I also wrote a chat app between my machines that works over tailscale and can run agents on each.
This is actually the thing that drove me to the GUI. You can just setup connection via ssh without thinking about it. A lot of my projects either live in a VM or VPS and so using herdr was okay, but the latency was getting to me and swapped to Codex and Claude Code desktop which make it super easy to just add remote machines over ssh and then there is no latency etc.
You can run claude/gemini daemons on remote boxes and then use claude desktop app or antigravity or even just the web browser to drive the workflow from your preferred endpoint (laptop or even mobile phone). For me personally this is the best of the both worlds, especially considering that daemons run on env that is close to production, and my client is just a view into it, and GUI part of it allows for more efficient and more rich experience of going through the requirements, spec writeups, code generation and finally experiments. Writing, compiling, debugging, testing or profiling the code manually is no longer done by me directly, and this was the main use-case for me previously preferring and using TUI based tools such as tmux+vim.
Agreed, though I'm still sometimes preferring terminal just because the "split and do something on the side" UX is still much less friction than any GUI app I've worked with.
Main confusion in GUI is that it’s usually a list with sessions changing order in the list. Hard for muscle memory. In a split pane TUI I always know where a session is. Let’s say I have 5 columns, each is a specific repo or customer project, and each column might have multiple sessions for multiple tasks, vertically split. It’s basically two dimensional session overview/ table. Any GUI that has this?
I mostly use TUI because it's convenient, my editor already has good terminal management and keybindings. The GUI I reach for when it's a longer task I don't have interest in writing myself. Anything important in my projects I still prefer to write myself so I use the TUI more because the sessions are just me asking a few questions / requesting a build or dependency fix
So is the link to the article, here, that you think the switch to this GUI would be better than the switch to Pi? Otherwise I don’t really see the link to the blog post.
The TUI thing always felt like a gimmick to me, it lets non-technical people feel like they’re doing something technical.
I switched from a TUI to OpenChamber, Paseo and now T3. The main features I need are :
-Annotate code diffs and LLM replies.
- Manage multiple agent windows and a branching workflow. I like to ask a lot of questions and go down rabbit holes.
- LaTex rendering.
I will switch to Zed for deeper code exploration and git management.
None of these tools are super mature, I only went with T3 because it seems the furthest along and it’s mobile apps are great, but I see a lot of progress being made as people start to accept that the TUI is more gimmick than optimal workspace.
I’m very confused by the replies to this, I have a native GUI for pi, and it enforces all the sandbox policies, remote access, etc. I want while also giving me buttons and nice text rendering. It’s really not that hard to make.
Biggest reason I hate TUIs for chats: copy/pasting text from a terminal fucking sucks. Super limiting. (Not that I’m copy pasting code around, but even copying stuff to a message or spreadsheet, or even to a terminal to run myself)
I can't deal with first party anthropic clients because they're not open source. Think about how long it took them to relent on supporting AGENTS.md. Being subject to that kind of hostile imposition is a non starter for me when such excellent open source alternatives exist.
I don't use the first party codex clients because they don't offer the same level of control as Pi. I just can't live without `/tree` and the ability to use headless neovim as my prompt editor. Maybe there's a decent plug-in system for codex at this point but it would have to actually be superior to pi's for me to consider switching, since I prefer to keep a single harness for all my agents (both OAI's and actually open AI like Kimi), but I might if the product were compelling enough.
As for well-designed open-source third-party harnesses; I'm not at all opposed to GUI. I used conductor and liked it, but again was disappointed by the level of control it provided. And once you get comfortable enough in tmux, it's actually pretty difficult to get a better user experience from a GUI. For instance, scrolling and using the clipboard in tmux are both far more powerful and convenient for me than dragging the mouse or spinning it's wheel. But I anticipate there being a really excellent GUI harness at some point!
I've always been bewildered by how people seem to prefer TUI for any of this. It's just a strictly worse experience across almost every dimension.
I was using vscode copilot chat for years, but recently got fed up with its bloat, as well as the fact that their supposed unified experience across desktop, web etc just doesn't work.
I tried various gui tools and settled on Open Chamber. Extremely happy with it after a few weeks full time usage. Rarely open vscode.
> The GUI is less verbose with the nitty gritty hidden in expandable sections
Much of the nitty gritty is hidden in expandable sections in Claude Code in the terminal now too. Complete with mouse clicks to expand.
> Usually a TUI would be open in VS Code and scoped to whatever repo I'm working with so 10 projects, 10 VS Code instances open, not super scalable.
For my part I'd left-arrow in Claude Code, which gets you the agents backgrounded, so you can switch to any of them in any terminal. Then if I feel the need to look at the code separately I'll work on that in a separate tab. I use a few scripts to assing a default working directory per virtual desktop, so any terminal I open in a given desktop is scoped to the project I work on there anyway.
Not trying to convince you to switch - whatever works for you. For me the TUI harnesses + other terminals in a tiled setup is integrated enough that an IDE doesn't feel worthwhile.
Im still on Emacs with the awesome agent-shell. The use of LLMs have made code review the top prio for any serious development. I basically did a custom theme that shows git diffs inline, then hook that to magit. The final thing is the review process, here i can "talk" to an LLM directly from the code, and ask for changes, or a rewrite when i see slop.
This has been a solid setup, and a must have for agentic development.
Claude Code - TUI scrolling bugs and overall no project history is annoying. Having all your projects on the left in the GUI, gives me some peace of mind. I usually had several terminal tabs open previously.
I've tried the ChatGPT/Codex GUI and actually liked it. However a big part of my workflow relies on multi-agent orchestration between codex and claude code, which is still much easier to achieve in the TUI with tools like herdr.
Pi is a good harness (I finally gave it a try w/ abliterated GLM), but not with Anthropic subscription, and there are multiple reasons to avoid alternative harnesses with their models in general (imho):
1. Potential ban due to ToS violation;
2. It doesn't follow all Anthropic's communication mechanisms out-of-the-box, they heavily use custom headers, hidden flags, and undocumented API features that affect models' behavior;
3. Compact is better in CC (significantly);
4. Cache related nuances (I mean, A\ regularly messes up with cache even in CC, their caching is non-trivial);
5. It's almost unavoidable to use Pi's extensions, and I wouldn't trust my oauth token to anything third-party (take a look at regular reddit/X posts where people getting banned due to such leaks and abuse) -> it takes enormous amount of hacking on top of Pi to get closer to CC abilities.
CC has hooks and mods, even ui_* (undocumented) protocol if you need some big customization, those are enough to implement whatever you want on top of CC.
Also, I'm working with CC from the very first versions, as for me - it's the best harness (as-is) on the market. I have zero clue what problems people are talking about (except known big issues, 3-4 over the years, I've never had serious problems, at all). Seamless and smooth experience, optimized for Anthropic models.
P.S. You can consider this as Stockholm syndrome effect, but... you have close to zero chances to get unbanned with Anthropic, and it's the best coding model(s) available today.
> 4. Cache related nuances (I mean, A\ regularly messes up with cache even in CC, their caching is non-trivial);
I'd be curious to know the background around this. At work, I've used @anthropic/Opus 5.5 through Portkey with Pi, and ended up with $10 within less than 10 message exchanges, on a fairly trivial topic. OTOH, when using Claude Code directly with Opus 5.5, I basically spent $30 for a good back-and-forth across a full chat, reaching the point where CC kicked off compaction.
I've only used CC and Pi and the point of pi is to use extensions. Luckily you can write them yourself pretty easily.
I cannot get behind CC is the best harness. Once u switched to pi I knew I was never going back and occasionally I need to use CC for my subscription and find it unpleasant. CC is just this incoherent hodge podge of functionality that seems to have no vision. Subjective, of course.
I was under the impression that using Pro or Max from any harness but Claude Code was clamped down upon and likely to result in a ban so haven’t pursued it.
You can still use harnesses/adapters that use ‘claude -p’ to connect behind the scenes. But the billing is extremely unclear, and it sounds like they use ‘more plan per token’ than just using Claude Code.
The Support page is very unclear, mentioning that you now get an allowance of tokens (and not mentioning the Pro plan at all in that section), and also saying that they’re backing off on plans they previously announced in June without saying what those those plans were, or what the status quo before them was:
Zed GUI allows you to do it it's very straightforward, you click on new Claude thread, subscription, your browser opens, you allow the access and that's it.
Yeah this was also my impression, which is why I asked.
Claude seems to think that the only possible path is piping through `claude -p` in the CLI, but Pi doesn't do that out of the box. There are extensions (e.g. opius) that do, and it's not clear if A\ will ban you for it.
I use both but I’m fairly new to Pi. For now things that I notably miss in Pi are plan mode and subtasks. I was also a bit surprised that it doesn't have default permission mode (deny all) like CC. It’d make sense when using an open router model. But I haven’t used extensions that much yet, so who knows what features I’m overlooking. I don’t see myself dropping CC for now though.
Isn't plan mode just a "make a plan first, don't change anything yet" addendum to your prompt? Haven't tried Pi, but given it's famous extensibility, that should not be too hard to build.
If you really want a “plan mode” you can ask Pi to add it. This is the strength of Pi. It isn’t opinionated far past excellent execution.
Anything extra you can add yourself. You just ask whatever model you’re using to query the documentation included in the pi application and then its away.
My base instructions for all harnesses say something like "when the user asks you to do something that seems like it would be complex, come up with a plan first."
I switched to Pi and it was great but I had to switch back to Claude Code purely for the subscription. Even with all the token efficiency I built into Pi it just wasn't nearly as good value as an Anthropic subscription. All open models ended up being more expensive so I switched to using an OpenAI subscription, which was better, but the OpenAI subscription is way less generous AND their models are behind. It became hard to justify.
An Anthropic sub is $200/mo, max. I only use open weight models, but the reality is that $200/mo Anthropic sub is way better value per dollar than an open weight model. I use open weight models for other reasons, but I have to limit myself to flash, and I am very controlling of which providers I use to keep the price down, and I still come out a little worse than Anthropic for my monthly bill.
I don't know how you use your agents and what kind of work you are doing, but my experience is that in terms of pure output per dollar, you cannot beat an Anthropic subscription with an open weight model.
I'm not saying you don't get good value out of your $100, I'm sure you're doing great, but I'm also absolutely certain if you followed the exact same workflow with an Anthropic subscription you would get better value.
The large open models (GLM-5.3, Kimi3, etc) are far more expensive than their large closed equivalents (Opus, Sol), because the closed models are far more subsidized when using subscriptions.
If you see no difference at all in between Opus and Deepseek Flash for your work, that is great! Personally, I found the latter to be unusable for the projects I was working on.
I switch harnesses regularly depending on the model providers, and I only use skills which are universally usable in any model and harness combination. I don't want to get tied to a particular model or harness, and skills provide me the freedom to do so.
I can include any custom programs I need in a skill, and the SKILL.md file is just a doc of how to use those. It helps me save tokens and ensures determinism with repeated workflows since redoing a task is just calling a skill's program.
I also load only skills that are necessary for a project. I don't want to pollute the context window with unneeded skills.
I use pi with zero extensions after they added MCP natively. I switched to pi the first time Claude decided to get itself stuck in a loop with a bunch of work trees, sub agents and unresolvable merge conflicts. I don’t want Claude deciding when to use sub agents and work worktrees. I also like using the same harness regardless of which model I want to use.
You can write your own compaction function for Pi, and you can even have different, domain specific compaction logic if you want. The default one is dumb, I agree.
I've been using claude-bridge [0] and pi-vcc [1] for compaction and it has been a complete life changer. I'm slowly phasing out my Anthropic use for Mistral but I've used it for months without issues.
It is lossless, and comes with a search tool (called pi-vss-recall).
It summarises the context, but doesn't touch the full conversation history. At the end of compacted context, there is a small note that tells the LLM to use pi-vss-recall to search for a specific keyword if needed.
I tried it out thinking it would suck, but I've been compacting this way for over 6 months now and I am not going back. Somehow, magically, it works great for me at least!
Most harnesses are not designed with conversations to be append-only from the start, which causes us all endless pain when caching is concerned.
When making a harness, it is so, so easy to do the "web thing" and have your system prompt be a template where you dynamically inject variables like the current date or the contents of the current working directory, and then just re-render that template on every request. THis is a bad, doubleplusungood, terrible, awful idea, and you should never do this under any circumstances. Anthropic will soon force you not to by literally refusing conversations that "break continuity" in this way and do anything but append new user messages at the end, but other providers at least appear to work.
I don't think I've seen opencode change the system prompt of a conversation, nor pi (though I have less experience there). Is there a specific scenario you're referring to where this could happen?
That's an old, closed issue. I think this has worked since the release of OpenCode v2, it looks like they added the ability to send update messages for the environment here: https://github.com/anomalyco/opencode/pull/30789
I haven't noticed any cache busting happening at midnight, but I'll pay more attention in the future just in case.
Of course the lack of any care for submitted issues or follow up from the devs is a long term known issue with Opencode, but it's not what we're talking about here.
I agree. They are probably solving problems we don’t know are problems, beyond UX (like caching). That’s one of the reasons I prefer CC over Pi. Codex is pretty nice too, with respect to UX.
Regarding credentials, my base instructions shared across all agents and all harnesses is that all credentials are accessed through a specific powershell script and should never be shown or written to file. This seems to work with pi, opencode.
> they heavily use custom headers, hidden flags, and undocumented API features that affect models' behavior;
This is exactly why you'd want to use Pi. All these flags and updates to claude code break so many workflows and give a different experience every time you use it. It's highly inconsistent and very annoying.
I just want to point out that you’re allowed to use Claude-* models that aren’t a part of your subscription. For example, the ones hosted on openrouter.
Anthropic insists your use of models hosted by them just go through API billing, which is more expensive.
Don’t do sketchy things to use you sub with pi. That’ll get you banned.
Anthropic gives monthly API credits for Max and higher subscriptions, equivalent to the subscription cost (so you pay $100 for the Max plan, and you get the normal subscription usage, plus $100 worth of API credits each month). My understanding is you can use those credits with any harness because they are normal API credits that you can use with an API key.
They won't last as long as the subscription itself (they are spent at API prices) but you can use at least use pi.dev with Anthropic models without violating the ToS.
I became interested in how the harness works internally so I could try to implement my own small AI agent in a business project. And I realized that right now, most of the model’s efficiency lies precisely in the harness. And that there’s a whole complicated world inside it, one that will soon become more complex than the models themselves.
All my experiments using third-party harnesses for code-writing agents showed that if a model is used in a non-native harness, it sometimes burns through 5 times as many tokens, and the results are worse. That’s why I now use MCP calls not to the models directly, but to new sessions within their harnesses.
Now, almost every day I see new announcements about coding agents with bold claims about their superiority. But in none of them have I seen a clear description of how they’re better or exactly how their architecture for working with models is superior to the original harnesses.
As I understand it, Pi is like "Lego" for building your own harness. But do you know what happened after I’d been using real Lego for half a year? I have 15 kg of it loose in three bags. My son and I have almost given up on the idea of sorting it out and actually using it properly. It’s pretty much the same story with my MCP, plugins, and skills for Claude.
Non trivial software projects of course require a bit more organization than most kids will devote to their legos. The ideal solution is to keep your software small and simple so you barely need to think about organization, but if you can't keep it small and simple, then you better not let it turn into a 15kg bag.
Pi is much smaller and simpler than cc, and it's a finished product, not necessarily DIY "legos". You don't have to build plugins for it, and many people say it's superior to CC / codex / OpenCode out of the box. If you do want to build plugins, it already provides you with a well organized system to build around.
Pi is without contest the best harness. Because it’s yours, the total control is the only way to move from driving agents to orchestrating them.
My interruptions and frustration with llms has gone down a cliff. It’s amazing to see what just a few lines of system prompt really can do to keep agents doing the correct thing much more often.
Second this, I went from Claude code fighting me all the time and being insanely opaque with its internals to Pi with detailed telemetry about what my agents are actually spending time on. My entire harness is completely custom, and works exactly the way I want it to. Absolutely love Pi
> Pi is without contest the best harness. Because it’s yours
You can do this with any harness. I really dislike the Node.js ecosystem and avoid Pi and the like. I started with another one written in Go that has all the basics and I can extend it in minutes for anything I need while keeping track of upstream.
What's your point? You avoid the node ecosystem even when you have no contact with it at all by running a binary?
I couldn't care less what my binaries use as long as they are safe, have low footprint and are performant.
I recently found Zot. It’s basically a younger Pi written in Golang and distributed as a single Go binary. The author is very fast with fixing bugs and it has grown to a state where I use it for most things now!
OpenCode is a worse design in several ways. But the worst part is they don't really respond to issues or pull requests and support is nonexistent. Been in multiple issues with a dozen people begging for a fix with no response. So we all do what we can but there's no one community fix. A ton of OpenCode functionality gets broken constantly because they have almost nonexistent regression tests nor e2e tests for all the features. When they do break it you have to go to Discord and hope someone from their team sees that they broke something, and hope they want to fix it or take a PR for it. This is also ignoring the massive memory leaks that were just accepted as normal.
But with Pi being barebones and intended to be customized, there are a million extensions to choose from compared to OpenCode. This means not only can you write your own extension easily, 5 other people already have. I forked one popular question-asking tool and added support for an external ui (Zenity). And an LLM provider (Synthetic) had a bug which I helped get fixed in a 3rd party extension for the provider. Both I got done in days, because I didn't have to go through some official Pi team; extensions distribute the work better. It's still hard to manage all the extensions, but better than the alternative.
Why would you not ask opencode to fix the issue for you instead of asking opencode folks to ask their opencode to fix it for you? Surely Maintaining your own fork is just one markdown file and one corn task away.
OpenCode builds a lot of stuff into the agent core; I'd need to fork OpenCode. But let's say it was fixable in an extension. I'd need to maintain that fork/extension forever, re-fixing the bug and patchset for every upgraded version, re-patching the software every week. Everyone would have to do this, not just me. This is why "just fork it" is never a practical solution.
I know people who really like OpenCode. I think the experience is pretty similar to Claude Code in that it's set up, out the box, with a specific wat of working. If you like it, then great, if not, you're kinda stuck.
Obviously you can add skills/rules/prompts/etc, but I don't find those are particularly great at being stuck to.
Pi is much more minimal, so if you have strong opinions about how you want to work with LLMs, you'll have a much better chance of bending the to your will.
With minimal work, you can get DSH web to be exposed to your internet behind Cloudflare Access (or similar) and have a harness running on your computer at home from any browser, including your phone's.
> it’s yours, the total control is the only way to move from driving agents to orchestrating them
I wrote Juggler (https://github.com/juggler-ai/juggler) because I liked Pi's approach to everything being customisable and controllable, but I wanted a slick, navigable GUI rather than terminal hell.
...BUT: having gone to great pains to build an architecture around customisation, where every possible pluggable thing is a plugin, I'm starting to feel jaded on the whole "we need to customise it all" mentality. The models have got so good over the last year that I just don't think that tweaking the harness is something many people will need to do as things progress. The models only need a bare-bones set of tools to do everything they need, and I'm starting to think that UX and UI are the only really important things to focus on in an agent.
(Although from the perspective of coding a harness, making things plugins and having a plugin API does help to keep things clean and stops the codebase getting sloppy)
I tend to agree with you. I wrote 4 separate coding harnesses of my own earlier this year (in different programming languages, great learning experience), but pi running good local models like qwen 3.8 next flash, or a deepseek flash API from a vendor with decent privacy assurances is really the bedrock of my workflow. There are always exceptions: running pool harness with Laguna XS 2.1 6bit is a really nice local dev experience for code maintenance and quicker sessions. Also, I very occasionally really enjoy DeepSeek Harness with deepseek flash, CC with Opus 5.5 and agy with the latest Gemini Argon.
So there are many wonderful dev experiences, but generally relying on something relatively simple like pi makes a lot of sense, for my use cases.
I've been daily driving Pi for over a month now and never looking back. The latest crop of frontier models have really complex bash calls, so I've written an extension that rewrites them into plain English while still making them easy to reveal in full, unlike some harnesses which seem to try to hide this from the user which is pretty irresponsible IMO.[0]
The rewrite is configurably off for bash/tool calls below a certain line length. I would prefer not to read codegolfed bash and python for hours every day, personally.
Frontier models have been pushed to reduce their token usage so much that they got to be creative and use bash CLI to edit files, which achieves the goal of reducing token usage but makes reading the traces less practical.
It's a trade-off. Personally I like occasionally re-reading the edits and I prefer use more tokens and understand what's happening (or have the illusion to understand).
I prefer not the fight the RL as the models get better, unless I've measured it and haven't observed any degradation. There may be other costs/no. of turns considerations too.
I’ve been using Pi since April. I switched from using copilot CLI which definitely isn’t the most frontier harness going but was more “feature rich” at the time than the stripped down feature set you get with Pi out the box.
The bit I was instantly drawn to was how much access you are given to change every part of it. Its similar to the text buffer in emacs where every cell in the buffer is fully accessible to any edits you need to make. My configurations are fairly minimal, but for instance I match the accept cli calls that could be destructive and edits to files in the same way copilot is set up.
Currently my pi config turns it into a tutor. It no longer makes edits, just advises and is designed to teach. I make all the code edits by hand. Use deepseek flash with it because its stupid cheap. It works for me, but honestly you can set up pi in any way you want which is why I personally think its the best harness by virtue of anything being possible as long as you can dream it up!
Could you share your setup? is it skill-based? I like the idea of using the model as a tutor/pair programmer so that I stay more grounded rather than delegating too much of the coding to it.
Its mostly just in the SYSTEM.md file. Its quite strict honestly, the rules have been built up to better curb my laziness, and also respond with statements that are better designed to teach than provide an answer.
The author is complaining about Claude Code inside VSCode. The complaints don’t apply to the Claude Desktop App, for the most part. You don’t need VSCode to review code, just use the Claude app which has good support already.
And if you’re moving to Pi, maybe use it with ThinkRail, from JetBrains. It’s my favorite harness since it can do everything I want: multiple models including local, focus on reviewing code after the agents are done, uses worktrees by default. And it adds some nifty tools for designing software which I am really enjoying. One thing it can’t do is let you edit files :) but that is ok, in the rare case I write something I use emacs, thank God no more need for a heavy IDE!
This is interesting, I've been using claude for work stuff because they pay the $200 subscripion but at home I've been using pi with glm-5.3-flash and now deepseekv4.1-flash.
When I'm doing work stuff I'm really not liking claude and only using it because anthropic doesn't allow other harnesses. If work would give me a $20 ollama cloud subscription in place of the $200 claude one I would be much more happy at work, that's how much I dislike it.
I used a claude subscription with omp for 6 months earlier this year, before switching to chatGPT which Im also using with it. Claude even has a splash screen on their login page saying logged in with oh-my-pi so I very much doubt they are trying to ban people for using other harnesses.
In fact, if you ask Claude now, it will tell you not to try and log in to other harnesses as it violates the terms of service. One can only use API billing with other harnesses, not the Max subscription. Which of course is a load of toss.
Pi definitely has extensions which allow it. I googled "use Pi with Claude Pro" or something and Gemini was more than happy to point me at the extension.
I don't think this is true. They never went through with this change. If you use the SDK it appears ToS compliant. You just can't sell it or distribute it, hence why pi doesn't support it.
I use Requesty to get access to models from all providers, including Anthropic. It is pretty cheap and competitive with others for the quality. haiku 5.5 is one of the cheapest available, cheaper than Qwen while being superior in the price range (less than 10 cents per million tokens).
I put 10 dollars to use on my hobby projects and I still have more than half after a couple of weeks. Using bigger models is dramatically more expensive, of course.
I built a Claude Code mod that displays a dashboard linking issues/PRs to claude sessions and allowing me to organize my work more around activities, such as reviewing, working on issues, fixing PRs, developing specs and ad hoc sessions.
As someone coming from a vim in tmux, keyboard only workflow, this works most naturally for me without needing to break out of the terminal.
Also it's nice that it is a self referential setup that can be easily developed and enhanced right while working on things in Claude Code.
I'm sure many of you are building similar personalized setups.
> The AGENTS.md thing kind of epitomizes the whole reason I decided to quit using Claude Code.
Do I understand correctly that this decision was taken based on something that's not accurate? Claude has been reading AGENTS.md files for a while now.
> Claude has been reading AGENTS.md files for a while now.
No it hasn’t, this is a very recent addition. Previously you had to symlink CLAUDE.md to AGENTS.md, or include a @AGENTS.md in your Claude file, but by itself it would not read it
Claude told me that Anthropic disallows Pi for use with Claude Pro / Max subscription and you have to use API. Is OP then switching to API and credits?
I have not used them but supposedly you now get API credits with subscriptions now. (I don't know if it's changed but in the past when they've given API promotions it required enabling billing for API and I don't dare risk some bug on their end billing me a billion bucks)
> having a ton of CLAUDE.md files scattered about various GitHub hobby repos is great guerrilla marketing
Their real marketing comes/came from https://github.com/claude phenomenon. Irrespective of what underlying model you are using the claude code harness just sticks this github user as git commit author and then you have to make an effort to remove it. That is just odd.
Pi has been my goto agent for several months now, the project is great and basically runs everywhere. If you like Pi, I suggest taking a look at Deepseek Harness too.
For those using Claude, there's pi-claude-code[0] which is currently still the way to use Ant subs in Pi.
Update October 7, 2026: Claude Max, Ultra, and Team plans now include monthly API credits. They cover the Claude API, Claude Managed Agents, and the Claude Agent SDK and claude -p when you run them with an API key from your linked Claude Console organization. Nothing changes for your plan: when you’re signed in with your Claude plan, the Claude Agent SDK and claude -p still draw from your subscription limits.
EDIT: I was mistaken. pi uses @anthropic-ai/sdk (the client for the Messages API), not @anthropic-ai/claude-agent-sdk (the Agent SDK).
The Agent SDK is using the Claude Code harness. The point of using Pi is to avoid using that harness entirely. It wouldn’t make sense to use the Agent SDK in Pi; you would essentially be driving a harness with another harness.
If you’ve used Codex before, then the Agent SDK is Anthropic’s equivalent of the Codex App Server, which is Codex running headlessly with a protocol to talk to it.
I use pi.dev since it came out and love it - and pi-claude-code is a great help since Anthropic turned of subscription access. But I also see every day how Claude Code tries to lure me back and often refers to its own skills which then don't work properly eg when spawing sub agents or asking me to run certain commands. Dark TUI Patterns.
Is using Codex through Pi allowed? I've been a Claude user, but a lot of the things mentioned bother me as well. I see it constantly make mistakes due to (simple) shell aliases, etc..
Not sure I'll actually switch but I'm curious. I've thought about trying to build my own harness and use Codex usage to work through it without spending a fortune on credits.
Yes, you can use your Codex subscription with Pi without any limitations. It supports Codex out of the box. You may need to install extensions for things like tracking usage and limit resets though. Pi only provides basic Codex integration.
Anthropic's subscription is the one that has historically been tough to use with other harnesses, where they have (had?) technical safeguards to ensure your subscription usage was limited to Claude Code CLI, with third party harnesses often implementing workarounds or faking it to use your Claude.ai subscription. Nowadays Jetbrains Air does officially allow using your Claude.ai subscription.
But OpenAI's subscription has seemingly always been available to use in other harnesses without trouble.
Using your subscription in 3rd party tools is explicitly allowed for Codex, and disallowed but not really enforced for Claude. There are extensions for Pi that allow you to log in with your Claude credentials, Codex is iirc even built-in.
There is no stick unlike Anthropic (along with insisting on signing commits and "don't abuse the robot" the reason I started to use OpenAI instead of Anthropic --- not that I am under the illusion they are any less evil overall) but I think now there is starting to be a carrot towards Codex usage since there sessions are "cached forever". I assume if you use Pi you get 12 hours of cache instead.
Am really happy to see more and more alternatives to Claude and Codex
And I think the biggest reason is what the “open source” models are doing. They are really closing the gap. Don’t get me wrong, the 2 American leaders are still pushing and leading the ai race
But with all the work done from other companies, notably in Asia, there are some alternative solutions : and they start to be really usable as our daily rides
I just wish Europeans would play part of this race - but it seems that we have already decided to sit in our sofa and we watch it sipping some tea.
Does Pi come with an auto mode that blocks dangerous actions? It didn't last time I checked, and these measures are critical to protect prod (and your personal files, etc) from a confused agent.
I gave the harness a try and it is refreshing, but the insistence on staying bare bones and not implementing basic functionality natively, together with no vetting process for popular 3rd party modules, made me return to Claude Code.
gotgenes/pi-permission-system and the ai-guard authorizer can do a lot here, it feels very similar to cc auto mode.
I built a policy authorizer on top of pi-permission-system that looks kinda like nftables that models commands/subcommands/options as read/write and enfores policies depending on if the sub agent is read only or write, which really cuts down on the stupid decisions and nicely complements AI cmd review. Pi shines for making things like that possible.
Well yeah, the whole point of pi is that you build it to your workflow. If you dislike the entire point of a project, it’s not for you. I run my agents in a sandbox. When Claude or Codex then double sandbox themselves, it gets really annoying.
Wrap your agent of choice in e.g. docker sandbox, nono.sh, Nvidia OpenShell, microsanbox or any other sandboxing tool and run it without any checks (i.e. "yolo mode", dangerously-skip-permissions etc.)
IMHO it makes the whole category of problems around permission fatigue, trusting the harness (or plugin) authors etc go away.
I did that. Customized Pi to run in Bubblewrap, made an action authorization flow, etc. But that's throwing the baby with the bathwater. This gives you a harmless, less capable agent. To get both safety and usefulness, Ant's solution of a fast classifier works really well.
Strong sandbox + disabling permission checks gives me maximum capabilities, least annoyance and (relative) peace of mind that any prompt injection, malicious plugin,... won't wreck my shit or leak credentials of any kind
Using Bubblewrap is pretty good. However, I moved to using Apple Containers with one local file directory mounted; When the container is not running, I do git operations outside the container. This is simple, and although not as convenient as running naked with no isolation, it is light weight and easy.
I use https://pi.dev/packages/pi-warden with Jev (but can use other Decisions API), it would make sense to combine with pi-permission-system to get the CC two stage "default auto" mode.
I went from Claude Code to Opencode to Pi and never looked back. I also lost interest in closed models and been using open weight ones exclusively since ~January and can hardly be happier.
Pi flexibility is awesome, mostly I use the TUI but I also build this Github action [0] on top of its SDK to enable all sorts of workflows, it's forge agnostic and it works on e.g. Forgejo (that's where I make the most use of it).
Pi also powers Awesome Pi website [1] which I built out of frustration with the at the time state of information around Pi.
Build your own(1.) on top of Pi has worked for me so far. You end up with something that fulfills your personal requirements and suits your workflows. I ended up with a web based ui, multi-session, simple sandboxing to reduce the “oops” factor. It has been a good experience so far. Web seemed like a decent compromise and a working PWA + vpn to access the ui has changed how i work with LLMs; more like a whatsapp chat than a true coding session. Image support has been a big game changer; ask the llm to screenshot and show things makes a huge difference.
I have been using Pi most of this year. Just one problem that's going to make me move to deepseek harness: no subagent support. I am using tintinweb/pi-subagents and it works, but always wondering if there is a better option. It doesn't seem to work right with Herdr's agent status.
I've been using pi-optchat, might want to give that a try. Manually connecting subagents to the main agent keeps them open indefinitely.
https://github.com/jonaslsaa/pi-optchat
I've been using Cursor for a few years now, and while I'm well aware that it's more expensive, from a UX perspective I am 95% happy. There's still a few things like not being able to move conversations between folders or computers, but big picture, a lot to love. It's just a really coherent dev experience.
When I read what folks write about CC and TUIs it all sounds... really, really awful and I kind of don't get why any wouldn't want to use Cursor. I'm posting this to see if anyone wants to explain how/why I might want to ditch Cursor and go all in on Claude or Codex or Pi or anything else. I'm open to being convinced!
Mostly, I just want to understand. My sense of CC is that it's great for folks who are looking to spend lots of money having 4 agents one-shot an entire application from a single prompt so that they can pick their favourite when they wake up. Is that an absurd perspective? If so, tell me how you use it.
I'm someone working on fairly significant but personal projects; I have a very clear picture in my head about what I'd like to get so I tend to write extremely dense, detail-filled prompts and go through a multi-revision planning phase before kicking off agent mode on a feature. The apps I build tend to be the result of several dozen or several hundred features developed mostly serially, and I am always the bottleneck because of that whole "knowing what I want" thing.
So, that's my usage pattern. Should I be using Claude (or Pi)?
> The apps I build tend to be the result of several dozen or several hundred features developed mostly serially, and I am always the bottleneck because of that whole "knowing what I want" thing.
This is probably where the disconnect is - the TUI workflow only really clicked when I started working across multiple worktrees at the same time.
It’s not all or nothing. You can still be fully in the loop, read all the code and steer each session towards the outcomes you want. You’re just doing it across multiple branches at the same time and imo it’s easier to do that through the TUI.
This is indeed a challenge and there is a practical limit to how many you can manage at once. It really depends on what I’m working on, for a sufficiently large enough project there are lots of independent tasks that can be delivered in isolation and so it’s rarely a case of babysitting all of them in realtime.
I tend to have one session that I’m actively focused on as my primary session, everything else I come back to every ~5-10 minutes to nudge them along while I’m waiting on the ‘main thread’. If my core task demands more of my time to think then I check less often.
The important thing is to find what works for you. If Cursor is giving you enough productivity then that’s awesome, carry on with it! I would recommend trying out other workflows, weighing up the pros/cons yourself and ultimately find what works for you. TUI-driven development isn’t for everyone in the same way not everyone likes to use vim and that’s okay.
I appreciate your conclusions, and frankly, you're probably right.
I'm still quite curious how folks evaluate between four completely separately but presumably functionally similar outputs and conclude that work tree 2 is the winner.
In the experience of the people reading this thread that have gone through the route of implementing their own customized harness with Pi... is is something very time consuming that ends up being a project on itself, or do you actually get time to _do_ things with it?
I'm asking because I tend to spend way too much time working on my tools and not enough time working on product I want to build with the tools... and I'm afraid a custom harness could become another rabbit hole for me.
If it takes you more than 2 weeks to stand up a usable harness that can improve itself (with or without you driving the harness), then use something off the shelf.
Otherwise, go all in.
Source: Daily driving bespoke harness since August.
I've been using pi for several months with herdr. The ability to easily customise your experience via extension, with a small core, has finally made me enjoy working in harnesses. Also check out pi-blackhole (or billion context) + pi-fabric. The former basically gives you unlimited context and pi-fabric is subagents on steroids.
The new Herdr desktop has a great theming system. I haven't scratched the surface yet but it's blindingly obvious the future of software is (power) users being 100% in control of their workflow, what it does, how it does it, and how it looks.
Maybe trivial, but changing the font colors, agent status placement & colors increase my productivity 5-10%. I have more ideas like thumbnail previews, but these are specific to the project being worked on.
If you take pi and its extensions, plus herdr desktop, you have an agent that can run the way you want it to, and an app that shows the info you need in the style and way you want it to. I don't think there is one single superior workflow to dominate everything.
The downfall to this is LLMs being trained for their agents. Opus on Claude Code, GPT x.x on Codex. There are certainly strong echoes to vendor lock-in in the past if you look at all of the APIs we used to have with the social web. You could combine this with AI licensing and a national identity verification system and make the whole thing fucking miserable, with locked down hardware & software like iOS. There's a fair chance this could happen, especially in the EU. That and OpenAI + Anthropic merging are two scenarios that would suck.
My biggest claude code problem is that it calls git status with fsmonitor turned off via env variables and command line argument and I work on a super big repository.
I'm spawning a lot of agents to work in parallel. I guess I should just use the API, but it just shows that it does some random stuff you might not agree with. 99% of the users are ok with it because they don't have a 10gb repository
I was struggeling with multiple markdown files, not only for multiple Claude sessions, but also Copilot and Codex, accross different machines and projects with diferent purposes.
The problem: This is not only about some pre-prompt instructions, its about coding instructions for different lanugages, frameworks and architectures and skill/hooks/tools for different purposes. I drowned in multiple setups (I have ADHD/ASS, I start two projects a week). So I decided to built this kind of "wrapper" that I can use with every new project. It allows me to maintain a global setup of "defaults" and then add modules to each project as I need them.
It's not fully done now, but it already helps me. Someone else might find it useful.
Try and get on the early access waitlist for Rex, really nice terminal + multiplexer. Ghostty replaced iterm for me and my team, then Rex which uses libghostty was a great level up further.
The harness doesn't matter as much as what additional value the company behind the harness brings.
Example: claude desktop + projects gives free compute for compilation without any cap (that I've found). So that + opus 5.5 which practically never runs out, it's possible to get thousands of euros worth per month. On Pi/similar, the tokens + compute are metered and it quickly stacks up to something substantially more expensive.
Now this is clearly unsustainable, tip is to milk the cow for as long as it's possible
Feel pretty much the same as the article, but I love Anthropic's models so much that i've stuck with CC for an absurdly long time, and use Pi for literally anything else. Which i think has benefits as well. Can kinda track how well sessions perform and decide on which tools to enable/disable pretty quickly.
It really feels like the usage within CC just goes forever sometimes, and a ton of the stuff i found absurdly annoying are easily disabled tools.
I think it's perfectly fine and healthy to make this choice.
I just don't think it's sustainable. Corporate America, if not global corporations, will insist on code generation through GenAI. It will be a tick in the job requirement.
But if the OP and others can find sustainable employment hand-writing code, that's awesome.
I am using pi as the minimal coding agent for pc administration, incl. coding up scripts/daemons that help my infrastructure (automatically updating dns when my ISP changes my IP, automating letsencrypt wildcard cert updates and similar stuff). Tested continue.dev, aider, pi, kilocode and opencode for large projects and stuck with opencode for now. I am not fully happy though and hope something better comes along in time. It is just that the annoyances I have with it are not too problematic, I can cope. For some time I also worked with a custom harness I built on top of pi, but that wasn't great either.
I am a CC user on the 20x, 5x is too small for me. Doing some quick maths I found that the Anthropic subscription it is a bargain compared to other models on API usage.
Does using Pi saves you so much token overhead that my maths are wrong?
There are some extensions you can use to use your claude subscription on Pi, it runs Claude Code under the hood but with pi's prompts. The same is possible with Opencode
I use both, and I think Claude Code is easier for beginners but Pi is more interesting to get a better understanding of what the harness is doing for you. Stuff like skills and MCP are sort of abstracted in CC in ways that obfuscate things, probably intentionally, while Pi lets you really see where a model got stuck and why. Inspecting thinking traces and dead ends from local models teaches you a lot about how they work in general.
Comments seem filled with generic fandom for Pi or other harnesses / multiplexers.
The actual post seems incoherent. They had a bunch of problems with Claude, most in features Pi does not even support in the first place. They don't like "instability" aka rapid pace of development, ignoring Pi is just as if not more rapid. They passively assume an ecosystem of plugins is going to be more stable.
I'm a big fan of Pi and believe everyone should use it or similar open harnesses in preference to proprietary / vendor controlled ones. But we need to employ actual cogent, coherent arguments in advocating for that. When a broader audience tries open harnesses and finds out they don't live up to expectations the blow back will be costly.
Model capability is what harnesses expose, I have experimented with pi using local mlx models - several 27/35B quantisations (Gemma, Qwen, Flint) and the reality is that they are much weaker than Sonnet, let alone Opus. Of course they are "free" (if you have a $3000 mac) but they are slow and dumb, useful for very routine things but comparatively bad at problem solving and trouble shooting.
I am genuinely curious to know what kind of genuine problems people are solving with opus that cant be done with sonnet or the free models.
If there are problems that people are working on that only opus 5.5 can solve then were we not touching such problems last year at all (because last years best model was inferior to sonnet 5.5).
And if people are solving such problems now, why cant I see any meaningful improvement in even a single software I use everyday?
Not trying to diss on anything or anybody. I want to know.
I took a few months out and it’s noticeable quite how much better opus is at least in respect of the quality of understanding. It’s a step change for me.
Sonnet 5.5 feels like a cocky rookie. It's capable, but it often makes mistakes and especially poor assumptions, and when I point it out it just goes "yeah I did that wrong". Opus is much better at judging assumptions, makes less poor assumptions and mistakes. And when I point them out it takes it to heart and makes sure it guards against such a mistake in the future.
Sonnet is great for simple work, such as subagents running a program and summarizing the output. Opus is just that much better at the more challenging work I find.
You can probably get Sonnet to reach the same goal, but Opus needs much less hand-holding and overwatch.
Yeah, this post calls out one of the major risks of making it easier to write more software. More features put more cognitive load on your users. If you introduce those new features unobtrusively it might be OK, but if you force it on them, you may lose them as users.
Switching away from Claude Code to OMP (Pi fork) has been good for my mental health.
I can't remember the last time I got frustrated with the continual gaslighting and failure to follow instructions when using OMP as I did on a daily basis when using Claude Code as the harness.
I also have the freedom now to switch models as frequently and often as I like, and have actually been primarily using GPT 6 series models over the last month.
The biggest frustrations with Claude Code were Anthropic's straight-jacketing of the model, its refusal to follow instructions, and its indecipherable output (yes, even with 5.5 series).
Using Pi or a derivative like OMP is a breath of fresh air, it's just a tool again.
Maybe Anthropic could de-program themselves from the Claude religion and come back down to earth at some point.
(Deliberately tooting my own horn) I’ve been on the same path. One of the first frustrations I ran into when migrating away from Claude is that I really missed the ability to create and interact with artifacts. The idea that the products of my conversations was locked away in some frontier AI lab silo bothered me.
I built OpenArtifacts (https://open-artifacts.com) to fix this exact problem. It’s free, open source and trivially self hosted on your own Cloudflare account. I’m releasing a hosted version in the coming days. I’d love to hear what other think.
OMP is great for anyone who doesn't have the time and/or inclination to figure out all of the pieces neccessary to turn Pi, which is really a kernel, into an effective, battieries-included coding harness.
If you still really need closed models, consider a tiered setup: open models on neoclouds (95%) and frontiers for the hardest planning (5%). We've reduced costs dramatically. There's no good argument to use only closed models for most development.
I've been using Claude for almost two years now. Back when everyone was talking about ChatGPT, I installed the Claude Code CLI on my Debian machine.
At that time, Gemini was offering a similar tool, so I decided to compare the two. Honestly, Gemini struggled to generate even a single working function without errors and kept apologising for its mistakes. Claude, on the other hand, was significantly better, even in its early days.
Since then, I haven't switched to another LLM for coding.
Now we're discussing Pi, which supports BYOK. My take is that no third-party alternative can fully replace a native solution, especially when it comes to getting access to new features as soon as they're released. I believe this applies to almost every type of software.
Yes, I'm the same. As for any feature that CC has, you can build it with one prompt with the Pi extension system. For remote control you can just use Cosyra (my app) or one of the other SSH mobile clients.
> Someone at Anthropic must’ve caught wind… just a day after making my decision, they announced Claude Code would finally start supporting AGENTS.md files in an effort to get me to stay.
Forgive me for asking if I should know, but who is the author? Is he famous?
>> Someone at Anthropic must’ve caught wind… just a day after making my decision, they announced Claude Code would finally start supporting AGENTS.md files in an effort to get me to stay.
> Forgive me for asking if I should know, but who is the author? Is he famous?
I think that was tongue in cheek. And by that I don't mean the author's tongue was actually in his cheek.
I also think it went over your head. And by that I don't mean I think it literally went over your head.
It's clearly a joke, but I can forgive some people for taking it literally, given the impact that certain well-known devs have on other companies' decision-making. It's a common enough line that it's plausible this could have been a VIP whose opinions swayed a company. Not him and not Anthropic, of course, but it does happen.
While I agree the sarcasm is obvious, important to remember sarcasm doesnt really translate well if english is not your first language, and notoriously does not translate well online regardless, see:
It’s not that unreasonable, or at least wasn’t a few years ago. I complained about the Chatgpt Pro $200 not allowing basically unlimited image generation (the limits were super low) a couple years ago and the next day Sam Altman tweeted asking about switching up how they handle Pro plans and putting usage into a single pool (which is what they moved to). If he didn’t read my email directly the gist at least got to him.
Alternatively, what you’re seeing is continuous hill climbing and optimisations based on large scale experiments and simulated rollouts.
For me personally, I don’t use Claude Code because I can’t read the source.
At least with Codex, I know there’s a bunch of telemetry and all that, but I can have my agent inspect the source and have relatively greater confidence it’s not implanting spyware onto my machine, because a classifier thinks I’m working for Deepseek or something.
> Alternatively, what you’re seeing is continuous hill climbing and optimisations based on large scale experiments and simulated rollouts.
Let's be real. If their tools were as amazing as they're touting, Claude Code would be a tight, hyper optimized Rust/Zig/FreePascal/whatever 3MB binary that would launch instantly, have no trouble scrolling text at lightning speed on its 20 platforms, etc, etc.
If you assume 1 million DAU and 100M requests per day, trimming 1,000 tokens off of [the over-long system prompt] could literally save millions of dollars in inference costs per year
That should be corrected to “could literally lose millions of dollars in inference revenue per year”, which also goes some way toward explaining why it doesn’t happen.
isn’t the point of CC the subsidized tokens of the pro/max accounts?
the tool descriptions and system prompts are notoriously overcooked but you can work around it with careful config; my startup context in CC is 10k, and i could have pruned it way more if i had wanted to be aggressive about it.
I think Anthropic is working on allowing AGENTS.md files as well. However, Claude.md files take precedence if present. If not, you fall back to AGENTS.md.
I use multiple harnesses and… I don’t get what the fuss is all about? I seriously don’t care what I use for the most part.
I mean a “harness” is basically just something that turns models output to action. Just have model return json with what it wants to execute and execute it is basically it. Your machine _is_ the damn harness.
All the ergonomy and features are doomed to be obsolete as we get better models, so… whatever.
I simply use “TUI inside of GUI” approach: I use Zed (switched from VSCode and now probably going back to PyCharm) and then only use coding agents inside the Zed terminal. I think you get the best of both worlds that way.
Cannot show now because Github times out for me, again.
I had pi write me a ralph loop plugin. You plan with it, it breaks it down into tasks. Task success means clearing the context - if it runs out of context, it clears and starts on the same task again (code changes from previous run are left intact).
Complete with little docker-like names for Ralph sessions and the ability to resume sessions should you need to.
Point is, I would generally do this because it costs less context I think, and better tracks progress.
Ping me if you are interested and want it. Otherwise, plenty around :)
Hehe yes please. I’m not sure how it will go mixing it with Superpowers, but your workflow sounds really useful. I like that it can recover from zero.. especially when I overclock ram and then hangs
Remember, I didn't write a word of it - so if anything is not to your liking, it's no harder than pointing a model at it to fix it.
One of the many powers of Pi is the way plugin- and API documentation is bundled in.
I do something similar to this, but manually. I just ask Opus to break the implementation into phases, after each phase is complete it'll update the handoff document, and I'll review the work before starting the next phase in a new session.
I actually started using Opus 5.5 2-3 weeks ago and I'm still having to adapt my workflow around it.
Something is misconfigured on your end.
I have had some trouble where parameters were incorrect, but otherwise I have used several vendors (local, openrouter, ollama cloud, kimi, deep seek) and it generally works.
Most likely context length parameters aren’t set quite right for your model/provider and you genuinely run out of context during compaction
Man, my M1 Pro unfortunately only has 16GB of RAM; it has been such a limiter to using local models. I'll give kapitsa a try, I see I should be able to squeeze some smaller models on
Anecdotally I run semi nightly harness and local model test runs, and opencode consistently outperforms ohmypi on various code bench tasks.
Note though that this for local models that can run on a 5090, so, kinda dumb models with a small context window. Also they might perform differently on a custom pi setup rather than the very feature rich ohmypi.
Mostly the runs just cause me to get decision fatigue so I typically just use opencode and let a frontier model choose whatever cheaper models it wants to orchestrate with, so long as it's one that's not on the same token budget.
P.S. I'd always wondered who it was that got caleb.software before I could... Outshot in a western duel!
When you say "kinda dumb" it's worth noting that the smaller coding models tend not to actually need system prompts to be helpful coding assistants, etc. Qwen maybe more than Muse Glimmer? I've not tested Qwen 3.8 27B enough yet. Even Gemma 4 didn't seem to need much.
Muse Glimmer is so absolutely tuned for one particular pattern (turn-by-turn agentic coding and assistance) that it will do it more or less without a prompt at all (except to set the reasoning level maybe). Beyond the tools announcement, it feels to me like it almost only needs a prompt to do plan mode stuff. If LM Studio (in either of its forms) or Unsloth Desktop had proper support for running inside a linux container rather than just a filesystem sandbox, you'd barely need a dedicated coding agent at all. Osaurus gets even closer.
I wanted to like Opencode but I can't, really. I am enjoying Pi slightly more because it's just way less convoluted and obscure.
FWIW I use Paseo for the GUI, which to some extent eliminates that aspect of decision fatigue; if you like Paseo's UI well enough, you can have it with almost any harness. And since it can connect to its daemon via ssh you can still have the desktop GUI with a container. (Not clear to me if Opencode v2 Desktop makes remote connections to the daemon or just wraps the web interface like v1 did)
I do not know how it is with Glimmer, but other Facebook models (Muse and whatever is currently hiding under "Crouton") sure love ignoring direct instructions to do or not do something important (like not using particular broken/inefficient tools). Doesn't matter if it's repeated ten times in screaming caps, they'll still ignore it at least sometimes.
It is often very determined to continue, so it's a little difficult to steer when it gets the bit between its teeth.
The most peculiar thing is that it expects to be able to "read" directories? Harmless, so it fails, but it's a waste of a tool call. I am increasingly wondering about modifying Pi's read tool so it returns a directory listing in that context.
I have had some difficulty getting it to have a nuanced understanding of how I want to manage git, but I am reaching the conclusion that it's me that needs to change there. Basically I don't think you can say "only commit when I ask you to" and then actually ask it to more than a couple of times in any session, because it will tend to then assume it can go ahead. Scaling the context up might help me a bit there.
But apart from this, I really like it.
I will test Qwen 3.8 27B properly at some point, (though judging by the insane, empty noise making campaign that is going on on social media, Qwen 4 is near)
Hah, I grabbed caleb.software way back in 2020. It’s cool and all but I kinda regret not just going with a traditional domain… you’d be surprised how many older sites reject .software as a TLD entirely when creating an account or whatever. Plus namecheap keeps jacking my prices up, $60 to renew this year so I’ll be transferring to cloudflare (still $30/yr, 3x what a .com would cost). I feel kinda locked in at this point but if I ever decide to give it up I’ll shoot you an email.
I am really dissatisfied in Codex and Claude, not because they are bad software, but because I feel complete lack of control, LLMs are non-deterministic enough that I don't feel to compound it with an harness that changes every day.
Every few versions the behavior changes, the way they use tools changes, the way it reads or ignores skills, suddenly they start creating worktrees and make different messes and you're not even aware they launched background jobs or server instances, so they kill them in a different parallel one you didn't even knew it existed.
I can't but feel that the "one main agent with all the tools and skills" design is limited.
An accountless provider such as PPQ.ai or NanoGPT (and these also have auto-models so that the best model can be chosen depending on how easy or hard your prompt it). If you like this idea, use this pi extension to use them: https://www.npmjs.com/package/awto-pi-lot
It works really well, has the nice code diff view which what I used to open vs code for, and it lets you drive from your phone.
All the beefy work happens on my machine at home with big hardware and .env secrets, etc. And from my phone I'm able to run multiple threads with multiple models/thinking modes.
I think a testament of how useful it is, is everybody on my team switched over to Paseo pretty much in a week.
Unfortunately I have to use Claude Code at work, and it is a very frustrating experience, I constantly find myself trying to bend it to my will. I sometimes suspect that my distaste for Claude Code is one of the reasons of my distaste for Claude as well.
Pi on the other hand is a joy to use. Top notch session and model management, excellent conversation tree/branching functionality, and it lives up to its philosophy of being meant to be adapted to your workflow.
I can't recommend it enough, especially if you use alternative LLMs instead of Claude.
Are you not able to /login in pi with your Anthropic enterprise account? Or- do they need users in software that they can manage with enterprise controls?
I have tried Pi, but at this point I'm using a fleet of hermes agents to connect realtime via webrtc to a custom web dashboard (written in rust) that works on multiple projects/tasks atomically and simultaneously and compiles/tests locally and then submits to a private central git with all its changes and then pushes to dev for testing, then prod. The agents working on tasks can request new tasks and a supervisor is configured for each project that does a scheduled review and proposes recommendations based on what has been done and needs to be done based on the project plan...As new agents come online they can be quickly enrolled. It works well when you're working on many projects simultaneously. Its also a good use for a stack of 10 old laptops.
Damn I built almost the exact same thing lol, down the supervisor for each project and web kanban board thing. I use fly.io sprites for the compute which has been cool to experiment with.
The whole AGENTS vs CLAUDE md issue was bound to be resolved. If the models are getting smarter and harnesses getting better - how could you have a product so dumb that it ignores whatever skills, instructions, references, other things that are part of the folder context it is mounted in.
Having claude code ignore agents.md just made it seem dumb. At this point, you probably don't need either.
Is it just me or has Opus 5.5 on High been disappointing for the last week or so? It's been making a lot of silly mistakes, bash issues and killing it's own shell much more than usual.
> In spite of all of these existing issues, it seems like Anthropic has worked at a feverish pace to pack more features into Claude Code without much care for quality or stability
To me this is why AI-pilled orgs or groups won't win.
The thing that freaks me out about Pi is it seems to have zero sandboxing or security guardrails unless you explicitly add them. I guess it's fine if you're only ever running inside a VM or a throwaway machine anyway.
> It seems like there isn’t someone high-up whose job is strictly to say “no” to these requests, which is incredibly important when it comes to product engineering
Ah, product management - we know so few of ye who know what you're doing.
But this feels like six weeks (or more) out-of-date. And so it is - from mid-September. And I know that observing such a thing sounds bizarre and teenage, but that's kind of a long time right now; we're at a moment in history when things are moving fast.
We're not really fully ready for the traffic TBH, but for those who few of you choose to click, this is what we've been doing with pi lately:
I used to use ChatGPT/Claude in the TUI up until like 3 months ago, but my usage of LLMs has exploded - many sessions across many projects. I feel like I outgrew the TUI and now I'm using ChatGPT/Claude desktop. VS Code has become a code review tool and place where I manage git if need be.
The GUI is less verbose with the nitty gritty hidden in expandable sections, which makes history easier and cleaner to scroll through, also no scrolling bugs, rich text is easier to read with tables, and images integrated into the chat, resources like browsers in the context of the session. Drag and drop session organization (pins), scheduled tasks, etc.. all that in the side bar.
Usually a TUI would be open in VS Code and scoped to whatever repo I'm working with so 10 projects, 10 VS Code instances open, not super scalable. With the GUI desktop app it's one app, and I can start sessions in an repo and switch between them easily, no need to open VS Code for each. I don't see what could make me want to go back to using a TUI.
Who else is just using the GUI nowadays, or are you still on the TUI, and why, have you tried the GUI interfaces?
I just ended up making my own GUI. I never really liked any of the pre-build ones. It started slow (3-4 days of work) and grew organically around my working style. I can also have my preferred UX (e.g., high information density).
Take a look at the Codex App Server or the Claude Agent SDK as a way to communicate with harnesses running headlessly and build your own UI on top. I’m sure Pi can be set up in a similar fashion.
I've been building my own open-source coding agent, VT Code, in Rust.
I wanted more control over the harness itself, especially tool execution, sandboxing, approvals, and context management.
Recently built a native macOS app with GPUI on top of the same agent runloop. It's been interesting exploring how the same engine works across terminal and desktop workflows.
https://github.com/vinhnx/VTCode
I did this for myself several times. I started with winforms and evolved into a full blown clone of ChatGPT.com experience built as a razor/MVC project in .NET10.
I have 2 versions that are just for working on unity projects. One that is for working on the client project. There is also one that I refer to as the ring of power / Death Star that I keep mostly to myself. Eventually, the client saw what I was doing and decided they wanted a custom ChatGPT.com experience for the whole team, so I got paid to build the most recent one.
Using AI to assist with the development of this stuff is the RSI you've been looking for. I'm in a situation where I was only able to solve a problem due to two levels of bootstrapping enabled by custom harnesses. The product the client uses cannot be "one shot" using the latest frontier tools. I had to build an ad-hoc agent loop fit for just that one purpose using another tool that was possible to build via copilot. For example, using copilot in VS over a unity project's scripts might as well be a drunk person throwing darts from a boat compared to a purpose built harness that can execute ad-hoc scripts in the editor environment as often as it pleases.
The client's custom experience is better than ChatGPT.com in many important ways now. It certainly performs better. It will run on safari without doing horrific things to layout and my CPU. You can easily exceed the capabilities of the frontier AI companies in ways that are important if you use their tools cleverly. These companies are great at making AI models. Not harnesses, websites, apps, etc.
Could you share what the custom harness does better? I'd also like to build my own custom harness and any tips/tricks that aren't already widely known would be very welcome!
I have the same setup. All you need is a server hosted on your own machine and a few adapters to connect them to providers using ACP and various thin client all connected through tailnet. I have developed my own web and mobile applications with gemini live full duplex routing to opus my local projects and maintain the same session across any platform I choose, including Hermes. Building personal software is easy these days.
I thought the TUI was the ultimate power tool and loved the original embrace from claude code. I still use TUI a lot, but have been using deepseek harness web app atop my local model and am already liking the better organization and UI of this interface. I can see my load shifting to it. But you are right, you almost always need a VS Code interface open as well.
The outputs of Opus 5.5 were so much easier to read, but I do find the the deepseek web based tool much easier to comprehend for some reason. Plus I can access it from phone (over tailscale) as well when out and about and continue sessions very easily. AND it is all open source/weights. I'm pretty thrilled, but it's been less than a week.
claude is a terminal-themed gui, not a tui.
People seem to forge Claude has a very powerful GUI as well. I don’t get why most still seem to be using it in the terminal instead. A bit like emacs. The GUI is infinitely superior to use!
because it's yet another potential attack surface
I think this was a marketing play by ANthropic.
Look, it's just a tool, you are a developer, you've used TUIs all your career, this is just one more TUI, no different than your beloved Vim or Emacs. No need to be scared, this won't replace you because mere mortals won't know what to do with a TUI, so you can use it freely and get more work done, just as you were always obsessed with doing when configuring your Vim bindings.
Then, a year in, when everybody is hooked line and sinker, people start to understand that the TUI is the least important part of the whole thing, and the model and harness are what really matters.
> claude is a terminal-themed gui, not a tui.
It fits most definitions of a TUI, though. Just with lots of scrolling text.
Don't confuse TUI with CLI.
Claude Web app includes Claude code tab with remote option to work from your own machine (if preferred). I am using it very often.
I have a project folder which is my default environment, and within it I have my many repo clones. That way I can work on any project from my prompt and reference elements in one project to include in another.
I continue to get good results using lifeOS (though I don't use the entire setup) https://github.com/danielmiessler/LifeOS
Thank you for chiming in. I got all of this activated today and am liking it. Team GUI for me.
I've been using deepseek lately (just the chat interface on hobby stuff) and it's frankly better at searching the web and writes less like it's trying to bullshit its way through pretending to know what it's doing, i think it is just easier to understand. Unfortunately it also is more often wrong, or more often writes bugs, but i guess in a harness that's kinda mitigated -- it does usually find its earlier mistakes ime
And it's so fast! Claude often thinks for >60s which drives me insane for simple questions. Maybe it's also the configuration of the harness, but at least the web interface of Deepseek already has half a page written after a single second - a bliss!
I've lost faith in the ChatGPT desktop app. It's nicer than managing a bunch of TUI sessions, but it's so prone to losing session history / context.
The MacOS one has a dreadful startup time as well. I can have the website open in ms but the app takes 7 or 8 seconds
Herdr changed my tui game. Pi but for tmux.
Yea me too. I also wnet GUI for a little bit until I discovered herdr.
Can't you just run pi in normal tmux?
Also tmux has the worst tui I've ever used.
I’m using one iTerm to host the TUIs. The RAM cost is a tiny fraction of modern electron-based gui slop
I dislike the harness TUIs for this for the same reasons. Nothing against TUI in general, the lazy* universe for example is great.
OpenChamber (the desktop app, not the VSC extension) for OpenCode currently works best for me. Especially because of its seamless remote control via their iOS app.
""GUI is less verbose with the nitty gritty hidden in expandable sections, ""
? The GUI has nothing to do with that.
If you use Chat / Work / Code <- that's the differentiation.
So 'Code' in 'Gui' is identical to Claude Code except for the visual layout.
If you use Work or Chat, which are not optimized for Coding you'll see a different experience.
If you use iTerm or Ghostty and set a key combo to switch tabs you can very easily switch between tabs and the TUI generally gives more dense information.
Usually people migrate to TUI not the other way around.
I think that there are reasons to use GUI - if there is deeper integration with Git or an issue tracker - or - in VSCode - for navigating files etc. - definitely those things are valid.
But for raw AI the getting a TUI to work the way you want it is ideal.
I don't get why people love TUIs so much. They're basically GUIs made using inferior tools. Why hammer in a nail using your fist if you have a hammer handy?
A GUI is strictly more powerful than a TUI (because a GUI could just show plain text in cases where that is the most appropriate mode of interaction, E.G. Bloomberg, AMadeus), but it could also do so much more in cases where it is not.
I do love terminals, don't get me wrong. When what you're interacting with is CLIs and Unix tools in a shell, a terminal is exactly what you want. I do love the Unix philosophy, I like small and composable tools that you can use together, and I think the interactive way of working that a shell or REPL can give you is great (though notebooks would have been better, but that's beside the point). Those are things that the terminal shines at. Pretending to be a GUI is not one of those things.
A couple of reasons
1. Lower resource consumption (ram, binary size)
2. Usable over the network (ssh)
3. Often much easier to drive with automation software (agents/scripts)
4. Ui tends to be dense, matches your font perferences
> 1. Lower resource consumption (ram, binary size)
Have you used Claude TUI? :-)
> 3. Often much easier to drive with automation software (agents/scripts)
TUIs? Not really. TUIs aren't composable, CLIs are. Now, many TUIs also have a separate CLI mode built-in, but guess what, many good GUIs also have a built-in CLI.
TUIs are also frequently harder to automate via click-click than decent GUIs, since mature GUI toolkits tend to have built-in accessibility and I doubt anyone has ever programmed extra accesibility into any TUI in history, outside of the default keyboard access they get because they're inherently character driven (though that can take you quite far).
Many TUIs break even basic UI composability stuff like copy/paste; accessibility is even lower down the list.
As a daily screen reader user... you can't build accessibility into a TUI. You literally can't. There are no APIs for it. This is, in fact, one of my frustrations with TUIs and why I think GUIs are better in principle.
Are you saying I should go back to GUI? I just feel it’s so awkward. I have LazyVim for more advanced review, Hunk, etc… the GUI is like a inferior version of Eclipse IDE or something. Or it used to be, atleast.
I love the terminal.
I live my life in the terminal.
I use lazygit all the time. I integrate delta with it.
But I use vscode GitLens for diffs.
I always find the view port in lazygit to be too narrow. My feeble brain cannot work with so few context.
You and me, bro. Look at this diff plugin for nvim, so pleasant. You’ll avoid vscode
https://www.reddit.com/r/neovim/s/3AyZ4NSBMz
It's because you can ssh into something and VNC sucks.
GUIs are great when you're sitting in front of the computer it's running on. Trying to do anything remotely with them is terrible. RDP is pretty great at making that experience suck less tho.
Ironically, remote work is the main thing I use Claude Desktop (and mobile) for. When I work locally, I’m usually happy with the TUI, unless I need a lot of equations or images. When I work remotely, keeping the SSH connection alive or juggling tmux sessions is too much of a hassle, and running the remote session from Claude Desktop/mobile is more comfortable.
Claude has a killer feature for me with that remote-control command.
Spawn a Claude TUI where you need it and take remote control with no friction.
I tried it in codex and they messed up the flow so bad. You need to add a device oauth token every time you set it up even though it's already logged into your account.
Just a heads up, I build Cosyra, a mobile terminal app, so this problem is something I've been considering a lot. For the SSH side, mosh fixes most of it. And for the tmux sessions I use a leader terminal who does all the juggling for me. Remote control is great, but then I'm completely locked into using Claude which, for me, does not work.
Have you heard about sixel or the kitty graphics protocol? I. what makes me a terminal terrorist, I've got an adaptation of cat on my GitHub where you can cat an image in the terminal, and if you're using a modern terminal, it'll display the graphic.
One benefit is that they're easy to use remotely over SSH or in a VM, but I agree that a local, native GUI is generally better than a TUI.
You can use VSCode over SSH as well.
You can but with agents you might want a security boundary/faux-airgap between the agent and your machine. I don't think you should trust X11/Wayland forwarding to maintain strong isolation against a malicious server in that scenario.
TUIs are superior in that case because they cuts the attack surface down to a regular SSH session.
Agreed. I sandbox agents using containers which also allows me to inject credentials and all sorts of things.
I think there's 2 clear layers in these coding tools: the runtime engine that lives ON the system, can execute commands, read/write files, make network calls and the UI, which can be a local (TUI) or remote.
A remote UI allows you to manage multiple remote runtimes concurrently and can even be on your phone.
Anyone preferring Desktop vs TUI is not managing multiple systems I would guess.
It should be three (four) layers, and that seems to be the emerging architecture for agents.
Layer 1 is the frontend (TUI, GUI, phone app). Layer 2 is the brain / harness (the thing that stores sessions, connects to MCP servers and decides what to do next given the latest model answer). This part would ideally run in the cloud, and be independent of the particular ephemeral sandbox you run your commands in, or the particular phone you view the transcript on. Layer three is the hands (the thing that actually executes tool calls on a machine), this should be a small utility that the brain connects to over ssh, or a local Unix socket if colocated.
Personally the Claude Code TUI also sucked every time i used it. Scrollback bugs in IDEA embedded shells, extraneous output vs the VSCode extension, and unreliable links to source code.
Isn't the CC TUI written in React?? I mean my web dev "all i have is this hammer" brain is intrigued, but surely, there's better things to do? Like you said, the terminal is great for piping inputs and outputs, for scripting, for bulk operations. It's really not great for real time interaction across many files, which is how i use CC and kind of wonder how you would use it any other way. (I guess if you literally just prompt and pray, the UI literally doesn't matter?)
Terminals are 'activity dense' and usually have a lot of key cusotmizations.
You can't even have 'tabs' inside of Claude Desktop, which is a dealbreaker for most power users.
Most GUIs are designed in a way that I dislike. It’s true that terminals lack power compared to GUIs, and some GUI apps (Bloomberg, Blender, …) are reasonably well designed for their use case, but most GUIs are such a disaster that it’s almost more fun interacting with them via curl to an API or SQL directly to a database.
The other problem is that all the GUI apps look different. I really want one extremely powerful, composable GUI “framework” that all apps sit within. Ideally I could even decompose and recombine parts of different apps into new tools or workspaces.
Now that anyone can build a GUI by prompting LLMs, maybe we’ll get actually good GUIs, or at least be able to build our own, but up to now the direction of travel has been disappointing to say the least.
Most agentic UIs are structured exactly the same regardless of the interface. TUIs are not composable in any possible meaning of that word (unlike CLI/REPL), they are GUIs on a fixed cell grid. Real TUI aren't unified either.
They are rich TUI but they remain somewhat scriptable environments. From the plain claude -p to run Claude code unattended, all the way to setting up hooks, MCP tools and injecting key presses. Complex and hackish yes, but probably not worse than attempting to automate fully GUI tools like Claude desktop which is meant to automate stuff, not the other way around.
All that is completely UI-agnostic and not related to GUI/TUI distinction in absolutely any way. Keypress automation is terrible, if you have to resort to jank like this you'd better use something like AT-SPI (which no TUI implements) or at least DOM manipulation and userscripts on web, although I've never seen a use case for that, sanely designed agents are malleable enough to avoid it.
The point is that I agree with the OP, terminals are fundamentally unfit for applications like agents that are not REPL and need complex interfaces. All attempts to fit them into it I've seen are 99% cargo cult, like the entire TUI zoo that keeps layering the cruft just because people are culturally averse to clean first-principle designs or put pretentious "aesthetics" first. Just look at the amount of misconceptions voiced ITT. This incidental complexity is destined to snowball into web/Electron-like Rube Goldberg machines pretty fast, and I guarantee you will hate it. It's already spinning out of control with agents.
I already hate it. But Claude subscription only allows Claude code. Nothing says you can't fully script your way out.
I suspect that this is what Mitchell Hashimoto is up to with Rex and Superlinear.
Because a minimum viable GUI is way worse experience than a minimum viable TUI. Also GUIs take more skill in order to feel performant, which many companies do not possess (just look at various documentation webapps that take >100ms just to navigate between really simple mostly-text pages. Horrible).
Good GUIs with full keyboard functionality are definitely better than TUIs though. There's just no guarantee that some solo dev'd GUI for a brand new workflow can meet that standard.
I went the same way but found that the GUIs (Claude and Codex Desktop) are still too low-level to scale well. They are basically just tabbed chat windows. I wanted more structure and more targeted UX for managing my work. It's easy nowadays to build your own GUI, so I did.
(I found it's still quite some work to polish it so that it's actually good. Therefore, sharing it could still benefit others, so I did: obeya.si, free, open-source)
Yeah I feel like a lot of us have reached this conclusion, I myself have also built a custom one for my use-cases as its fun to tinker.
There are tons available now in different flavours: t3code, herdr, cmux, paseo, happycoder – to name a few off the top of my head.
> Who else is just using the GUI nowadays, or are you still on the TUI, and why, have you tried the GUI interfaces?
I generally prefer GUIs but I'm OK with a TUI harness. Anyway, there's a web frontend for Pi (https://github.com/agegr/pi-web) which looks very promising although it still has some rough edges. They even have an interactive demo: https://agegr.github.io/pi-web/
I'm not associated with the project.
I went from TUI and tested several GUIs that can also support a "TUI" view.
After testing several options at the moment I'm using Orca IDE as my daily driver - effectively as a layer on top anthropic / openai
- Supports both anthropic and openai with subscriptions and can you swithc easily between those two + other LLms
- Its a bit hidden / non intuitive to setup but it does support running everything on remove host -> I run (95%) of my jobs on remote hosts that I can both access from my laptop + their native app via a wirguard vpn
- You can switch between chatview + TUI on the same conversation - very useful if you move e.g. from desktop session to mobile view.
- For repeating LLM tasks Orca also suports a kind of scheduler - but I prefer currently to have the agent set things up via chronjobs on the remote machine (not super happy with this ...)
Key reason I dont want to go fully ChatGPT/Claude is also I dont want to build a super strong dependency on those mega players and remain the ability to switch to other interefernce providers / models.
As LLM usage is already a core workflow in our company - a sudden unavailability of one or a massive price increase - makes it absolutely necessary to build out alternatives.
We all know the downsides of SAAS Lock in too well from the 2010s. In that sense Fool me once, fool me twice..
+1 on the Orca and remote machine. I've basically turned it into my own Claw machine. It does super well at letting me remote in across 3 computers and phone and hitting all the same sessions. I have one master session that is always kept alive as my main "agent", and spin out other full sessions from that.
It solves the crappy user experience of the CLI vs using an SSH terminal in VS code. (Easy copy pasting, everything formatted correctly, etc.) I created my own version of artifact hosting with a simple "mailbox" page on the box - every session can drop it's html reports off there nicely.
Completely agree on being able to flex out to different models. I'm using Claude Code as daily driver given the insane subsidies we are getting. But want something where I can switch easily onto the open weights, etc.
I kinda built a "mailbox" style feature for models to dump images in, its really annoying to chase down the goofy spots they decide to dump images for review otherwise, my web ui just gets a little popup when the images are ready to review, i review them and send them back and it injects my response into the session.
Sadly Orca doesn't support chatview via WSL
> Key reason I dont want to go fully ChatGPT/Claude is also I dont want to build a super strong dependency on those mega players and remain the ability to switch to other interefernce providers / models.
Pragmatically I agree with you, but I also believe that the landscape ahead is going to look so different that locking in to current tools won’t do anything to lock you in to near-future tools
Orca looks neat, but also super dangerous. It runs everything in yolo mode and actively fights staying in any sandbox you try to put it in.
TUI's might not have the best UI ever, but its much easier locking them down via something like nono.sh. I can sleep at night and not have to worry where my keys and .env files are being sent.
Yeah I tried going to GUIs aswell but ended up writing my own Terminal manager called switchboard. Since then I've tried a few others, like T3, which is pretty decent, but still keep coming back to Switchboard. It supports both Claude and Codex CLIs together with project grouping organization.
https://github.com/doctly/switchboard
I built my own app Tomrade to do all my jobs in one place, it comes with an agentic built-in task management system like kanban board, and split-panel terminal. actually now I use Tomrade for everything except for code review, which I still use Orca. Having to say that Orca is doing a good job as ADE, so haven't had a plan to make another ADE inside Tomrade. https://tomrade.com
I switched to the GUIs half a year ago and never looked back.
From the text rendering and scrolling alone, they are much more pleasant to work with.
Conversations with activity and MR status indicators, nested sessions, images in the chat, and generally more information and functionality on the screen.
One negative is that it gives Claude, and particularly Codex, room to mess up with auto-opening artifacts.
Codex, when I was still using it, kept opening report or comparison pages in fullscreen when I did not ask for artifacts.
Claude loves to open its iOS simulator pane, but somehow never displays the one it's actually using, instead showing a simulator that is idle. It might be related to my custom tooling.
No idea what you're working on, but if it's anything involving sifting a lot of data, how do you know if your code actually works or does what Claude says it's doing?
Some of it is the historical snobbery that CLI users have for GUI users. I count myself among them. Isn't it way cooler how I can fix my NIC with just three chained bash commands, while the windows users have to navigate 8 levels of dialogues?
But that mentality doesn't leave room for a lot of nuance. Even the most hard core TUI proponents and neovim gurus probably do not use Lynx as their browser (well maybe they use a vibe coded hacker news TUI client instead)
I was confused until you mentioned you were running it in VS Code. That issue goes away if you run it in a standalone terminal with tmux or tabs.
I hear people swear by https://github.com/getpaseo/paseo
Not only it's a GUI in client-server topology, it can also orchestrate the agents to work for you.
Haven't tried it yet.
Looks like GitHub is down (again)? I'm getting a 504.
Works for me
It's been up and down for me all morning.
Thanks, bookmarked. Orca is another option in this space https://onorca.dev
Paseo has been pretty amazing at getting more autonomy. It's the way the agent profiles work. It is effectively a fully adaptive "auto-harness" with just the tiniest amount of config.
Fully switched from TUI 4 weeks back while testing it out for another use case.
Wrote about my setup here: https://chrlschn.dev/blog/2026/10/larping-with-agents-and-wh...
I mostly use TUI because I have agents running on different servers over SSH.
I often need agents on one server to talk to a different agent on another server through tmux, and it's just much easier with TUI.
I also like the inner text display of the GUI more, but the window management of it terrible IMO. On my Mac I have 3 desktops open, one for "private" and two for a project each. With the Claude TUIs I just have 1-5 open terminals per desktop, each with its title neatly set automatically. With the GUI app, I can only have 1 open, not one per desktop. It seems you can open several very reduced versions of the Claudr app with a single chat but that didn't work well for me. So that's why I'm still with TUIs..
Try herdr (or something like it). For me it fits exactly between claude desktop and having lots of open terminals.
The UI can be made to fit exactly the workflow you want to have.
I switched to it recently - my previous workflow was managing many terminals in a tiling window manager but I just kept losing track of stuff.
Im also using the desktop apps (codex/claude). Using the tui doesn’t bring any advantage anymore. I can drag and drop pdfs, images, i have the browser view, can easily switch between conversations, fork them at any point.
I use whatever IDE to review the code, read tests, etc. I used to use the terminal for everything prio AI, but not anymore.
You can drag and drop files in the TUI. You can also paste in images. With tmux you have forking, and tmux windows are fully scriptable, and controllable via your agent. I have them run shell tasks in tmux windows so I can see what they’re doing.
Just GUI now. I can also connect to Mac Codex from my phone and have a voice chat with it. Collects all my work in projects, can jump in and out anytime. Can start a project on the phone, move to Mac. (Almost) No sync issues, which I found the TUI/phone had.
I find TUI scales better for multiple concurrent agents across the same and different codebases, especially using tools such as herdr. I can fire off an agent, which runs sub-agents. Then check-in periodically to re-steer as needed or be interrupt driven for completions of tasks. I can't see how vscode/GUI is better for this?
Same... I use herdr to manage 12+ sessions easily. There's no GUI that can do that.
Herdr looks similar to the Jetbrains Air stuff they just added to their IDEs. You can have GUI sessions in tabs, label them, tag them, stick them in folders, archive them, put them next to the code that's being changed, etc.
Cc desktop supports folders, named tabs, archived sessions, subagents with two way comms between them and their spawner.
You cannot put them next to code being changed but the code viewers are contextual to the session.
I am struggling to see a major difference let alone major advantage of herdr
Does CC desktop support non-Claude models? That could be a big one. Herdr works pretty seemlessly with any model provider and different harnesses, like Pi.
I am using paseo.sh, with 12+ sessions across pi/codex/agy on 3 dev machines.
This seems to be the new meta for a segment of the HN crowd, and I'm struggling to understand how it works. I'm at most having 4 sessions parallely, and even then I am burned out after a full day of this. How can you keep up with what all the agents are doing?
From the people around me doing this - they aren't keeping up, they aren't looking at the finished project/product, then throwing it over the wall for others to triage. Rinse and repeat. Definitely fits some people's personalities, but not mine.
no way anyone has 12 "projects" that are even worth working on. No one at any company is working on 12 things at the same time.
I guarantee they're just starting a bunch of half baked random projects, abandoning them half way through and starting 12 new ones.
They're probably calling things projects that most of us would call tasks or minor features.
It's less 12 projects and more 1 project + 11 changes/experiments. Complex projects still get the most attention, but I do a lot more work which may end up being discarded, and agents pick up any tasks which would've otherwise landed in the backlog. Update dependencies here, rebase this branch, start working on this issue, change this and benchmark it, etc.
I mean... I do. And yes they're all worth working on.
I think the point was why working on simultaneously, aside from inability to prioritize.
I guess the main benefit of herdr is it essentially flags the state of agents and what needs attention. So you can have multiple ones running and quickly go to the ones that need an input.
I think there _is_ a way to do this nicely in a GUI btw, which I've been toying with as a side project. Basically... build it as a trello style board.
And it's not 12 projects, its multiple tasks, e.g. 'look at this crash for me', 'fix this extension in my pi env that is doing something bad', 'debug this high memory usage', etc. etc. It's easy to just fire tasks off and come back to them later. The project ones usually require more human focus ofc.
Now if only I could automate meetings like this.
> I think there _is_ a way to do this nicely in a GUI btw, which I've been toying with as a side project. Basically... build it as a trello style board
Something like Orca's Agent Dashboard, or something else? https://www.onorca.dev/docs/model/agents-sessions
It took me like 500k tokens to vibe a similar kanban board for OpenCode desktop (I took orca and herdr as references). It is a v2 plugin and I love it. It does what I need across all my projects, I tweak it the way I need, and it's much more convenient than the native tab panel.
Link?
I've found an agent to manage agents, plus aggressively creating skills/workflows helps.
The main agent is the entry point:
"review this PR" should open a new workspace and spin up one or more agents to do whatever review workflow you like.
"Implement ticket xyz" should open a new space, read the ticket content, plan/write/test/review/create a PR without much managerial input. You'll still need to answer questions and check work between steps, but all of the busy work can be done by your agent(s) with skills. If they get it wrong, update the skill.
Same for "research this bug report/product question/error trace".
It's a skill like anything. Context switching on this level is initially exhausting, but do it enough and it becomes natural.
I’m not sure I understand. I use codex as is with 12+ sessions, there’s no issue at all and my coworkers scale it far beyond that.
what? herdr and gui interface for this look very similar aside from being able to have 12 windows open at the same time in herdr but i don't want that?
For me the tight integration with Claude Artifacts (and whatever OpenAIs copy of those is) is super value-able for me. The biggest bottleneck for me is gathering all my thoughts and analyzing what needs to be done.
I was a long term user of the TUI and tools like cmux / herdr but now I find it much easier to actually focus
Check out https://open-artifacts.com - it gives you that and much more. It also allows your agent sessions to talk to each other regardless of which machine they’re running on. It’s free and OSS. I’m the creator - happy to answer questions.
Very nice!!! I actually built something much more primitive as my workflow too. I'll definitely send the robots to learn from you and what you did!
(Edited after research: I picked up your ideas of search and versioning. Very nice! Thank you!)
I’ll send this to the team at my company. No one likes feeling vendor locked in on artifacts but they are great at being like “hey I had an agent cook on this topic over night, here are the results, and what we need to make a decision on”.
Just some feedback for corporate use - it’s not clear to me from the landing page if it’s really intended for internal company use and if it’s hard tied to CloudFlare. I.e. if there was a “here’s how you can deploy it on AWS in 2 minutes” option I would just toss it on our dev env and show people a POC.
With open source projects we’re increasingly worried about supply chain type risks - it would be good if there was some boilerplate on “this is how you know this can be deployed internally and have zero risk of phoning home etc”
Hey, great feedback. I'm currently re-doing the landing page as the project has expanded quite a bit (including native annotations/comments, presence, inter-instance collaboration/sharing, Yjs based real-time collaboration for agents and humans, etc).
Currently this works using Cloudflare Workers (and Durable Objects). This provides your agents with trivial tools to make realtime multi-player artifacts. Some demos include (all made by DeepSeek v4.1 Flash in ~5-10m each:
- Real-time tic-ta-toe: https://demo.open-artifacts.com/a/kA5P1UTCZ9jwRSAx - Chess: https://demo.open-artifacts.com/a/ErF1KapC2paDnmgs - Mini version of r/place (pixel canvas): https://demo.open-artifacts.com/a/xsDmeifD7bX7NeSJ - Live poll: https://demo.open-artifacts.com/a/PY6AbssBQg4epqgk
The full list of demos is here: https://demo.open-artifacts.com/
I'll be opening sign-ups for a hosted version in the coming days. All feedback welcome. Actively trying to make it better.
interesting
seems like they "gadgets" concept of Cloudflare OS [1] but decoupled front Cloudflare OS chat interface.
It even runs on Durable Object like CFOS
1. https://os.cloudflare.app/
Exactly. It is based on Cloudflare primitives to give real-time/multiplayer capabilities to artifacts. It also comes with a bus (originally made it as a separate project https://open-bus.ai, but made it all into one project).
The problem I'm trying to solve for myself is: I want to have a single place where me and my collaborators (my agents, other humans and _their_ agents) can all come together and do work efficiently. It's like a Google Docs/Drive but for the AI era and not tied to any one AI lab.
have you used the GUIs recently? because this is literally what they are best for.
What do people mean that VS code can not support 12 sessions? I never do that, but 3-4 in parallel is fine, and I don't see why it would not support many more.
I do use multiple windows though, I never liked mutiple workspaces in the same window, it also makes contexts blow up I find.
The new herdr app is much nicer than I expected
> now I'm using ChatGPT/Claude desktop
Same, it's lovely software for that mode of work!
I also briefly tried out other ADEs, like:
- Kepler (by the GitKraken folks) - https://www.gitkraken.com/kepler
- Paseo - https://paseo.sh/
Kepler had a really nice issue tracker integration but the UI was very vibey and not quite as to the point as I'd like (who needs graph visualization of what the agents do, just give me tools that work), and Paseo had a really nice UI that I could use to drive both Codex and Claude Code, but some OpenCode agents would sometimes hang and I didn't have tools to really do anything about it.
Maybe I should also give JetBrains Air a look again, if I ever end up subscribing to them again (I just moved to Zed for my code editing): https://www.jetbrains.com/air/
Interesting space, with so many additional tools popping up! That said, the OpenCode TUI was really pleasant too.
I actually just decided to cancel my Jetbrains account, and your comment made me think about trying Air before I go.
I went to my Jetbrains Toolbox, and it's not there.
I went to the site, and there are 3 options:
Install it as a plugin to one of their other IDEs. This feels really stupid to me.
Air Teams. This isn't widely available yet, and you have to ask nicely and be put on a list. No go.
Air CLI. I honestly don't know WTF this is doing that I couldn't just do from the CLI with my existing agents. I already have Antigravity (for planning) using Claude for implementation and all I had to do was ask Antigravity to set it up.
They really need to get their stuff together over there at Jetbrains.
Don't forget about their AI Assistant (agentic but mostly chat focused plugin) and Junie (a harness, that you can apparently use through Air too), people have critiqued them about it being messy, but tbh OpenCode for example has TUI, web and desktop versions heh.
Oh to make things more interesting, Air also has a mobile option too, adding to the list. Odd to couple it with an IDE though since you have various IDEs for various stacks (e.g. IntelliJ IDEA vs WebStorm vs GoLand, unless you just shove a crapload of plugins into IDEA) and agentic tools don't always need all of that.
To be fair though, they're probably scrambling to keep up with the AI craze because it cuts into their margins A LOT and throwing everything they can at the wall. Shame they killed Fleet, could have been a cool basis to compete with Zed (or VS Code, more directly) and integrate Air there or something.
>Shame they killed Fleet, could have been a cool basis to compete with Zed (or VS Code, more directly) and integrate Air there or something.
JB’s wheelhouse is human-oriented code authoring, they own it. That realization is the fundamental reason they abandoned Fleet: as with VS Code and others, Fleet was draining their talent and would have resulted in a tool that wasn’t best-of-breed in any one category.
This situation reminds me of the beginning of the end of Borland’s demise: they spent nearly two years writing OS/2 versions of all their language products, suspending innovation and progress across the board, and allowing the competition (Microsoft) to catch up and begin to hire away their talent.
This story doesn’t perfectly align with JB, but it definitely rhymes. I hope they switched gears soon enough.
> Fleet was draining their talent and would have resulted in a tool that wasn’t best-of-breed in any one category.
Visual Studio Code, but JetBrains would have been pretty cool, especially when you want something that supports other modes of work (e.g. ADE). Now VSC/Zed fills that role and JetBrains don’t compete with them, now even to upsell to their full IDE for more deep work.
Air was a standalone app, but it wasn't clear why and they got feedback that this wasn't wanted. You can have the exact same GUIs and functionality integrated into the IDE and it's a pure functionality upgrade. For example, Air in IntelliJ/their other IDEs lets you do things like execute SQL queries on connected databases from the chat box and have the results be sent straight to the model.
There's a school of thought that says IDEs are history, their functionality is now worthless etc. But apparently lots of people don't think that.
I guess I'm one of those people too, because I tried the Air standalone app but it didn't gel for me for some reason. But I tried Air in IntelliJ and it immediately clicked. If models were always perfect and their work never benefited from reviews or changes, fine, you could argue the IDE is pointless. But it's been years and I've not yet found a model where that's true. You can slop for a while if the project isn't that important but for the stuff that matters, human intervention still changes the quality slope quite a lot.
Are any of these tool currently able to do things like follow my own custom routing logic. At the moment I have some python code that is checking my various provider api balances and usegaes, and available free tokens, and making a routing choice based on this when creating subagents, but its getting a bit unwieldy. I wonder if these agent management tools could have this in their flow.
Not that I know of! You’d probably either need to alter their source code or make your own local OpenAI/Anthropic API proxy that routes stuff wherever you want. I think that’s what most folks would do.
I had something similar in https://ccode.kronis.dev/dynamic-proxy.html but since stopped development on the tool, there are also better ones out there.
I graduated from Claude Code to Herdr to now T3Code.
T3Code can do anything I might need such a tool to. It supports a bunch of different harnesses, therefore also subscriptions. It supports running agents on different servers, from the same GUI. Mobile app that works well. Orchestration that allows any agent to orchestrate others in T3Code directly.
T3 Code has a few weaknesses compared to Claude desktop but on the whole it is excellent. It’s my primary agentic coding tool right now.
Holy cow their git change log looks insane, how do they manage that?
https://github.com/pingdotgg/t3code/commits/main/
Say yes to everything and everyone.
Apparently humans don't merge PRs.
Can’t herdr use subscriptions on multiple servers? Curious why you left it.
I'm using pi with herdr/ovis, which gets me both a GUI and a TUI. There's a Chat/Terminal switch, which is just a different view of the same pi session. It's got a decent mobile web UI, and I've been really liking it so far.
How do you handle the errors that the agents make?
How do you handle the potential errors that might be hidden in parts of the code you don’t understand anymore?
Or do you have 100% understanding of the generated code?
One of the very first thing you should do is stop using vscode’s terminal.
Use something like Rex, Ghostty, kitty or whatever floats your boat.
You will have a much better experience.
I use the terminal for most of my agentic workflows.
I still use vscode, but only for diffing and the proprietary devcontainer stuff.
Much less memory usage, too; each "vscode" window/tab takes a few GB, a claude in a terminal is 200mb.
I am not a terminal head, but I find it simpler to drop into a dir and codex from there. In the GUIs, I often mistakenly end up under the wrong tab (Chat/Work/Code) and if I am in Chat, sooner or later the thing will ask me to switch to Work. On the other hand, the GUI provides the history of threads. I semi defeated this by using hooks to write questions and answers to an SQLite db.
I wanted to use the Claude GUI but it wants me to enable developer mode just to run it on Windows.
I'm still using the TUI. I've ditched my IDE and use Sublime Text with LSP for code reviews and navigation. It works great for me.
Would love to use a GUI, however it doesn't work properly for WSL either in 1st party or 3rd party clients like Orca, so I'm stuck with TUI
I’m being slowly forced to use a GUI at work, and it’s fine, but I simply prefer the TUI.
I use:
claude agents
Granted, I run it as a terminal tab in my editor so that I can look at files. I prefer the TUI in a tab instead of the editor’s half-assed plugin. These days, however, I mostly look at PRs in the browser.
For my personal work I still prefer to let the agent edit the local files so I can preview the changes in my editor. I avoid PRs in my personal work.
I switched to the Linux desktop as soon as it was available to avoid all of the TUI rendering bugs and restore sensible copy/paste. I was using vscode's git panel to review diffs before they got committed, but had a feeling that there had to be a way to make agents pull harder so my review wasn't always the long pole in the tent.
Imagine a local GitHub PR web UI (thanks to difit), married to your agent for real time in-context discussions, and built-in skills to teach agents how to write easy to follow PR, focusing on both why's and hows.
Last night I released gavel that scratches this itch: it's open source, so fork and enjoy. https://photostructure.com/coding/gavel/
How do you sandbox Claude desktop?
Reading these comments I'm also curious about this.
I'm currently using some custom bwrap scripts (like [1]) to isolate projects with their own vscode /w claude extension
The desktop app I wonder if is worse because your web chat is accessible. In my bwrap sandbox, obviously some claude auth token is approved for using claude code, which I could be wrong but assume is limited and can't reach into web session history.
[1] https://gist.github.com/digitalsignalperson/9f8c995dd7c0f61f...
No I’m not using any GUI because (1) I regularly ssh to many different computers without any GPUs to run Claude; (2) the sandboxing tool required by work is built for TUIs because it highly restricts many kinds of file accesses including ioctls but basically exempts fd 0 and 1. I don’t think /dev/dri even exists in the sandbox; the Firefox browser does not run inside it.
I do not find the arguments against TUI convincing but that is just my experience. I use ghostel and searching in the conversation is so easy. I do not see any major scrolling bugs; I see a couple of small rendering bugs easily worked around by pressing C-l. I work on many projects simultaneously too but I do not understand the need to open one editor instance per project; I have one emacs for everything.
I also have that, and have been absolutely in love w/ the ssh capabilities of both Claude and Codex desktop apps!
I have a single history of sessions on my laptop, in the cloud and on various ssh machines. The app makes it easy for me to see at a glance which agent session is where etc
especially that I can also hop into these sessions from my mobile using the app.
I've tried many ssh terminal tools for the phone, but an agent I can talk to that is working on the remote machine is such a great form factor!
Went from TUI to gui. Main reason because I mostly let the computer do the work and control it from the phone. Was doing that over ssh but the remote web tools are better. Had to write my own wrapper for antigravity because how the google login is handled but hey. That’s what LLMs are for.
I also wrote a chat app between my machines that works over tailscale and can run agents on each.
I also switched to GUI and can't see going back, I think the TUI is kinda cosplay for people wanting to feel closer to the code.
You can get something to manage TUI sessions, but GUI has that by default and is better than the tools I've seen for TUI.
My one thing with the GUI is sometimes I wish I could have more windows open but /side solves 95% of those issues.
There are legitimate reasons to prefer TUI. It's easier to sandbox and runs on headless/remote sessions.
Claude code in the Claude desktop app can run in cloud containers. I actually use the desktop app because it’s easier for sandboxing and headless.
This is actually the thing that drove me to the GUI. You can just setup connection via ssh without thinking about it. A lot of my projects either live in a VM or VPS and so using herdr was okay, but the latency was getting to me and swapped to Codex and Claude Code desktop which make it super easy to just add remote machines over ssh and then there is no latency etc.
But you can't add a VPS to codex remote, can you?
Yes you can. You start a server with codex cli. Do a round trip with an authorisation token and you are in.
You can also use Claude Code TUI on a remote box with /remote-control and use the GUI to control it.
You can do the same with a GUI if you write a client-server architecture
This. I can't imagine trusting any of these models on my local machine.
You can run claude/gemini daemons on remote boxes and then use claude desktop app or antigravity or even just the web browser to drive the workflow from your preferred endpoint (laptop or even mobile phone). For me personally this is the best of the both worlds, especially considering that daemons run on env that is close to production, and my client is just a view into it, and GUI part of it allows for more efficient and more rich experience of going through the requirements, spec writeups, code generation and finally experiments. Writing, compiling, debugging, testing or profiling the code manually is no longer done by me directly, and this was the main use-case for me previously preferring and using TUI based tools such as tmux+vim.
Agreed, though I'm still sometimes preferring terminal just because the "split and do something on the side" UX is still much less friction than any GUI app I've worked with.
Main confusion in GUI is that it’s usually a list with sessions changing order in the list. Hard for muscle memory. In a split pane TUI I always know where a session is. Let’s say I have 5 columns, each is a specific repo or customer project, and each column might have multiple sessions for multiple tasks, vertically split. It’s basically two dimensional session overview/ table. Any GUI that has this?
Do you get the same access to the shell with the GUI? Every time I tried it, it felt crippled. It couldn't do most of the things I need to work.
> think the TUI is kinda cosplay for people wanting to feel closer to the code.
Or maybe we're using a Linux distro where the GUI is not supported?
I mostly use TUI because it's convenient, my editor already has good terminal management and keybindings. The GUI I reach for when it's a longer task I don't have interest in writing myself. Anything important in my projects I still prefer to write myself so I use the TUI more because the sessions are just me asking a few questions / requesting a build or dependency fix
So is the link to the article, here, that you think the switch to this GUI would be better than the switch to Pi? Otherwise I don’t really see the link to the blog post.
I use Konsole with a tab per TUI, and the page up/down buttons on my thinkpad for switching tui sessions quickly.
Same here, also mostly use the gui apps, main reason is that I do a significant part of my work on an iPad or iPhone.
The TUI thing always felt like a gimmick to me, it lets non-technical people feel like they’re doing something technical.
I switched from a TUI to OpenChamber, Paseo and now T3. The main features I need are :
-Annotate code diffs and LLM replies.
- Manage multiple agent windows and a branching workflow. I like to ask a lot of questions and go down rabbit holes.
- LaTex rendering.
I will switch to Zed for deeper code exploration and git management.
None of these tools are super mature, I only went with T3 because it seems the furthest along and it’s mobile apps are great, but I see a lot of progress being made as people start to accept that the TUI is more gimmick than optimal workspace.
VS Code now has the agent mode, but if you have already moved on, there is no point in coming back.
I’m very confused by the replies to this, I have a native GUI for pi, and it enforces all the sandbox policies, remote access, etc. I want while also giving me buttons and nice text rendering. It’s really not that hard to make.
Biggest reason I hate TUIs for chats: copy/pasting text from a terminal fucking sucks. Super limiting. (Not that I’m copy pasting code around, but even copying stuff to a message or spreadsheet, or even to a terminal to run myself)
I just do "Claude show me this text and add it to my clipboard".
LLMs are extremely good at removing these small annoying obstacles.
Same, or "write your response to `output.md`".
Just use tmux.
I can't deal with first party anthropic clients because they're not open source. Think about how long it took them to relent on supporting AGENTS.md. Being subject to that kind of hostile imposition is a non starter for me when such excellent open source alternatives exist.
I don't use the first party codex clients because they don't offer the same level of control as Pi. I just can't live without `/tree` and the ability to use headless neovim as my prompt editor. Maybe there's a decent plug-in system for codex at this point but it would have to actually be superior to pi's for me to consider switching, since I prefer to keep a single harness for all my agents (both OAI's and actually open AI like Kimi), but I might if the product were compelling enough.
As for well-designed open-source third-party harnesses; I'm not at all opposed to GUI. I used conductor and liked it, but again was disappointed by the level of control it provided. And once you get comfortable enough in tmux, it's actually pretty difficult to get a better user experience from a GUI. For instance, scrolling and using the clipboard in tmux are both far more powerful and convenient for me than dragging the mouse or spinning it's wheel. But I anticipate there being a really excellent GUI harness at some point!
Were you disappointed in the lack of level of control Conductor had or that there was too much?
Have you tried the other GUIs like T3Code? Curious what your thoughts on it are.
lack of control. No plugin system, not open source, and more rigid usage patterns than Pi.
Haven't tried T3Code. Should I?
I've always been bewildered by how people seem to prefer TUI for any of this. It's just a strictly worse experience across almost every dimension.
I was using vscode copilot chat for years, but recently got fed up with its bloat, as well as the fact that their supposed unified experience across desktop, web etc just doesn't work.
I tried various gui tools and settled on Open Chamber. Extremely happy with it after a few weeks full time usage. Rarely open vscode.
is it good now? last year claude GUI was awful, lots of bugs and straight out missing a lot of features
Using it with Zed + pi-acp is amazing honestly
> The GUI is less verbose with the nitty gritty hidden in expandable sections
Much of the nitty gritty is hidden in expandable sections in Claude Code in the terminal now too. Complete with mouse clicks to expand.
> Usually a TUI would be open in VS Code and scoped to whatever repo I'm working with so 10 projects, 10 VS Code instances open, not super scalable.
For my part I'd left-arrow in Claude Code, which gets you the agents backgrounded, so you can switch to any of them in any terminal. Then if I feel the need to look at the code separately I'll work on that in a separate tab. I use a few scripts to assing a default working directory per virtual desktop, so any terminal I open in a given desktop is scoped to the project I work on there anyway.
Not trying to convince you to switch - whatever works for you. For me the TUI harnesses + other terminals in a tiled setup is integrated enough that an IDE doesn't feel worthwhile.
Im still on Emacs with the awesome agent-shell. The use of LLMs have made code review the top prio for any serious development. I basically did a custom theme that shows git diffs inline, then hook that to magit. The final thing is the review process, here i can "talk" to an LLM directly from the code, and ask for changes, or a rewrite when i see slop.
This has been a solid setup, and a must have for agentic development.
Claude Code - TUI scrolling bugs and overall no project history is annoying. Having all your projects on the left in the GUI, gives me some peace of mind. I usually had several terminal tabs open previously.
I've tried the ChatGPT/Codex GUI and actually liked it. However a big part of my workflow relies on multi-agent orchestration between codex and claude code, which is still much easier to achieve in the TUI with tools like herdr.
Pi is a good harness (I finally gave it a try w/ abliterated GLM), but not with Anthropic subscription, and there are multiple reasons to avoid alternative harnesses with their models in general (imho):
1. Potential ban due to ToS violation;
2. It doesn't follow all Anthropic's communication mechanisms out-of-the-box, they heavily use custom headers, hidden flags, and undocumented API features that affect models' behavior;
3. Compact is better in CC (significantly);
4. Cache related nuances (I mean, A\ regularly messes up with cache even in CC, their caching is non-trivial);
5. It's almost unavoidable to use Pi's extensions, and I wouldn't trust my oauth token to anything third-party (take a look at regular reddit/X posts where people getting banned due to such leaks and abuse) -> it takes enormous amount of hacking on top of Pi to get closer to CC abilities.
CC has hooks and mods, even ui_* (undocumented) protocol if you need some big customization, those are enough to implement whatever you want on top of CC.
Also, I'm working with CC from the very first versions, as for me - it's the best harness (as-is) on the market. I have zero clue what problems people are talking about (except known big issues, 3-4 over the years, I've never had serious problems, at all). Seamless and smooth experience, optimized for Anthropic models.
P.S. You can consider this as Stockholm syndrome effect, but... you have close to zero chances to get unbanned with Anthropic, and it's the best coding model(s) available today.
> 4. Cache related nuances (I mean, A\ regularly messes up with cache even in CC, their caching is non-trivial);
I'd be curious to know the background around this. At work, I've used @anthropic/Opus 5.5 through Portkey with Pi, and ended up with $10 within less than 10 message exchanges, on a fairly trivial topic. OTOH, when using Claude Code directly with Opus 5.5, I basically spent $30 for a good back-and-forth across a full chat, reaching the point where CC kicked off compaction.
I've only used CC and Pi and the point of pi is to use extensions. Luckily you can write them yourself pretty easily.
I cannot get behind CC is the best harness. Once u switched to pi I knew I was never going back and occasionally I need to use CC for my subscription and find it unpleasant. CC is just this incoherent hodge podge of functionality that seems to have no vision. Subjective, of course.
How much does pi cost you when you’re using 5.5 via API?
I feel like the max CC plans are incredible value.
Why would you use it via the API?
I personally don't use Pi but Zed, but Claude is plugged using ACP on my Pro plan. I would never pay the API prices that's way too expensive.
How are you doing this?
I was under the impression that using Pro or Max from any harness but Claude Code was clamped down upon and likely to result in a ban so haven’t pursued it.
[Answering myself…]
Huh, I guess not.
You can still use harnesses/adapters that use ‘claude -p’ to connect behind the scenes. But the billing is extremely unclear, and it sounds like they use ‘more plan per token’ than just using Claude Code.
The Support page is very unclear, mentioning that you now get an allowance of tokens (and not mentioning the Pro plan at all in that section), and also saying that they’re backing off on plans they previously announced in June without saying what those those plans were, or what the status quo before them was:
https://support.claude.com/en/articles/15036540-use-the-clau...
…and there’s also this GitHub issue showing that tokens are ‘more expensive’ when using `-p`:
https://github.com/anthropics/claude-code/issues/97074
Zed GUI allows you to do it it's very straightforward, you click on new Claude thread, subscription, your browser opens, you allow the access and that's it.
https://zed.dev/docs/ai/external-agents
In Zed, Claude over ACP is still using the Claude Code harness but the rendering is done in the editor. It works really well.
Yeah this was also my impression, which is why I asked.
Claude seems to think that the only possible path is piping through `claude -p` in the CLI, but Pi doesn't do that out of the box. There are extensions (e.g. opius) that do, and it's not clear if A\ will ban you for it.
https://claude.ai/share/a1e4f4be-ef6a-4db1-a656-bddcf30540d0
I use both but I’m fairly new to Pi. For now things that I notably miss in Pi are plan mode and subtasks. I was also a bit surprised that it doesn't have default permission mode (deny all) like CC. It’d make sense when using an open router model. But I haven’t used extensions that much yet, so who knows what features I’m overlooking. I don’t see myself dropping CC for now though.
Isn't plan mode just a "make a plan first, don't change anything yet" addendum to your prompt? Haven't tried Pi, but given it's famous extensibility, that should not be too hard to build.
If you really want a “plan mode” you can ask Pi to add it. This is the strength of Pi. It isn’t opinionated far past excellent execution.
Anything extra you can add yourself. You just ask whatever model you’re using to query the documentation included in the pi application and then its away.
My base instructions for all harnesses say something like "when the user asks you to do something that seems like it would be complex, come up with a plan first."
Works.
I've found that OMP strikes a good balance
Personally, I recommend installing the rpiv suite, I like it a lot because it adds a lot of structure, better than plan mode on CC, IMO.
I switched to Pi and it was great but I had to switch back to Claude Code purely for the subscription. Even with all the token efficiency I built into Pi it just wasn't nearly as good value as an Anthropic subscription. All open models ended up being more expensive so I switched to using an OpenAI subscription, which was better, but the OpenAI subscription is way less generous AND their models are behind. It became hard to justify.
Sorry, what on earth are you doing where the open models are more expensive than the subs?
When I was using anthropic subs, my "equivalent usage" was $6k/month.
On the open models (specifically deepseek flash), it's < $100/month.
Same work, maybe more.
> When I was using anthropic subs, my "equivalent usage" was $6k/month.
Exactly, yeah. The subscriptions are insanely generous and far better value than open models.
No, my point is I can get the same work done paying < $100/month with the open models.
I don’t think you can.
You'd be surprised what you can accomplish if you don't just let the agents go wild.
An Anthropic sub is $200/mo, max. I only use open weight models, but the reality is that $200/mo Anthropic sub is way better value per dollar than an open weight model. I use open weight models for other reasons, but I have to limit myself to flash, and I am very controlling of which providers I use to keep the price down, and I still come out a little worse than Anthropic for my monthly bill.
I don't know how you use your agents and what kind of work you are doing, but my experience is that in terms of pure output per dollar, you cannot beat an Anthropic subscription with an open weight model.
I'm not saying you don't get good value out of your $100, I'm sure you're doing great, but I'm also absolutely certain if you followed the exact same workflow with an Anthropic subscription you would get better value.
The large open models (GLM-5.3, Kimi3, etc) are far more expensive than their large closed equivalents (Opus, Sol), because the closed models are far more subsidized when using subscriptions.
If you see no difference at all in between Opus and Deepseek Flash for your work, that is great! Personally, I found the latter to be unusable for the projects I was working on.
Can you describe what you are doing where comparing the two is problematic?
For what it's worth, I use DS flash for statistical analysis, design (C++, Python), scripting, server maintenance. The same I used for Opus.
I switch harnesses regularly depending on the model providers, and I only use skills which are universally usable in any model and harness combination. I don't want to get tied to a particular model or harness, and skills provide me the freedom to do so.
I can include any custom programs I need in a skill, and the SKILL.md file is just a doc of how to use those. It helps me save tokens and ensures determinism with repeated workflows since redoing a task is just calling a skill's program.
I also load only skills that are necessary for a project. I don't want to pollute the context window with unneeded skills.
> Luckily you can write them yourself pretty easily.
According to the article you can ask Pi to write ssuch extensions, so you don't have to, right?
I use pi with zero extensions after they added MCP natively. I switched to pi the first time Claude decided to get itself stuck in a loop with a bunch of work trees, sub agents and unresolvable merge conflicts. I don’t want Claude deciding when to use sub agents and work worktrees. I also like using the same harness regardless of which model I want to use.
6. A\ reduce model usage for non-CC client. https://github.com/anthropics/claude-code/issues/97074
You can write your own compaction function for Pi, and you can even have different, domain specific compaction logic if you want. The default one is dumb, I agree.
I've been using claude-bridge [0] and pi-vcc [1] for compaction and it has been a complete life changer. I'm slowly phasing out my Anthropic use for Mistral but I've used it for months without issues.
[0]: https://pi.dev/packages/pi-claude-bridge?name=claude-bridge [1]: https://pi.dev/packages/@sting8k/pi-vcc?name=pi-vcc
That compactor does not use any LLM calls and you find it sufficient? I'm surprised that works well.
It is lossless, and comes with a search tool (called pi-vss-recall).
It summarises the context, but doesn't touch the full conversation history. At the end of compacted context, there is a small note that tells the LLM to use pi-vss-recall to search for a specific keyword if needed.
I tried it out thinking it would suck, but I've been compacting this way for over 6 months now and I am not going back. Somehow, magically, it works great for me at least!
Most harnesses are not designed with conversations to be append-only from the start, which causes us all endless pain when caching is concerned.
When making a harness, it is so, so easy to do the "web thing" and have your system prompt be a template where you dynamically inject variables like the current date or the contents of the current working directory, and then just re-render that template on every request. THis is a bad, doubleplusungood, terrible, awful idea, and you should never do this under any circumstances. Anthropic will soon force you not to by literally refusing conversations that "break continuity" in this way and do anything but append new user messages at the end, but other providers at least appear to work.
I don't think I've seen opencode change the system prompt of a conversation, nor pi (though I have less experience there). Is there a specific scenario you're referring to where this could happen?
This is an example from opencode https://github.com/anomalyco/opencode/issues/32622
That's an old, closed issue. I think this has worked since the release of OpenCode v2, it looks like they added the ability to send update messages for the environment here: https://github.com/anomalyco/opencode/pull/30789
I haven't noticed any cache busting happening at midnight, but I'll pay more attention in the future just in case.
Of course the lack of any care for submitted issues or follow up from the devs is a long term known issue with Opencode, but it's not what we're talking about here.
I agree. They are probably solving problems we don’t know are problems, beyond UX (like caching). That’s one of the reasons I prefer CC over Pi. Codex is pretty nice too, with respect to UX.
Regarding credentials, my base instructions shared across all agents and all harnesses is that all credentials are accessed through a specific powershell script and should never be shown or written to file. This seems to work with pi, opencode.
Using the Agent SDK to connect to Anthropic is an officially supported method and does not risk a ban.
I use a cheap deepseek model for compaction on purpose since it costs a penny or two and does not use any of my Anthropic quota.
iirc, Agent SDK is api-only, no subscription
> they heavily use custom headers, hidden flags, and undocumented API features that affect models' behavior;
This is exactly why you'd want to use Pi. All these flags and updates to claude code break so many workflows and give a different experience every time you use it. It's highly inconsistent and very annoying.
this is also my fear, after seeing anthropic yank access to openclaw users, they could just as easily restrict users from third party harnesses
I just want to point out that you’re allowed to use Claude-* models that aren’t a part of your subscription. For example, the ones hosted on openrouter.
Anthropic insists your use of models hosted by them just go through API billing, which is more expensive.
Don’t do sketchy things to use you sub with pi. That’ll get you banned.
Claude models work fine on pi. I’m a happy user.
> Potential ban due to ToS violation
Anthropic gives monthly API credits for Max and higher subscriptions, equivalent to the subscription cost (so you pay $100 for the Max plan, and you get the normal subscription usage, plus $100 worth of API credits each month). My understanding is you can use those credits with any harness because they are normal API credits that you can use with an API key.
They won't last as long as the subscription itself (they are spent at API prices) but you can use at least use pi.dev with Anthropic models without violating the ToS.
I became interested in how the harness works internally so I could try to implement my own small AI agent in a business project. And I realized that right now, most of the model’s efficiency lies precisely in the harness. And that there’s a whole complicated world inside it, one that will soon become more complex than the models themselves.
All my experiments using third-party harnesses for code-writing agents showed that if a model is used in a non-native harness, it sometimes burns through 5 times as many tokens, and the results are worse. That’s why I now use MCP calls not to the models directly, but to new sessions within their harnesses.
Now, almost every day I see new announcements about coding agents with bold claims about their superiority. But in none of them have I seen a clear description of how they’re better or exactly how their architecture for working with models is superior to the original harnesses.
As I understand it, Pi is like "Lego" for building your own harness. But do you know what happened after I’d been using real Lego for half a year? I have 15 kg of it loose in three bags. My son and I have almost given up on the idea of sorting it out and actually using it properly. It’s pretty much the same story with my MCP, plugins, and skills for Claude.
Sorting lego? What. Just build stuff, why would you sort it.
... and I have to spend 4 minutes searching for every piece using the square method in 60 liters of LEGO.
That isn't how we built things with lego when I was a kid. Try just skimming it and building something more random. It's super fun!
Non trivial software projects of course require a bit more organization than most kids will devote to their legos. The ideal solution is to keep your software small and simple so you barely need to think about organization, but if you can't keep it small and simple, then you better not let it turn into a 15kg bag.
Pi is much smaller and simpler than cc, and it's a finished product, not necessarily DIY "legos". You don't have to build plugins for it, and many people say it's superior to CC / codex / OpenCode out of the box. If you do want to build plugins, it already provides you with a well organized system to build around.
Pi is without contest the best harness. Because it’s yours, the total control is the only way to move from driving agents to orchestrating them.
My interruptions and frustration with llms has gone down a cliff. It’s amazing to see what just a few lines of system prompt really can do to keep agents doing the correct thing much more often.
Second this, I went from Claude code fighting me all the time and being insanely opaque with its internals to Pi with detailed telemetry about what my agents are actually spending time on. My entire harness is completely custom, and works exactly the way I want it to. Absolutely love Pi
> Pi is without contest the best harness. Because it’s yours
You can do this with any harness. I really dislike the Node.js ecosystem and avoid Pi and the like. I started with another one written in Go that has all the basics and I can extend it in minutes for anything I need while keeping track of upstream.
Pi can run on Bun. I use it within ThinkRail which is an electronBun app! Pretty good speed and low enough memory usage. Highly recommended.
bun is just an alternative runner for the node ecosystem
I know but ElectronBun installs as a normal binary , you don’t need to install Node or Bun.
...it just bundles bun + the source files, it's no different from running a global bun binary.
What's your point? You avoid the node ecosystem even when you have no contact with it at all by running a binary? I couldn't care less what my binaries use as long as they are safe, have low footprint and are performant.
Except it’s not? Local bundled static electron and node is neither performant or safe…
BunElectron feels very performant. But I guess you don’t really want to know.
which one uses Go?
I recently found Zot. It’s basically a younger Pi written in Golang and distributed as a single Go binary. The author is very fast with fixing bugs and it has grown to a state where I use it for most things now!
https://www.zot.sh/
Another one written in Go is Crush
Ugh. They need to change that name. There already is a project called Zot.
https://github.com/project-zot/zot.git
Is OpenCode already passé? Especially with OpenChamber on top I don't see a reason to switch to PI.
OpenCode is a worse design in several ways. But the worst part is they don't really respond to issues or pull requests and support is nonexistent. Been in multiple issues with a dozen people begging for a fix with no response. So we all do what we can but there's no one community fix. A ton of OpenCode functionality gets broken constantly because they have almost nonexistent regression tests nor e2e tests for all the features. When they do break it you have to go to Discord and hope someone from their team sees that they broke something, and hope they want to fix it or take a PR for it. This is also ignoring the massive memory leaks that were just accepted as normal.
But with Pi being barebones and intended to be customized, there are a million extensions to choose from compared to OpenCode. This means not only can you write your own extension easily, 5 other people already have. I forked one popular question-asking tool and added support for an external ui (Zenity). And an LLM provider (Synthetic) had a bug which I helped get fixed in a 3rd party extension for the provider. Both I got done in days, because I didn't have to go through some official Pi team; extensions distribute the work better. It's still hard to manage all the extensions, but better than the alternative.
Why would you not ask opencode to fix the issue for you instead of asking opencode folks to ask their opencode to fix it for you? Surely Maintaining your own fork is just one markdown file and one corn task away.
OpenCode builds a lot of stuff into the agent core; I'd need to fork OpenCode. But let's say it was fixable in an extension. I'd need to maintain that fork/extension forever, re-fixing the bug and patchset for every upgraded version, re-patching the software every week. Everyone would have to do this, not just me. This is why "just fork it" is never a practical solution.
Their security track record.
https://wren.wtf/shower-thoughts/stop-using-opencode/
I know people who really like OpenCode. I think the experience is pretty similar to Claude Code in that it's set up, out the box, with a specific wat of working. If you like it, then great, if not, you're kinda stuck.
Obviously you can add skills/rules/prompts/etc, but I don't find those are particularly great at being stuck to.
Pi is much more minimal, so if you have strong opinions about how you want to work with LLMs, you'll have a much better chance of bending the to your will.
>Pi is without contest the best harness.
There is contest.
https://frontierharness.org/
With minimal work, you can get DSH web to be exposed to your internet behind Cloudflare Access (or similar) and have a harness running on your computer at home from any browser, including your phone's.
The cost leader of this benchmark, "Exo Harness", seems to a project archived already, or what harness is this?
It's outdated site, e.g. they tested Pi version 0.84.2 while Pi 1.0 is available since October 1.
> it’s yours, the total control is the only way to move from driving agents to orchestrating them
I wrote Juggler (https://github.com/juggler-ai/juggler) because I liked Pi's approach to everything being customisable and controllable, but I wanted a slick, navigable GUI rather than terminal hell.
...BUT: having gone to great pains to build an architecture around customisation, where every possible pluggable thing is a plugin, I'm starting to feel jaded on the whole "we need to customise it all" mentality. The models have got so good over the last year that I just don't think that tweaking the harness is something many people will need to do as things progress. The models only need a bare-bones set of tools to do everything they need, and I'm starting to think that UX and UI are the only really important things to focus on in an agent.
(Although from the perspective of coding a harness, making things plugins and having a plugin API does help to keep things clean and stops the codebase getting sloppy)
Not the same, but Plannotator now has an inbox where you can "email" your agents.
Exactlty. I love that it works the way I want it to work. I can install and write extensions I want.
I tend to agree with you. I wrote 4 separate coding harnesses of my own earlier this year (in different programming languages, great learning experience), but pi running good local models like qwen 3.8 next flash, or a deepseek flash API from a vendor with decent privacy assurances is really the bedrock of my workflow. There are always exceptions: running pool harness with Laguna XS 2.1 6bit is a really nice local dev experience for code maintenance and quicker sessions. Also, I very occasionally really enjoy DeepSeek Harness with deepseek flash, CC with Opus 5.5 and agy with the latest Gemini Argon.
So there are many wonderful dev experiences, but generally relying on something relatively simple like pi makes a lot of sense, for my use cases.
Which few lines of system prompt?
I've been daily driving Pi for over a month now and never looking back. The latest crop of frontier models have really complex bash calls, so I've written an extension that rewrites them into plain English while still making them easy to reveal in full, unlike some harnesses which seem to try to hide this from the user which is pretty irresponsible IMO.[0]
[0] https://github.com/siraben/pi-tool-summaries
I just have a hook that tells agents to echo what they're trying to do. Works fine.
alternatively, you could learn to read it
The rewrite is configurably off for bash/tool calls below a certain line length. I would prefer not to read codegolfed bash and python for hours every day, personally.
I just have custom instructions to tell the model to edit files using its tools rather than a gigantic bash pipelines. That's 80% of it.
Would that be useful in other harnesses/models like Codex? Wouldn't that lead to increased token usage?
I assume it works with any harness.
Frontier models have been pushed to reduce their token usage so much that they got to be creative and use bash CLI to edit files, which achieves the goal of reducing token usage but makes reading the traces less practical.
It's a trade-off. Personally I like occasionally re-reading the edits and I prefer use more tokens and understand what's happening (or have the illusion to understand).
I prefer not the fight the RL as the models get better, unless I've measured it and haven't observed any degradation. There may be other costs/no. of turns considerations too.
I’ve been using Pi since April. I switched from using copilot CLI which definitely isn’t the most frontier harness going but was more “feature rich” at the time than the stripped down feature set you get with Pi out the box.
The bit I was instantly drawn to was how much access you are given to change every part of it. Its similar to the text buffer in emacs where every cell in the buffer is fully accessible to any edits you need to make. My configurations are fairly minimal, but for instance I match the accept cli calls that could be destructive and edits to files in the same way copilot is set up.
Currently my pi config turns it into a tutor. It no longer makes edits, just advises and is designed to teach. I make all the code edits by hand. Use deepseek flash with it because its stupid cheap. It works for me, but honestly you can set up pi in any way you want which is why I personally think its the best harness by virtue of anything being possible as long as you can dream it up!
Could you share your setup? is it skill-based? I like the idea of using the model as a tutor/pair programmer so that I stay more grounded rather than delegating too much of the coding to it.
Its mostly just in the SYSTEM.md file. Its quite strict honestly, the rules have been built up to better curb my laziness, and also respond with statements that are better designed to teach than provide an answer.
Repo: https://github.com/MauriceElliott/PiCal
System.md: https://github.com/MauriceElliott/PiCal/blob/main/agent/SYST...
It has a break out phrase for when I have a deadline but its pretty useful in the normal mode so I’ve only had to use it a hand full of times.
I started using prime-agent [1] after reading the papers and it has been quite good so far. Better development outcomes vs OpenCode with GPT Sol 6.1.
[1] https://github.com/PrimeIntellect-ai/prime-agent
The author is complaining about Claude Code inside VSCode. The complaints don’t apply to the Claude Desktop App, for the most part. You don’t need VSCode to review code, just use the Claude app which has good support already. And if you’re moving to Pi, maybe use it with ThinkRail, from JetBrains. It’s my favorite harness since it can do everything I want: multiple models including local, focus on reviewing code after the agents are done, uses worktrees by default. And it adds some nifty tools for designing software which I am really enjoying. One thing it can’t do is let you edit files :) but that is ok, in the rare case I write something I use emacs, thank God no more need for a heavy IDE!
This is interesting, I've been using claude for work stuff because they pay the $200 subscripion but at home I've been using pi with glm-5.3-flash and now deepseekv4.1-flash.
When I'm doing work stuff I'm really not liking claude and only using it because anthropic doesn't allow other harnesses. If work would give me a $20 ollama cloud subscription in place of the $200 claude one I would be much more happy at work, that's how much I dislike it.
> anthropic doesn't allow other harnesses
they do though?
edit: i guess the parent comment meant subscriptions specifically.
Can you expand on this? Is there a way to use Claude subscription but not their harness?
No but you can use bb or t3codes etc with it. Not perfect but allows orchestration between harnesses.
I don't use this myself but I believe they enabled Claude Code recently with explicit permission from Anthropic: https://github.com/anomalyco/opencode/pull/58782#issuecommen...
Can I use my max subscription with Pi without Anthropic banning my account?
I used a claude subscription with omp for 6 months earlier this year, before switching to chatGPT which Im also using with it. Claude even has a splash screen on their login page saying logged in with oh-my-pi so I very much doubt they are trying to ban people for using other harnesses.
They definitely did ban people who used their auth token with other harnesses for a bit. Hence my hesitance.
In fact, if you ask Claude now, it will tell you not to try and log in to other harnesses as it violates the terms of service. One can only use API billing with other harnesses, not the Max subscription. Which of course is a load of toss.
Very high risk of a ban even though Anthropic is turning a blind eye to it right now.
> it because anthropic doesn't allow other harnesses.
You're not able to use the API credit and hook it up to another harness?
https://platform.claude.com/docs/en/about-claude/api-credits...
API credits yes, subscription no. And the subscription is much better value (per token).
> API credits yes, subscription no. And the subscription is much better value (per token).
The subscription now comes with API credits. That's what I linked to.
You can PAYG. But it costs an arm and a leg, compared to the subscriptions. Why? Because they're propping up the "moat" that is Claude Code.
Pi definitely has extensions which allow it. I googled "use Pi with Claude Pro" or something and Gemini was more than happy to point me at the extension.
So you could make yourself much happier at work by paying the $20 yourself
> because anthropic doesn't allow other harnesses
I don't think this is true. They never went through with this change. If you use the SDK it appears ToS compliant. You just can't sell it or distribute it, hence why pi doesn't support it.
You can use any harness with claude sub through llm reverse proxy
I use Requesty to get access to models from all providers, including Anthropic. It is pretty cheap and competitive with others for the quality. haiku 5.5 is one of the cheapest available, cheaper than Qwen while being superior in the price range (less than 10 cents per million tokens). I put 10 dollars to use on my hobby projects and I still have more than half after a couple of weeks. Using bigger models is dramatically more expensive, of course.
Switched to DeepSeek Harness recently, their new Creator Mode is amazing: https://www.reddit.com/r/DeepSeek/s/sxg7aAM6rS
X link for people who don’t use Reddit:
https://x.com/DeepSeekHarness/status/2117256196227019194
Ueddit link for those who don't want be tracked by Reddit:
https://www.ueddit.com/r/DeepSeek/s/sxg7aAM6rS
I built a Claude Code mod that displays a dashboard linking issues/PRs to claude sessions and allowing me to organize my work more around activities, such as reviewing, working on issues, fixing PRs, developing specs and ad hoc sessions. As someone coming from a vim in tmux, keyboard only workflow, this works most naturally for me without needing to break out of the terminal.
Also it's nice that it is a self referential setup that can be easily developed and enhanced right while working on things in Claude Code.
I'm sure many of you are building similar personalized setups.
Share it please I want to see
> The AGENTS.md thing kind of epitomizes the whole reason I decided to quit using Claude Code.
Do I understand correctly that this decision was taken based on something that's not accurate? Claude has been reading AGENTS.md files for a while now.
> Claude has been reading AGENTS.md files for a while now.
No it hasn’t, this is a very recent addition. Previously you had to symlink CLAUDE.md to AGENTS.md, or include a @AGENTS.md in your Claude file, but by itself it would not read it
I guess it depends on whether you consider 2 months to be "a while now". In the AI world it can be.
Give it ~50 more days and it's going to be "last year", that's ancient Egypt level distance.
The post was written in September
This only changed recently, in fact the author joked about it happening in response to them switching to pi the day before
Claude told me that Anthropic disallows Pi for use with Claude Pro / Max subscription and you have to use API. Is OP then switching to API and credits?
I have not used them but supposedly you now get API credits with subscriptions now. (I don't know if it's changed but in the past when they've given API promotions it required enabling billing for API and I don't dare risk some bug on their end billing me a billion bucks)
Works on my machine (with OMP). If they ban me I’ll switch to a different provider.
That’s not correct. It depends how you actually connect to the Anthropic API. The Agent SDK is allowed.
https://support.claude.com/en/articles/15036540-use-the-clau...
Ah great, unfortunately I'm just a pedestrian with the basic Claude Pro subscription.
> having a ton of CLAUDE.md files scattered about various GitHub hobby repos is great guerrilla marketing
Their real marketing comes/came from https://github.com/claude phenomenon. Irrespective of what underlying model you are using the claude code harness just sticks this github user as git commit author and then you have to make an effort to remove it. That is just odd.
Agreed that it's annoying by default, but it's quite easy to disable: https://code.claude.com/docs/en/settings-reference?ref=expla...
Pi has been my goto agent for several months now, the project is great and basically runs everywhere. If you like Pi, I suggest taking a look at Deepseek Harness too.
For those using Claude, there's pi-claude-code[0] which is currently still the way to use Ant subs in Pi.
[0] https://github.com/earendil-works/pi-claude-code
Is that still needed now that Agent SDK usage is included in subscriptions?
https://support.claude.com/en/articles/15036540-use-the-clau...
EDIT: I was mistaken. pi uses @anthropic-ai/sdk (the client for the Messages API), not @anthropic-ai/claude-agent-sdk (the Agent SDK).
Does Pi support that natively?
Yes, in the sense that Ant credits some number of dollars worth of API tokens to your account and Pi has long been happy to use an Ant API key
The Agent SDK is using the Claude Code harness. The point of using Pi is to avoid using that harness entirely. It wouldn’t make sense to use the Agent SDK in Pi; you would essentially be driving a harness with another harness.
If you’ve used Codex before, then the Agent SDK is Anthropic’s equivalent of the Codex App Server, which is Codex running headlessly with a protocol to talk to it.
I use pi.dev since it came out and love it - and pi-claude-code is a great help since Anthropic turned of subscription access. But I also see every day how Claude Code tries to lure me back and often refers to its own skills which then don't work properly eg when spawing sub agents or asking me to run certain commands. Dark TUI Patterns.
dsh-claude-subscription provides a native interface in Deepseek Harness and works great https://github.com/apcamargo/dsh-claude-subscription
Is using Codex through Pi allowed? I've been a Claude user, but a lot of the things mentioned bother me as well. I see it constantly make mistakes due to (simple) shell aliases, etc..
Not sure I'll actually switch but I'm curious. I've thought about trying to build my own harness and use Codex usage to work through it without spending a fortune on credits.
Yes, it is allowed and supported normally by pi and others.
Yes, you can use your Codex subscription with Pi without any limitations. It supports Codex out of the box. You may need to install extensions for things like tracking usage and limit resets though. Pi only provides basic Codex integration.
Yes. You can and it's easy to test. I'd also encourage you to try local models with it as well.
Pi/opencode apparently make 10% already of all traffic already:
https://manifest.build/blog/chatgpt-plus-tokens-third-party-...
Anthropic's subscription is the one that has historically been tough to use with other harnesses, where they have (had?) technical safeguards to ensure your subscription usage was limited to Claude Code CLI, with third party harnesses often implementing workarounds or faking it to use your Claude.ai subscription. Nowadays Jetbrains Air does officially allow using your Claude.ai subscription.
But OpenAI's subscription has seemingly always been available to use in other harnesses without trouble.
Yes and no. Any harness can use the subscription but must go through `claude -p` mode, which is more limited.
Why do you need to use claude to use a codex subscription with pi?
He assumed the original commenter meant claude, because Anthropic's the only provider that imposes the strict limitations on subscription use.
This, IMO, is one big selling point of Codex for me. The are much more accepting of usage outside of the Codex harness, and make it trivial to set up.
Using your subscription in 3rd party tools is explicitly allowed for Codex, and disallowed but not really enforced for Claude. There are extensions for Pi that allow you to log in with your Claude credentials, Codex is iirc even built-in.
There is no stick unlike Anthropic (along with insisting on signing commits and "don't abuse the robot" the reason I started to use OpenAI instead of Anthropic --- not that I am under the illusion they are any less evil overall) but I think now there is starting to be a carrot towards Codex usage since there sessions are "cached forever". I assume if you use Pi you get 12 hours of cache instead.
Am really happy to see more and more alternatives to Claude and Codex
And I think the biggest reason is what the “open source” models are doing. They are really closing the gap. Don’t get me wrong, the 2 American leaders are still pushing and leading the ai race
But with all the work done from other companies, notably in Asia, there are some alternative solutions : and they start to be really usable as our daily rides
I just wish Europeans would play part of this race - but it seems that we have already decided to sit in our sofa and we watch it sipping some tea.
Does Pi come with an auto mode that blocks dangerous actions? It didn't last time I checked, and these measures are critical to protect prod (and your personal files, etc) from a confused agent.
I gave the harness a try and it is refreshing, but the insistence on staying bare bones and not implementing basic functionality natively, together with no vetting process for popular 3rd party modules, made me return to Claude Code.
> bear bones
*bare
ty, edited
You have time to watch over your agents?
You'd have to install an extension or write a function that intercepts tool calls.
gotgenes/pi-permission-system and the ai-guard authorizer can do a lot here, it feels very similar to cc auto mode.
I built a policy authorizer on top of pi-permission-system that looks kinda like nftables that models commands/subcommands/options as read/write and enfores policies depending on if the sub agent is read only or write, which really cuts down on the stupid decisions and nicely complements AI cmd review. Pi shines for making things like that possible.
like the auto mode classifier? if it doesn't then... that's a risky tradeoff
Sounds to me like it isnt basic functionality if it all works ;)
Well yeah, the whole point of pi is that you build it to your workflow. If you dislike the entire point of a project, it’s not for you. I run my agents in a sandbox. When Claude or Codex then double sandbox themselves, it gets really annoying.
I would not trust auto mode in the first place.
Wrap your agent of choice in e.g. docker sandbox, nono.sh, Nvidia OpenShell, microsanbox or any other sandboxing tool and run it without any checks (i.e. "yolo mode", dangerously-skip-permissions etc.)
IMHO it makes the whole category of problems around permission fatigue, trusting the harness (or plugin) authors etc go away.
I did that. Customized Pi to run in Bubblewrap, made an action authorization flow, etc. But that's throwing the baby with the bathwater. This gives you a harmless, less capable agent. To get both safety and usefulness, Ant's solution of a fast classifier works really well.
For me, its the other way around.
Strong sandbox + disabling permission checks gives me maximum capabilities, least annoyance and (relative) peace of mind that any prompt injection, malicious plugin,... won't wreck my shit or leak credentials of any kind
Using Bubblewrap is pretty good. However, I moved to using Apple Containers with one local file directory mounted; When the container is not running, I do git operations outside the container. This is simple, and although not as convenient as running naked with no isolation, it is light weight and easy.
I use https://pi.dev/packages/pi-warden with Jev (but can use other Decisions API), it would make sense to combine with pi-permission-system to get the CC two stage "default auto" mode.
I wrote pi-automode for exactly that reason. Works well enough for me, YMMV.
https://github.com/czottmann/pi-automode
I went from Claude Code to Opencode to Pi and never looked back. I also lost interest in closed models and been using open weight ones exclusively since ~January and can hardly be happier.
Pi flexibility is awesome, mostly I use the TUI but I also build this Github action [0] on top of its SDK to enable all sorts of workflows, it's forge agnostic and it works on e.g. Forgejo (that's where I make the most use of it).
Pi also powers Awesome Pi website [1] which I built out of frustration with the at the time state of information around Pi.
[0]: https://github.com/shaftoe/pi-coding-agent-action/
[1]: https://awesome-pi.site/
How are folks isolating their Pi agents?
I use firejail to deny access to some folders.
Build your own(1.) on top of Pi has worked for me so far. You end up with something that fulfills your personal requirements and suits your workflows. I ended up with a web based ui, multi-session, simple sandboxing to reduce the “oops” factor. It has been a good experience so far. Web seemed like a decent compromise and a working PWA + vpn to access the ui has changed how i work with LLMs; more like a whatsapp chat than a true coding session. Image support has been a big game changer; ask the llm to screenshot and show things makes a huge difference.
1) vibecoded, “works for me” level of stability: https://github.com/randomcodemonkey/autere
I have been using Pi most of this year. Just one problem that's going to make me move to deepseek harness: no subagent support. I am using tintinweb/pi-subagents and it works, but always wondering if there is a better option. It doesn't seem to work right with Herdr's agent status.
I have a plugin for rotating between providers as quota gets used up by altering the model used by the tintiweb subagents. https://github.com/gregwebs/pi-quota-dispatcher
I've been using pi-optchat, might want to give that a try. Manually connecting subagents to the main agent keeps them open indefinitely. https://github.com/jonaslsaa/pi-optchat
I am using https://github.com/melihmucuk/pi-crew which I like more. It has pretty nice pre-defined agent .md files. Then there is also https://github.com/nicobailon/pi-subagents . It is probably worth trying all three and decide. But pi-crew is a winner for me personally.
Note that there is another extension called pi-crew which mentiones in Readme that it was completely vibecoded, I haven't tested that one.
I've been using Cursor for a few years now, and while I'm well aware that it's more expensive, from a UX perspective I am 95% happy. There's still a few things like not being able to move conversations between folders or computers, but big picture, a lot to love. It's just a really coherent dev experience.
When I read what folks write about CC and TUIs it all sounds... really, really awful and I kind of don't get why any wouldn't want to use Cursor. I'm posting this to see if anyone wants to explain how/why I might want to ditch Cursor and go all in on Claude or Codex or Pi or anything else. I'm open to being convinced!
Mostly, I just want to understand. My sense of CC is that it's great for folks who are looking to spend lots of money having 4 agents one-shot an entire application from a single prompt so that they can pick their favourite when they wake up. Is that an absurd perspective? If so, tell me how you use it.
I'm someone working on fairly significant but personal projects; I have a very clear picture in my head about what I'd like to get so I tend to write extremely dense, detail-filled prompts and go through a multi-revision planning phase before kicking off agent mode on a feature. The apps I build tend to be the result of several dozen or several hundred features developed mostly serially, and I am always the bottleneck because of that whole "knowing what I want" thing.
So, that's my usage pattern. Should I be using Claude (or Pi)?
> The apps I build tend to be the result of several dozen or several hundred features developed mostly serially, and I am always the bottleneck because of that whole "knowing what I want" thing.
This is probably where the disconnect is - the TUI workflow only really clicked when I started working across multiple worktrees at the same time.
It’s not all or nothing. You can still be fully in the loop, read all the code and steer each session towards the outcomes you want. You’re just doing it across multiple branches at the same time and imo it’s easier to do that through the TUI.
How do you stay effective when working across multiple worktrees at the same time? That is, how do you keep context in your head?
Then when it's all over, how do you evaluate which one to keep?
This is indeed a challenge and there is a practical limit to how many you can manage at once. It really depends on what I’m working on, for a sufficiently large enough project there are lots of independent tasks that can be delivered in isolation and so it’s rarely a case of babysitting all of them in realtime.
I tend to have one session that I’m actively focused on as my primary session, everything else I come back to every ~5-10 minutes to nudge them along while I’m waiting on the ‘main thread’. If my core task demands more of my time to think then I check less often.
The important thing is to find what works for you. If Cursor is giving you enough productivity then that’s awesome, carry on with it! I would recommend trying out other workflows, weighing up the pros/cons yourself and ultimately find what works for you. TUI-driven development isn’t for everyone in the same way not everyone likes to use vim and that’s okay.
I appreciate your conclusions, and frankly, you're probably right.
I'm still quite curious how folks evaluate between four completely separately but presumably functionally similar outputs and conclude that work tree 2 is the winner.
In the experience of the people reading this thread that have gone through the route of implementing their own customized harness with Pi... is is something very time consuming that ends up being a project on itself, or do you actually get time to _do_ things with it?
I'm asking because I tend to spend way too much time working on my tools and not enough time working on product I want to build with the tools... and I'm afraid a custom harness could become another rabbit hole for me.
If it takes you more than 2 weeks to stand up a usable harness that can improve itself (with or without you driving the harness), then use something off the shelf.
Otherwise, go all in.
Source: Daily driving bespoke harness since August.
I’m doing this less since they implemented MCP in pi, which is good for my day job.
For side projects, I now have a bunch of half-assed pi extensions as side projects..
IMHO, you should look for prior art if you really need it to get something done, otherwise, enjoy tinkering!
I've been using pi for several months with herdr. The ability to easily customise your experience via extension, with a small core, has finally made me enjoy working in harnesses. Also check out pi-blackhole (or billion context) + pi-fabric. The former basically gives you unlimited context and pi-fabric is subagents on steroids.
The new Herdr desktop has a great theming system. I haven't scratched the surface yet but it's blindingly obvious the future of software is (power) users being 100% in control of their workflow, what it does, how it does it, and how it looks.
Maybe trivial, but changing the font colors, agent status placement & colors increase my productivity 5-10%. I have more ideas like thumbnail previews, but these are specific to the project being worked on.
If you take pi and its extensions, plus herdr desktop, you have an agent that can run the way you want it to, and an app that shows the info you need in the style and way you want it to. I don't think there is one single superior workflow to dominate everything.
The downfall to this is LLMs being trained for their agents. Opus on Claude Code, GPT x.x on Codex. There are certainly strong echoes to vendor lock-in in the past if you look at all of the APIs we used to have with the social web. You could combine this with AI licensing and a national identity verification system and make the whole thing fucking miserable, with locked down hardware & software like iOS. There's a fair chance this could happen, especially in the EU. That and OpenAI + Anthropic merging are two scenarios that would suck.
My biggest claude code problem is that it calls git status with fsmonitor turned off via env variables and command line argument and I work on a super big repository.
I'm spawning a lot of agents to work in parallel. I guess I should just use the API, but it just shows that it does some random stuff you might not agree with. 99% of the users are ok with it because they don't have a 10gb repository
I built myself a tool because of the exact same reason:
https://github.com/nickyreinert/yaw/
I was struggeling with multiple markdown files, not only for multiple Claude sessions, but also Copilot and Codex, accross different machines and projects with diferent purposes.
The problem: This is not only about some pre-prompt instructions, its about coding instructions for different lanugages, frameworks and architectures and skill/hooks/tools for different purposes. I drowned in multiple setups (I have ADHD/ASS, I start two projects a week). So I decided to built this kind of "wrapper" that I can use with every new project. It allows me to maintain a global setup of "defaults" and then add modules to each project as I need them.
It's not fully done now, but it already helps me. Someone else might find it useful.
As someone who spends a significant time in the terminal (iterm2), I just have Claude sessions open in tabs when I need it.
My setup is Pycharm, datagrip and iTerm2.
I run all the tests, debugging, linting in the terminal and use the jetbrains gui features which I find useful (some git management basically).
It works great, and this is for building large enterprises applications.
Try and get on the early access waitlist for Rex, really nice terminal + multiplexer. Ghostty replaced iterm for me and my team, then Rex which uses libghostty was a great level up further.
Does Pi support ACP? IIRC claude code (the subscription) cant be used outside claude code or ACP?
The harness doesn't matter as much as what additional value the company behind the harness brings.
Example: claude desktop + projects gives free compute for compilation without any cap (that I've found). So that + opus 5.5 which practically never runs out, it's possible to get thousands of euros worth per month. On Pi/similar, the tokens + compute are metered and it quickly stacks up to something substantially more expensive.
Now this is clearly unsustainable, tip is to milk the cow for as long as it's possible
Feel pretty much the same as the article, but I love Anthropic's models so much that i've stuck with CC for an absurdly long time, and use Pi for literally anything else. Which i think has benefits as well. Can kinda track how well sessions perform and decide on which tools to enable/disable pretty quickly.
It really feels like the usage within CC just goes forever sometimes, and a ton of the stuff i found absurdly annoying are easily disabled tools.
I think it's perfectly fine and healthy to make this choice.
I just don't think it's sustainable. Corporate America, if not global corporations, will insist on code generation through GenAI. It will be a tick in the job requirement.
But if the OP and others can find sustainable employment hand-writing code, that's awesome.
That’s not what OP is saying at all. Pi is another coding agent.
I used CLI in tmux on a VM for a long time until I found https://paseo.sh/ - it's an amazing tool
I am using pi as the minimal coding agent for pc administration, incl. coding up scripts/daemons that help my infrastructure (automatically updating dns when my ISP changes my IP, automating letsencrypt wildcard cert updates and similar stuff). Tested continue.dev, aider, pi, kilocode and opencode for large projects and stuck with opencode for now. I am not fully happy though and hope something better comes along in time. It is just that the annoyances I have with it are not too problematic, I can cope. For some time I also worked with a custom harness I built on top of pi, but that wasn't great either.
I am a CC user on the 20x, 5x is too small for me. Doing some quick maths I found that the Anthropic subscription it is a bargain compared to other models on API usage.
Does using Pi saves you so much token overhead that my maths are wrong?
There are some extensions you can use to use your claude subscription on Pi, it runs Claude Code under the hood but with pi's prompts. The same is possible with Opencode
Yeah but then you still get Claude’s and codex massive system prompt which is around 20k tokens last I checked.
There is no 20x any longer, no?
I use both, and I think Claude Code is easier for beginners but Pi is more interesting to get a better understanding of what the harness is doing for you. Stuff like skills and MCP are sort of abstracted in CC in ways that obfuscate things, probably intentionally, while Pi lets you really see where a model got stuck and why. Inspecting thinking traces and dead ends from local models teaches you a lot about how they work in general.
Comments seem filled with generic fandom for Pi or other harnesses / multiplexers.
The actual post seems incoherent. They had a bunch of problems with Claude, most in features Pi does not even support in the first place. They don't like "instability" aka rapid pace of development, ignoring Pi is just as if not more rapid. They passively assume an ecosystem of plugins is going to be more stable.
I'm a big fan of Pi and believe everyone should use it or similar open harnesses in preference to proprietary / vendor controlled ones. But we need to employ actual cogent, coherent arguments in advocating for that. When a broader audience tries open harnesses and finds out they don't live up to expectations the blow back will be costly.
this article had a lot of why 'not cc' but I didn't see anything about why 'hello Pi'...
Model capability is what harnesses expose, I have experimented with pi using local mlx models - several 27/35B quantisations (Gemma, Qwen, Flint) and the reality is that they are much weaker than Sonnet, let alone Opus. Of course they are "free" (if you have a $3000 mac) but they are slow and dumb, useful for very routine things but comparatively bad at problem solving and trouble shooting.
I am genuinely curious to know what kind of genuine problems people are solving with opus that cant be done with sonnet or the free models. If there are problems that people are working on that only opus 5.5 can solve then were we not touching such problems last year at all (because last years best model was inferior to sonnet 5.5). And if people are solving such problems now, why cant I see any meaningful improvement in even a single software I use everyday?
Not trying to diss on anything or anybody. I want to know.
I took a few months out and it’s noticeable quite how much better opus is at least in respect of the quality of understanding. It’s a step change for me.
Sonnet 5.5 feels like a cocky rookie. It's capable, but it often makes mistakes and especially poor assumptions, and when I point it out it just goes "yeah I did that wrong". Opus is much better at judging assumptions, makes less poor assumptions and mistakes. And when I point them out it takes it to heart and makes sure it guards against such a mistake in the future.
Sonnet is great for simple work, such as subagents running a program and summarizing the output. Opus is just that much better at the more challenging work I find.
You can probably get Sonnet to reach the same goal, but Opus needs much less hand-holding and overwatch.
I don’t think OP is proposing using a local model?
Why do you limit yourself to mac?
You can run larger flash models on a modern PC using strata. These models perform pretty good even on low quants.
Furthermore, next generation open weight models will swap some compute for storage, making them more accessible for masses.
Maybe he doesn't want to wear earplugs constantly and/or doesn't generate his own electricity?
I haven't used any TUI harness for a couple of months. Actually, I have almost completely stopped using my laptop to run agents since maybe July.
All agents are ephemeral and running remotely now, and my phone has become my primary device to engage with agents.
(I'm using Ampcode and a variant of DeepSeek harness)
Yeah, this post calls out one of the major risks of making it easier to write more software. More features put more cognitive load on your users. If you introduce those new features unobtrusively it might be OK, but if you force it on them, you may lose them as users.
Switching away from Claude Code to OMP (Pi fork) has been good for my mental health.
I can't remember the last time I got frustrated with the continual gaslighting and failure to follow instructions when using OMP as I did on a daily basis when using Claude Code as the harness.
I also have the freedom now to switch models as frequently and often as I like, and have actually been primarily using GPT 6 series models over the last month.
The biggest frustrations with Claude Code were Anthropic's straight-jacketing of the model, its refusal to follow instructions, and its indecipherable output (yes, even with 5.5 series).
Using Pi or a derivative like OMP is a breath of fresh air, it's just a tool again.
Maybe Anthropic could de-program themselves from the Claude religion and come back down to earth at some point.
(Deliberately tooting my own horn) I’ve been on the same path. One of the first frustrations I ran into when migrating away from Claude is that I really missed the ability to create and interact with artifacts. The idea that the products of my conversations was locked away in some frontier AI lab silo bothered me.
I built OpenArtifacts (https://open-artifacts.com) to fix this exact problem. It’s free, open source and trivially self hosted on your own Cloudflare account. I’m releasing a hosted version in the coming days. I’d love to hear what other think.
I switched from Claude Code to Oh My Pi via https://agent-distro.nixos.asia and have never looked back.
On My Pi is what I use for other models too: codex, opencode go, etc.
OMP is great for anyone who doesn't have the time and/or inclination to figure out all of the pieces neccessary to turn Pi, which is really a kernel, into an effective, battieries-included coding harness.
I don't get why most of these tools are terminal-based, can't they generate a proper UI using AI?
I don't get why many of the products from major providers are GUIs, don't they know how to generate a proper terminal-based tool?
Turns out, no. There's a Hemingway quote that greatly describes the current AI situation: never confuse movement for action.
If you still really need closed models, consider a tiered setup: open models on neoclouds (95%) and frontiers for the hardest planning (5%). We've reduced costs dramatically. There's no good argument to use only closed models for most development.
I've been using Claude for almost two years now. Back when everyone was talking about ChatGPT, I installed the Claude Code CLI on my Debian machine.
At that time, Gemini was offering a similar tool, so I decided to compare the two. Honestly, Gemini struggled to generate even a single working function without errors and kept apologising for its mistakes. Claude, on the other hand, was significantly better, even in its early days.
Since then, I haven't switched to another LLM for coding.
Now we're discussing Pi, which supports BYOK. My take is that no third-party alternative can fully replace a native solution, especially when it comes to getting access to new features as soon as they're released. I believe this applies to almost every type of software.
Yes, I'm the same. As for any feature that CC has, you can build it with one prompt with the Pi extension system. For remote control you can just use Cosyra (my app) or one of the other SSH mobile clients.
I'll say that I really enjoy CC's UI - especially when combined with artifacts that I ask CC to make along the way to make decision taking easier...
> Someone at Anthropic must’ve caught wind… just a day after making my decision, they announced Claude Code would finally start supporting AGENTS.md files in an effort to get me to stay.
Forgive me for asking if I should know, but who is the author? Is he famous?
>> Someone at Anthropic must’ve caught wind… just a day after making my decision, they announced Claude Code would finally start supporting AGENTS.md files in an effort to get me to stay.
> Forgive me for asking if I should know, but who is the author? Is he famous?
I think that was tongue in cheek. And by that I don't mean the author's tongue was actually in his cheek.
I also think it went over your head. And by that I don't mean I think it literally went over your head.
It's clearly a joke, but I can forgive some people for taking it literally, given the impact that certain well-known devs have on other companies' decision-making. It's a common enough line that it's plausible this could have been a VIP whose opinions swayed a company. Not him and not Anthropic, of course, but it does happen.
I wouldn’t even say not Anthropic, Boris is soliciting recommendations for Claude Code right now in the secrets exposure thread. Hardly implausible
I can't believe you didn't pick up on the sarcasm in the GP's comment...
While I agree the sarcasm is obvious, important to remember sarcasm doesnt really translate well if english is not your first language, and notoriously does not translate well online regardless, see:
https://en.wikipedia.org/wiki/Poe%27s_law
'Tis a joke. His landing page says he's a dev at Salesforce, so I presume not famous.
I’m definitely not famous :^) thanks for reading!
It’s not that unreasonable, or at least wasn’t a few years ago. I complained about the Chatgpt Pro $200 not allowing basically unlimited image generation (the limits were super low) a couple years ago and the next day Sam Altman tweeted asking about switching up how they handle Pro plans and putting usage into a single pool (which is what they moved to). If he didn’t read my email directly the gist at least got to him.
> At the time of writing, there have been 244 releases to Claude Code this year; over 3/4 of these changed the system prompt or tool descriptions.
ooof, that is a lot!
And we're supposed to believe them and start one-shotting our projects...
Alternatively, what you’re seeing is continuous hill climbing and optimisations based on large scale experiments and simulated rollouts.
For me personally, I don’t use Claude Code because I can’t read the source.
At least with Codex, I know there’s a bunch of telemetry and all that, but I can have my agent inspect the source and have relatively greater confidence it’s not implanting spyware onto my machine, because a classifier thinks I’m working for Deepseek or something.
They're hill climbing by changing their system prompt... That's not how thats done.
They're changing system prompts to control how users use their llms.
> Alternatively, what you’re seeing is continuous hill climbing and optimisations based on large scale experiments and simulated rollouts.
Let's be real. If their tools were as amazing as they're touting, Claude Code would be a tight, hyper optimized Rust/Zig/FreePascal/whatever 3MB binary that would launch instantly, have no trouble scrolling text at lightning speed on its 20 platforms, etc, etc.
That's assuming they're optimizing for those things. The software industry hasn't cared about optimization for a long time.
All they care about is how to capture profits and market share. The truth is that these optimizations don't do that.
From the article’s footnotes:
That should be corrected to “could literally lose millions of dollars in inference revenue per year”, which also goes some way toward explaining why it doesn’t happen.
Does it speak a more understandable dialect of English? "Claudish" is a minor meme at this point.
There are a ton of choices when it comes to coding harnesses - Pi being just one of them.
DeepSeek harness for example seemed really powerful when I tried it.
I'm using Cecli which started life as an Aider fork..
pi is pretty great. Bit unfortunately that it is built on a node stack too, but seems to at least be executed well
isn’t the point of CC the subsidized tokens of the pro/max accounts?
the tool descriptions and system prompts are notoriously overcooked but you can work around it with careful config; my startup context in CC is 10k, and i could have pruned it way more if i had wanted to be aggressive about it.
I think Anthropic is working on allowing AGENTS.md files as well. However, Claude.md files take precedence if present. If not, you fall back to AGENTS.md.
Claude now supports AGENTS.md fully but the rest of what you said holds
It has since 9/16, however folks soon realized it supports AGENTS.md, but not .agents/skills.
This is such an important detail the main issue for this was closed and then reopened with an expanded title:
https://github.com/anthropics/claude-code/issues/31005
I use multiple harnesses and… I don’t get what the fuss is all about? I seriously don’t care what I use for the most part.
I mean a “harness” is basically just something that turns models output to action. Just have model return json with what it wants to execute and execute it is basically it. Your machine _is_ the damn harness.
All the ergonomy and features are doomed to be obsolete as we get better models, so… whatever.
Harness has vast impact on performance, cost and how you extend functionality.
Pi users : what do you think of Mistral Vibe ?
I simply use “TUI inside of GUI” approach: I use Zed (switched from VSCode and now probably going back to PyCharm) and then only use coding agents inside the Zed terminal. I think you get the best of both worlds that way.
most of the time, claude gui or codex gui is good enough. this is for people doing beyond reasonable work on edge cases.
Until it's inevitably replaced of course
Pi is awesome until compaction hits. I think one in every two compactions it’s failed on me ie didn’t know how to continue :(
Try pi-vcc or pi-blackhole
Thanks! I’ve taken a look at Blackhole before but it looks way to complicated for what I wanted. I’ll check out VCC. Thanks again!
Yes.. pi-vcc does what no other compaction extension has managed to do - work!
Thank you!!
I never really rely on compaction. Instead, I instruct the coding agents to maintain a handoff markdown document across sessions. Ymmv.
What about if you’ve given a plan that will take hours? How do you tell how to auto-compact since it can’t read its own environment?
Cannot show now because Github times out for me, again.
I had pi write me a ralph loop plugin. You plan with it, it breaks it down into tasks. Task success means clearing the context - if it runs out of context, it clears and starts on the same task again (code changes from previous run are left intact).
Complete with little docker-like names for Ralph sessions and the ability to resume sessions should you need to.
Point is, I would generally do this because it costs less context I think, and better tracks progress.
Ping me if you are interested and want it. Otherwise, plenty around :)
Please share with me.
https://github.com/jwdevantier/ralphish :)
Hehe yes please. I’m not sure how it will go mixing it with Superpowers, but your workflow sounds really useful. I like that it can recover from zero.. especially when I overclock ram and then hangs
Hey, replying so it's easy for you to follow up on.
https://github.com/jwdevantier/ralphish
:)
Remember, I didn't write a word of it - so if anything is not to your liking, it's no harder than pointing a model at it to fix it. One of the many powers of Pi is the way plugin- and API documentation is bundled in.
Nice. Thanks for the link :)
I do something similar to this, but manually. I just ask Opus to break the implementation into phases, after each phase is complete it'll update the handoff document, and I'll review the work before starting the next phase in a new session.
I actually started using Opus 5.5 2-3 weeks ago and I'm still having to adapt my workflow around it.
Something is misconfigured on your end. I have had some trouble where parameters were incorrect, but otherwise I have used several vendors (local, openrouter, ollama cloud, kimi, deep seek) and it generally works.
Most likely context length parameters aren’t set quite right for your model/provider and you genuinely run out of context during compaction
I get 150 tokens/sec on my coding agent, if you are on a MacBook, thats with an M1
try kapitsa as the inference engine with pi as the harness
It works really well
Man, my M1 Pro unfortunately only has 16GB of RAM; it has been such a limiter to using local models. I'll give kapitsa a try, I see I should be able to squeeze some smaller models on
kapitsa is customized well to just a small selection of models that are in vogue right now, focusing on qwen and nemotron
compared to llama.cpp that tries to cater to all but does so only averagely
check the catalogue and see if one of the quantizations fit
Anecdotally I run semi nightly harness and local model test runs, and opencode consistently outperforms ohmypi on various code bench tasks.
Note though that this for local models that can run on a 5090, so, kinda dumb models with a small context window. Also they might perform differently on a custom pi setup rather than the very feature rich ohmypi.
Mostly the runs just cause me to get decision fatigue so I typically just use opencode and let a frontier model choose whatever cheaper models it wants to orchestrate with, so long as it's one that's not on the same token budget.
P.S. I'd always wondered who it was that got caleb.software before I could... Outshot in a western duel!
Opencode's system prompt is much smaller than omp. Smaller models may not work well just because of this. Also omp is not pi.
Alas Opencode's source is hideous to read.
When you say "kinda dumb" it's worth noting that the smaller coding models tend not to actually need system prompts to be helpful coding assistants, etc. Qwen maybe more than Muse Glimmer? I've not tested Qwen 3.8 27B enough yet. Even Gemma 4 didn't seem to need much.
Muse Glimmer is so absolutely tuned for one particular pattern (turn-by-turn agentic coding and assistance) that it will do it more or less without a prompt at all (except to set the reasoning level maybe). Beyond the tools announcement, it feels to me like it almost only needs a prompt to do plan mode stuff. If LM Studio (in either of its forms) or Unsloth Desktop had proper support for running inside a linux container rather than just a filesystem sandbox, you'd barely need a dedicated coding agent at all. Osaurus gets even closer.
I wanted to like Opencode but I can't, really. I am enjoying Pi slightly more because it's just way less convoluted and obscure.
FWIW I use Paseo for the GUI, which to some extent eliminates that aspect of decision fatigue; if you like Paseo's UI well enough, you can have it with almost any harness. And since it can connect to its daemon via ssh you can still have the desktop GUI with a container. (Not clear to me if Opencode v2 Desktop makes remote connections to the daemon or just wraps the web interface like v1 did)
I do not know how it is with Glimmer, but other Facebook models (Muse and whatever is currently hiding under "Crouton") sure love ignoring direct instructions to do or not do something important (like not using particular broken/inefficient tools). Doesn't matter if it's repeated ten times in screaming caps, they'll still ignore it at least sometimes.
No other model I've used does this.
It is often very determined to continue, so it's a little difficult to steer when it gets the bit between its teeth.
The most peculiar thing is that it expects to be able to "read" directories? Harmless, so it fails, but it's a waste of a tool call. I am increasingly wondering about modifying Pi's read tool so it returns a directory listing in that context.
I have had some difficulty getting it to have a nuanced understanding of how I want to manage git, but I am reaching the conclusion that it's me that needs to change there. Basically I don't think you can say "only commit when I ask you to" and then actually ask it to more than a couple of times in any session, because it will tend to then assume it can go ahead. Scaling the context up might help me a bit there.
But apart from this, I really like it.
I will test Qwen 3.8 27B properly at some point, (though judging by the insane, empty noise making campaign that is going on on social media, Qwen 4 is near)
ohmypi is not pi, it's based on pi, but it's not pi.
Hah, I grabbed caleb.software way back in 2020. It’s cool and all but I kinda regret not just going with a traditional domain… you’d be surprised how many older sites reject .software as a TLD entirely when creating an account or whatever. Plus namecheap keeps jacking my prices up, $60 to renew this year so I’ll be transferring to cloudflare (still $30/yr, 3x what a .com would cost). I feel kinda locked in at this point but if I ever decide to give it up I’ll shoot you an email.
Claude code may still be a good choice as long as they have Opus
what about the API cost doesn't it way expensive than the Claude or any other LLM provider monthly subscriptions ?
Why not use dsh?
I am really dissatisfied in Codex and Claude, not because they are bad software, but because I feel complete lack of control, LLMs are non-deterministic enough that I don't feel to compound it with an harness that changes every day.
Every few versions the behavior changes, the way they use tools changes, the way it reads or ignores skills, suddenly they start creating worktrees and make different messes and you're not even aware they launched background jobs or server instances, so they kill them in a different parallel one you didn't even knew it existed.
I can't but feel that the "one main agent with all the tools and skills" design is limited.
Where do you buy your tokens when using Pi?
ChatGPT plus or pro
An accountless provider such as PPQ.ai or NanoGPT (and these also have auto-models so that the best model can be chosen depending on how easy or hard your prompt it). If you like this idea, use this pi extension to use them: https://www.npmjs.com/package/awto-pi-lot
lithosai, it's awesome
I highly recommend Paseo. I feel like I finally found what I was looking for after so long.
https://github.com/getpaseo/paseo
It works really well, has the nice code diff view which what I used to open vs code for, and it lets you drive from your phone.
All the beefy work happens on my machine at home with big hardware and .env secrets, etc. And from my phone I'm able to run multiple threads with multiple models/thinking modes.
I think a testament of how useful it is, is everybody on my team switched over to Paseo pretty much in a week.
Mario is wicked smart.
Pi is awesome!
Unfortunately I have to use Claude Code at work, and it is a very frustrating experience, I constantly find myself trying to bend it to my will. I sometimes suspect that my distaste for Claude Code is one of the reasons of my distaste for Claude as well.
Pi on the other hand is a joy to use. Top notch session and model management, excellent conversation tree/branching functionality, and it lives up to its philosophy of being meant to be adapted to your workflow.
I can't recommend it enough, especially if you use alternative LLMs instead of Claude.
Are you not able to /login in pi with your Anthropic enterprise account? Or- do they need users in software that they can manage with enterprise controls?
is pi good if i just want to search through a codebase i don't know with, say, GLM?
i would say this is a basic feature of any coding agent on the market
I have tried Pi, but at this point I'm using a fleet of hermes agents to connect realtime via webrtc to a custom web dashboard (written in rust) that works on multiple projects/tasks atomically and simultaneously and compiles/tests locally and then submits to a private central git with all its changes and then pushes to dev for testing, then prod. The agents working on tasks can request new tasks and a supervisor is configured for each project that does a scheduled review and proposes recommendations based on what has been done and needs to be done based on the project plan...As new agents come online they can be quickly enrolled. It works well when you're working on many projects simultaneously. Its also a good use for a stack of 10 old laptops.
Damn I built almost the exact same thing lol, down the supervisor for each project and web kanban board thing. I use fly.io sprites for the compute which has been cool to experiment with.
The whole AGENTS vs CLAUDE md issue was bound to be resolved. If the models are getting smarter and harnesses getting better - how could you have a product so dumb that it ignores whatever skills, instructions, references, other things that are part of the folder context it is mounted in.
Having claude code ignore agents.md just made it seem dumb. At this point, you probably don't need either.
> At this point, you probably don't need either.
There's only so much stuff I have the patience to tell it in a session before I write it down somewhere.
"Write down the rules I told you in CLAUDE.md"
Now they just need to solve MCP standardization across agents
Is it just me or has Opus 5.5 on High been disappointing for the last week or so? It's been making a lot of silly mistakes, bash issues and killing it's own shell much more than usual.
> In spite of all of these existing issues, it seems like Anthropic has worked at a feverish pace to pack more features into Claude Code without much care for quality or stability
To me this is why AI-pilled orgs or groups won't win.
The thing that freaks me out about Pi is it seems to have zero sandboxing or security guardrails unless you explicitly add them. I guess it's fine if you're only ever running inside a VM or a throwaway machine anyway.
WRT security, I recommend you skynot to use Pi (it's in the sweet-spot IMO): https://www.npmjs.com/package/skynot
I wrote it, in case you have any questions AMA.
bbapp is legitimately good too
"longtime ... over a year ago" This time dilation is getting ridiculous.
For usage with open models, I'd highly recommend Swival as an alternative to Pi: https://swival.dev
It's common to disclose that it's your own project when linking it. Don't mean to be rude or anything.
> It seems like there isn’t someone high-up whose job is strictly to say “no” to these requests, which is incredibly important when it comes to product engineering
Ah, product management - we know so few of ye who know what you're doing.
Utterly insane naming decision on Pi there. Not sure why AI people think intentionally making their tool impossible to find or name is a good idea.
Bro talks like an expert and got a point but still using gmail: calebdotsoftware@gmail.com, come on...
It's free?
neckbeards and their incredibly autistic, specific preferences about everything that nobody cares about.
I mean... sure, yeah.
But this feels like six weeks (or more) out-of-date. And so it is - from mid-September. And I know that observing such a thing sounds bizarre and teenage, but that's kind of a long time right now; we're at a moment in history when things are moving fast.
We're not really fully ready for the traffic TBH, but for those who few of you choose to click, this is what we've been doing with pi lately:
https://magenta.cryptograss.live/
Made me click, but I have no idea what this is supposed to be.