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
Run Evo: Open in CLI from the command palette (Cmd+Shift+P). Evo opens
in a terminal panel — rendered by this extension — split to the right of your
editor.
Why a webview terminal
VS Code's built-in terminal draws inline images (the kitty graphics protocol
evo uses to typeset $…$ / $$…$$) 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.
So Evo: Open in CLI 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.integratedfont, 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 selectedwhile 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-contextextension installed in~/.evo/extensions/(make install-homein the evo repository)