Last week I had 3 agents running. Claude Code in one terminal, Codex in another, OpenCode in a third. I looked away for maybe 10 minutes to read a PR. When I came back, Claude Code had been waiting on me for a permission prompt, Codex had errored out silently, and OpenCode had finished but I couldn't tell because the output just looked like more text.
I alt-tabbed between all three trying to figure out the state of each one. That's when it hit me that I've been doing this for months and it's insane.
The terminal problem isn't about terminals
Terminals are great. I love my terminal. But let me walk you through what actually happens when you run a coding agent in one.
The agent starts working. It reads files, calls tools, edits code. All of this renders as a single stream of text scrolling down. If you miss something, you scroll up. If the agent edited 6 files, you don't see that anywhere. You go to another terminal and run git diff.
Claude Code has a known issue where it scrolls up on its own randomly. There was a GitHub issue about terminal scroll jitter that got 700+ upvotes. It caused 4,000 to 6,700 scroll events per second in multiplexers. That issue was open for 9 months. 700 developers upvoted a bug that basically said "the terminal can't keep up with the output."
That's not Claude Code's fault. That's what happens when you push a text interface from 1978 past what it was designed to do.
Watch what developers actually do
This is the part that convinced me something is broken. Watch how people actually use coding agents:
Terminal 1: the agent. Terminal 2: running git diff to see what the agent changed. VS Code open on the side to actually read the files. Browser tab on GitHub to check the PR. Scrolling up in the agent terminal to find where it asked a question 40 lines ago.
That's four windows to compensate for the fact that the terminal can only show one thing at a time. Everyone has some version of this setup. I've seen people's screenshots and they look like NASA mission control just to review what one agent did.
Now multiply that by 2 or 3 agents in parallel and a few projects.
What a coding agent actually needs
Think about what these agents do. They read and edit files across your codebase, generate plans, produce diffs, ask you questions while they're working, create branches and PRs, run shell commands. That's at minimum 4 or 5 different surfaces: file viewer, diff viewer, interactive prompt, terminal, git panel. Every IDE has these as separate panels for a reason. When you run an agent in a terminal, all of it gets flattened into one scrolling text column.
Cursor understood this early. They built a GUI with real diff views and inline editing. But you're locked to their editor, their pricing, and their models. Benchmarks showed Claude Code using about 5.5x fewer tokens than Cursor for the same task. That adds up.
Codex built a proper app too, but only for OpenAI models. The best coding model changes every few weeks right now.
What I did about it
I spent 2.5 months building a desktop app called Acepe. Tauri and Svelte. I wrote and reviewed every line, so if you ask me how something works I can tell you because I built it.
It runs Claude Code, Codex, Cursor, and OpenCode in one window. You set models per agent per mode. I have Opus 4.6 on planning and Sonnet 4.6 on building for Claude Code, Codex gets its own config.
The part that replaced my 4-window setup is the attention queue. Five states per agent: input needed, planning, working, error, finished. All visible in a sidebar. If something needs me I see it and respond from there. That alone killed the tab-cycling.
Worktrees are automatic (if you configure). Start a session, it spawns a worktree, agent works in isolation, hit open PR when it's done. Skills managemnt system to sync across all four agents. Checkpoints are agent agnostic. Review panels with undo and accept work for any agent. File mentions open diffs, PR mentions open panels, git staging inside the app. SQL studio and S3 connector because I kept leaving the app to check data.
It's open source: acepe.dev
Even if you never touch Acepe
If you're running coding agents in a terminal, look at your setup right now. Count the windows. Count how many times today you alt-tabbed to check on something or scrolled up looking for a question the agent asked you.
The agents are good and getting better. But we're interacting with them through an interface that's older than most of us. At some point the way we use these things has to catch up with what they can actually do.
If you've got a terminal setup for agents that works well, I want to see it. And if you try Acepe, tell me what's broken.
Top comments (3)
insightful.
Wooow that's so goood
Very interesting, thanks for sharing!