276 comments

[ 3.4 ms ] story [ 47.7 ms ] thread
> 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...
'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.
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.

(comment deleted)
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. Qwen maybe more than Muse Glimmer; I've not tested Qwen 3.8 27B enough yet.

But 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.

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 frustrating thing is that it expects to be able to "read" directories? 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.

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.
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 to just a small selection of models that are in vogue right now

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

> 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.

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.

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. They seem to be much more accepting of usage outside of the Codex harness.
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.
> 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.

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/

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...

  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.
Does Pi support that natively?
(comment deleted)
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 essentially 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.
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.
> 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.
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.

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 :)

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.

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'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

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 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.
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 bear bones and not implementing basic functionality natively, together with no vetting process for popular 3rd party modules, made me return to Claude Code.

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 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'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.
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.

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.

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.
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.

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.
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)
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)

> 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.

Sadly Orca doesn't support chatview via WSL
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 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..
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?
> 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.

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.

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.
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, but I do that less and less these days, with most work in worktree’s that I don’t even have open.

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.

Last night I released gavel that scratches this itch: it's open source, so fork and enjoy. https://photostructure.com/coding/gavel/

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.

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.
[delayed]
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 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.
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, 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?

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.
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?
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.

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..

Until it's inevitably replaced of course
Claude code may still be a good choice as long as they have Opus
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.

> 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.
Is OpenCode already passé? Especially with OpenChamber on top I don't see a reason to switch to PI.
[delayed]
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.
>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.