For most of last year, the only AI I could sneak onto a work machine lived inside the editor.
Copilot ghost-texting next to Xcode. Cursor and Windsurf on weekend projects. Cline riding along in VS Code. If it had a name, I tried it.
They were all smart. And for months I still had this quiet "that's it?" I couldn't shake. I only figured out why after I dragged the whole job into the terminal.
Here's the classic editor move: open a file, select a few lines, ask it to "fix this." That interaction quietly handcuffs your brain to this file, sometimes these three lines. You and the AI are both hunched over one tiny window, shuffling blocks. Neither of you has looked up at the whole project once.
For an iOS dev it stings extra. We live in Xcode, and Xcode and the AI editors are two parallel universes. You either leave Xcode to babysit the tool, or you stay and use a half-crippled Copilot. Neither feels good.
There's a sneakier problem too: drift.
The AI thinks the file is in state A. Your hand twitched and it's now state B. You tell it to keep going, and it edits the A in its head. Best case, a pile of conflicts. Worst case, it re-reads everything from scratch. More than once, untangling what-it-thought from what-was-true cost me more time than just writing the thing.
The root cause is that the editor is encouraging you to grab the wheel. And "ready to take over at any second" turns out to be the real enemy of vibe coding. The less you jump in, the more complete the brief you hand over up front, the better the output. Deeply counterintuitive. Kept being true anyway.
The terminal agent starts from a different idea.
No pretty UI. No live ghost text. It's genuinely hard to reach in and tweak one line. That very crudeness forces it (and you) to start at the repo root and build a real picture of the whole codebase. The first time it read my entire project and actually formed a sense of the whole thing, something clicked that no selection ever gave me.
And a terminal agent will happily burn tokens. That matters more than it sounds. Editor AI keeps its reasoning local on a tiny context budget, so the moment a change ripples across modules you're back in single-file whack-a-mole: accept a suggestion, wait for red squiggles, prompt again. Let an agent read ten related files before it touches one, and the plan it gives you is in a different league from "here's your selected twenty lines, good luck."
Losing the editor's "I can take over whenever" safety blanket pushed me to hand more over and give better feedback. Felt wrong for about a week. Then I couldn't go back.
To be fair to editor AI: it's a great on-ramp. The wheel stays in your hands; it writes something dumb, you fix it in a keystroke. That control is reassuring, and honestly today's gap is mostly usage and token budget, not something permanent. The day editors spend tokens this freely, the distance shrinks.
But if what you want is the real hands-off thing, the terminal is the shorter road.
The bonus for us Xcode lifers: the agent finally works next to Xcode instead of fighting it for the editor. Same monster, fewer turf wars.