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.
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.
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.
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
OpenChamber (the Desktop App, not the VSC extension) for OpenCode currently works best for me. Especially for the seamless remote control via their iOS app.
? 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.
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.
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.
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.
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.
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?)
You can't even have 'tabs' inside of Claude Desktop, which is a dealbreaker for most power users.
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.
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 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)
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 that runs 100% on the browser: https://agegr.github.io/pi-web/
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..
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.
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.
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)
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.
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.
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.
I use whatever IDE to review the code, read tests, etc. I used to use the terminal for everything prio AI, but not anymore.
I was a long term user of the TUI and tools like cmux / herdr but now I find it much easier to actually focus
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 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.
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.
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.
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.
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?
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.
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.
Last night I released gavel that scratches this itch: it's open source, so fork and enjoy. https://photostructure.com/coding/gavel/
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?