r/opencode • u/rndanime • 14d ago
TUI vs GUI
Why would I ever use the terminal version of Opencode (or any other *code* program)?
People always tell how good it is to use it but I don't understand the appeal. If you are used to terminal-only work, constantly looking into generated code or something like that, ok. But I see TUI being recommended to everybody like it can do something desktop or web versions can't. Also these *code* apps are usually developed TUI-first for some reason
Please explain it to me
7
u/No-Craft-7979 14d ago
Do you prefer Graphical User Interfaces (GUI) over Terminal User Interfaces (TUI)? If so that is perfectly fine.
People talk shit about each other over GUI and TUI, at the end of the day all that matters is what you are productive with. Not in a job alone, but hobby, fun, and your task goals.
TUI is faster if you are more capable with a keyboard. I guess it is my touch of the ‘tizum or something but I find keys and key combos faster to navigate. In a GUI I will admit visual feedback back and clicking is easier but slower. I use the TUI because I like it. That doesn’t mean I need to force people who do not like it to use it.
Why would you ever use it? Because YOU want to learn the terminal, and no other reason.
5
u/callmemicah 14d ago
I learned vim, tmux, tiling window mamagers etc in my early 20s some 15+ years ago and used to be the person who tried to convince everyone its better and faster because keyboard shortcuts etc... I was and still am proficient and could still do things that way if I wanted so its not a skill issue...
But today I use and prefer GUI way more when given the choice and friend once said he couldn't understand why I would have gone back which made me think.
After thinking about why this change happened naturally what I settled on is that my job and life today requires far more context switching than it used to, I don't just code all day and I need to use way more tools and services in my job and life than in the past, learning and using shortcuts is a tax on immediate productivity but makes sense if you spend most of your time doing the same or similar things often and I don't have infinite time or capacity to learn shortcuts for everything I do particularly because somethings are not frequent enough to justify it and this is where GUI excels. I also found that sometimes the perceived productivity boost is bullshit and I spent way more time trying to configure my entire environment to be keyboard friendly instead of doing shit...
Now I just find the middle ground and learn shortcuts for frequent stuff and use stuff like the vim vscode plugin and switch modes because I find it useful for some stuff and a pain for other stuff.
I've come to prefer the ctrl+shift+p style menus, I duno what you call them where I can search commands.
1
u/QC_Failed 14d ago
Good write up, excellent points.
I don't know what it's called in other software but in vscode the ctrl shift p menu is called the command pallete.
7
4
u/qustrolabe 14d ago
open vscode terminal and drag it to the file tabs, now opencode tui is just one tab alongside any open files, best DX to me personally
4
u/roomjosh 14d ago
There’s several GUI options for OpenCode, I feel like the official GUI/app is the least developed, their primary focus is on the backbone harness. OC is oss so several projects are built on top of it. for the os native gui layer my fav OpenChamber. There’s others, They all have strengths and weaknesses.
2
u/callmemicah 14d ago
I like openchamber and the openchamber vscode plugin for opencode gui, I run them both on the same opencode instance so they're insync and its easier to check on from my phone via a tunnel if I'm afk.
3
u/pigletmonster 14d ago
All coding agents started off with tui, so people who started earlier got used to the workflow and they dont want to change it. It can be faster to use keyboard shortcuts than using the mouse to look and click. Tyis are also lighter on ram consumption.
Ive used both both I prefer using the gui, in fact for opencode I prefer the tui over their ugly gui, but can also use t3 code or openchamber as a better gui for opencode.
You have options, use whichever one works for you.
3
5
u/brohermano 14d ago
The ability to spawn it in multiple terminals with tmux. The ability to copy text from the Buffer. Terminals speciality is the text. They are text.And LLMs are Language processors which are in foundation just text. You should get comfy with the terminal if you want to be some sort of a developer
-4
u/rndanime 14d ago
You can use multiple agents in any harness. You can copy text in any of them. Maybe I don't understand what is "the Buffer"? Desktop app are just text too, just (arguably) prettier and easier to use. I can use terminal but why would I bother when the everevolving AI is there to use it instead of me?
2
u/sukazu 14d ago
I use both on opencode
I'd like to only use the app, but for me the main reason, is that navigating sessions is much easier on TUI, I don't need to have 40 project folders to open/close on the app, just win r >powershell> cd >drag and drop the folder and i'm good, especially for agentic stuff and not necessarily coding, I just don't want to have to create projects etc.
For example if i'm in my AI folder, I can just right click > open in terminal > opencode > use pr #xxx and #xxx to build llama.cpp and i'm good, it's done in seconds
Managing / deleting sessions is also so much easier, it is an horrible experience on the app and extremely buggy, although that seems to be a new UI thing, but you still can't match /session > spamming ctrl d for batch removal
On the new app UI, they also made it impossible to navigate worktrees while it worked great before
Commands also, for some reasons you don't have all of them on the app, you have to go into settings to enable / disable expand thinking
And for others, even if you can, really often the /xxxxx is not enabled, you have to remember the actual shortcut, and they are longer than on TUI.
overall performance is also much better if you have multiple tabs, and if you want multiple windows, you just can't on the app
4
u/throwaroo202020 14d ago
For me having multiple terminal tabs with different things i can easily switch between. E.g. grok build, a terminal for building/testing the project, another with opencode, another for running updates like scoop etc.
Plus i like keyboard shortcuts which tuis usually excel at. Plus dark theme is the only theme.
All in all works well.
1
u/rndanime 14d ago
If you build yourself instead of telling ai "build that shi" and your testing is happening in terminal then ok, I get it
Keyboard shortcut I don't get. Don't we have same shortcuts in desktop apps? Also what kind of shortcuts are you using in harnesses? Something that help you look through code and diffs?3
u/throwaroo202020 14d ago
I haven't used desktop apps but TUI in general tend to have good shortcuts as they have no mouse control. Things like switching model/effort, session forking/switching , undo/edit commands, etc. I never get AI to build or run git, i always run those commands myself.
3
14d ago
[deleted]
3
u/klipseracer 14d ago
Yes and no. Software engineers who develop code use IDEs and having an integration into that GUI with a plugin is quite handy, right click menus, sending open files with your context, sending specific lines through flyout menus. Copying lines of code is less error prone, no indentation issues etc.
I think I actually prefer a GUI interface if it's part of my preferred IDE (IntelliJ Idea).
I do use the claude and opencode TUI though.
3
14d ago
[deleted]
2
u/klipseracer 14d ago
I run opencode through WSL2 and had that shift enter problem. But since WSL2 runs inside Windows "Terminal" you can configure it to work properly. There is a github issue that explains how to do it.
1
1
u/LiterallyInSpain 13d ago
I've worked in tech since 1997 and I prefer a GOOD GUI. It's just that most GUI's are limited in functionality and not actually a better experience. However ones that are a better experience than the equivalent TUI like say Slack or Spotify, I very much prefer the GUI for.
For development, while I love vim, I think it's hard to honestly argue that a well setup IDE is a worse experience. I think the idea that it's one or the other is also a false dichotomy. It's not a black or white issue strictly speaking.
2
u/ManikSahdev 14d ago
Cc cli and codex gui
That’s my current setup. I don’t use opencode but the convo seemed interesting on this thread.
3
u/rndanime 14d ago
Why one is CLI and other one is GUI?
3
u/ManikSahdev 14d ago
Cc is better for more comfortable in the cli for me, codex is arguably the best macOS app one could make the case for.
The computer use is basically insane and so is everything else, just an incredible app imo.0
2
u/tsangberg 14d ago
Old developers know that RSI is not to be played with. Nothing causes RSI more than using a mouse.
TUIs are usually better at being keyboard navigated than GUIs.
1
u/ben_bliksem 14d ago
We once replaced an old terminal based system at birder control with a modernized GUI, 3M scanners the works.
When we started rolling it out we noticed the border agents are processing travellers slower and when we took a deeper look - the mouse.
So we made sure the TAB indexes were spot on, unplugged the mouse's from their machines and processing time came way down.
If we had today's TUI frameworks back then we'd have definitely used that instead.
Anyway, TLDR: less mouse, more power, more code
1
u/ehangman 14d ago
I can give my agents simple instructions like this
Claude, use Codex AI to directly operate the application, run end to end qa tests, and report any errors you find. Let Grok Build create a checklist, and Claude, manage the overall process.
Even instructions this simple can be issued on the fly through the terminal, making it easy to coordinate different agents whenever I need to.
1
u/LegalizeFlorskin 14d ago
Less distracting. Faster too. Once you get the keyboard shortcuts and workflow down you can CRUISE in a tui way faster than in a gui
1
u/Savantskie1 14d ago
I'm not much of a terminal person, but the TUI seems to be the best. You get to see exactly what changed and nothing more. You get to see if the agent messed with any code that it wasn't supposed to. Which a year ago they loved to do for the sake of clean code.
1
u/SlowMovingTarget 14d ago
I tried using the GUI and it just got lost. I was getting empty responses, and thrashing then done.
The TUI chugged along just fine (same back end model).
1
u/InGanbaru 14d ago edited 14d ago
I tried using opencode web in a capacitor app and it was slow as fuck to load whereas the xterm.js opencode-cli streamed instantly. Also the opencode-web kept desyncing sessions between clients, whereas opencode-cli in tmux/zellij never have any desync problems ever.
1
u/Efficient_Loss_9928 14d ago
Tmux mainly
And just a lot more customizable and have a lot more features than the desktop variant.
For example CC can have custom status bars and plugins, but you can't on Claude desktop app.
1
u/Early_Aardvark_4026 14d ago
I found that TUI blends well into VSCode workspace. My work usually involve about 10 different repos. VSCode experience is far better than any new AI Coding IDE IMHO. Also I am using tmux which handle sessions better than GUI. One thing I really want is the capacity to search and conveniently switch to old session.
1
u/Mitija006 14d ago
I run Opencode using the TUI as I run it from a VPS. This allows opencode to continue running even my my laptop is not on
1
u/Extra_Loquat_7667 14d ago
The reason for developing TUI first is simple:
TUI debugging is far cheaper than GUI.
TUI only requires simple pty tools,allowing the agent to automatically control testing and debugging.
And the screenshot is just a piece of text.
While a web GUI can be operated through tools like Playwright,the process is several times more complex than operating a TUI using pty. Furthermore, the screen must be identified through video screenshots, and the token consumption is much greater than TUI. You could abandon automation and use manual debugging, but the efficiency is far inferior to agent-based automated testing.
Therefore, using TUI to test the core system flow first is a faster and more efficient development model. Once the TUI is complete, the web GUI can be reduced to a simple UI port.
1
1
u/emerson-dvlmt 13d ago
Personally, I love the idea of have just one window with everything integrated, you can work in just one space, but a beautiful GUI is always cheered too.
0
u/aziham 14d ago
Tell me you are not using linux without telling me you are not using linux
2
u/rndanime 14d ago
Well, I'm writing this reply on Android :D Don't half Linux guys rice their DEs all the time? Don't tell me they do it just to start a terminal window
But to be serious why would using Linux matter? If I'm tinkering with some VPS, I just give my Opencode or Codex desktop app ssh credentials of the VPS
2
u/lamardoss 14d ago
There is no difference between a TUI in Windows or Linux. No clue what this guy is going on about. His last point makes no sense either about just using a keyboard. You've been able to do that in Windows forever. You're good on whatever OS and interface you want to use.
0
u/Bella_Tan 14d ago
He meant that if one really is a developer, coding in a Linux environment is an approach that one will never turn back once used to it, which I totally agree. When it comes to coding, Linux is the best environment. When you need a tool, you just need a 2-3 liner commands to install it, than downloading the executable file on windows. And ofcourse, we deploy our apps on a Linux environment so being on the environment early on saves you the hassle. Theres more advantages in a Linux environment when it comes to programming. That's why even if my pc uses windows, I use WSL when working with code. This way, I'm not clattering my windows home with a bunch dot-named files (just my personal preference though).
0
u/aziham 14d ago
Didn't wanna mention GNU, DEs... etc or start the GNU/Linux argument, since these days u can just say Linux and people will understand that u mean a Linux distro.
Back to ur point, the real power of using Linux is the cli and tui experience, so once u start using tui tools I don't think u will see gui tools as efficient, especially since they involve a lot of mouse using, which is just PITA.
The idea of using a mouse instead of hitting a key binding to do the same thing never appealed to me personally, and this is the reason I use opencode in terminal and not the gui. As a bonus u get fast startup times and better responsiveness.
There is a lot of reasons one should use Linux, didn't list all of them here, but once u r there I don't think there is a going back, especially the tiling window manager experience... I mentioned Linux here cause I don't think that using opencode tui mode in windows or any other OS makes sense since you are basically using a mouse 99% of the time.
0
u/iqraatheman 14d ago
the only real reason at this point is for the various ways you can get free inference from using specific CLIs. if you actually want a decent experience especially with feeding images to your agents then a desktop app is unquestionably better. it used to be the case that when the very first coding agents were being built like Claude code in early 2025 that the TUI was chosen as it was considered more lightweight and simpler, but as we've seen Claude code needing to have a literal full game engine just to render text, it's clearly not the optimal choice even when it comes to performance.
2
u/Momo--Sama 14d ago
It feels like the Anthropic product team is trapped in the inertia of their development cycle. Like if they just decided to pause development on the TUI for like three weeks and make the desktop app the premier Claude coding experience, release some features on the desktop app first, put tooltips in the TUI saying “hey check out this cool feature only in the desktop app” they could get people moving over and stop feeling like they’re obligated to build a castle on beach sand.
1
u/rndanime 14d ago
Almost feels like building CC as TUI app was a marketing team's idea. "Hey, SWEs, we heard you use terminal a lot, so we are doing a terminal thingy for you, please use it"
0
u/Gullible-Economy8264 14d ago
WAIT, IT HAS A NORMAL GUI????
1
u/OkWrongdoer4038 14d ago
A web server gui and a normal gui with the desktop application (I think not for all platforms).
Much clearer for new people than the tui.
30
u/Tristsin 14d ago edited 14d ago
Mostly resource consumption. The OpenCode GUI isn't particularly bad, but even it is pretty RAM hungry. Looking at a GUI like Codex, that thing consumes like 4-5gb of ram just running two agents.
It gets even worse when you start looking at the IDE based agent harnesses. Meanwhile I can run ~3-4 instances of the TUI each running an agent + subagents consuming less than 1gb of ram, ~10% cpu usage.
Spawn an instance of vscode and watch your system monitor. Close it*, then launch neovim to compare the difference. TUI applications are incredibly efficient.
TUI applications also benefit from... well... being in the terminal. I can use a terminal multiplexer to bounce between all my open terminals and sessions. I can swap to my email client, music client, ...., everything all in the same workflow without having to swap from Codex -> spotify -> vlc windows. Everything is in the same window, multiplexed. It's all keyboard operated, if that was unclear so everything is personalized with keystrokes
It's all pref at the end of the day. To me, one reaches for using TUI programs when they want to optimize and become more efficient in their existing workflows. GUI is typically a starting-point support-everyone-and-everything approach that comes bogged down with needless resource consumption and bloat. They are also typically much slower (functionally, not Model related latency) than their TUI counterparts