All posts

Terminal-native: why Vesper Code is not an editor

AI code editors put the agent inside the IDE. Vesper Code puts it where your work already happens — the terminal, next to git, your build, and your tests.

The dominant pattern in AI coding is the editor fork: take VS Code, wire a model into it, and let the agent drive the GUI. It is a reasonable bet and Cursor made it work. We took the other path on purpose.

Vesper Code lives in the terminal.

Where the work actually is

Open your terminal during a real task. git, your test runner, your build, your logs, your package manager, the server you just restarted. The terminal is not a place you visit. It is the place the work converges.

An agent that runs there can read the failing test output, edit the code, run the test again, and show you the diff — without leaving the loop you were already in. An agent trapped inside an editor pane is one context switch away from all of that.

You keep your editor

This is the part people miss. Terminal-native does not mean "give up your IDE." Run Vesper Code in the integrated terminal of VS Code, Cursor, JetBrains, whatever you use. Your editor stays your editor. The agent just stops pretending it needs to own the window to be useful.

Composability is the point

Because it is a CLI, Vesper Code composes with things a GUI agent cannot reach: pipe it, script it, run it in CI, chain it after a build step. /plan when you want it to propose the approach before touching files. The Unix model — small tools that combine — still wins for developer workflows.

The honest tradeoff

A terminal interface has less visual surface than an IDE. You do not get an inline ghost-text suggestion as you type. That is a real cost, and if moment-to-moment autocomplete is what you want, an editor integration is the better tool.

Vesper Code is built for the other mode: "here is a change that spans the codebase, do it correctly, show me the diff, run the tests." That work does not happen in an autocomplete popup. It happens in the terminal, next to git.

So we built it there.