Evo CLI for VS Code
Open the Evo AI agent in a VS Code
terminal, side-by-side with your editor — and let it see what you are looking
at.
Usage
Two commands, from the command palette (Cmd+Shift+P):
| Command |
Terminal |
Use it when |
| Evo: Open in CLI |
VS Code's built-in terminal |
always, unless you want crisp math |
| Evo: Open in CLI (Math Mode) |
this extension's own webview terminal |
evo is typesetting $…$ / $$…$$ and you are on a HiDPI display |
Either way evo opens split to the right of your editor, with your login-shell
environment (so a GUI-launched VS Code finds evo on PATH) and the editor
context below.
Evo: Open in CLI
The plain path: a normal VS Code terminal running evo. It is the default
because it is a VS Code terminal — scrollback, find, links, accessibility and
shell integration all behave exactly as they do everywhere else in the window.
Evo: Open in CLI (Math Mode)
VS Code's built-in terminal draws inline images (the kitty graphics protocol
evo uses to typeset formulas) into a CSS-resolution canvas, so on a
Retina/HiDPI display every formula is upscaled and blurry — and no DPI or
supersampling on evo's side can beat that ceiling.
Math Mode therefore does not use the built-in terminal at all. It hosts our
own xterm.js terminal in a webview, with a small fork of the image addon that
draws each image at device resolution (1 image-pixel per physical pixel).
Formulas render as sharp as text, and supersampling finally helps. The panel
also:
- runs evo over a real pty, so its normal TUI is unchanged;
- collapses full-width
─ rule lines to a single row when you make the panel
narrower (no dangling one-character stubs);
- matches your
terminal.integrated font, and tells evo the device pixel ratio
and cell size so its math is sized correctly.
It ships no native binaries: the pty is VS Code's own bundled node-pty,
loaded from the running app — so the ABI is always right, on every platform.
Crisp math needs evo's latex-math extension (bundled with evo) plus a LaTeX
toolchain (latex + dvipng) on your PATH.
Editor context
While the extension is active it keeps a small JSON file up to date with the
file you have focused and the text you have selected, and points every
terminal in the window at it through EVO_IDE_CONTEXT. Evo picks it up with
its bundled ide-context extension:
- the focused file — and the selected lines, verbatim — are prefixed to each
prompt you submit, so "explain this function" needs no further pointing;
- its status line shows
⧉ 3 lines selected while a selection exists.
The file lives at ~/.evo/ide/vscode-<pid>.json, is rewritten atomically, and
is deleted when the window closes. Nothing is sent anywhere: no server, no
port, no token. An evo that does not see EVO_IDE_CONTEXT behaves exactly as
it did before.
Configuration
| Setting |
Default |
Description |
evo.cliPath |
"evo" |
Path to the evo executable |
Requirements
- Evo installed and on your PATH
- For the editor context, evo's
ide-context extension installed in
~/.evo/extensions/ (make install-home in the evo repository)