Vyona for VS Code
Do causal and clinical analysis in VS Code, alongside an agent, with the notebook
as the durable executable record. Vyona connects to your Vyona FastAPI backend and
brings its agent workflow into the editor: browse notebooks, run verification
checks as native diagnostics, ask an agent to propose analysis steps, review those
changes in the native diff editor, apply and execute, and read the evidence and
process trace, without leaving your IDE.
The notebook is a marimo .py file: the source of truth for the analysis. Vyona
never overclaims a causal result, and always leaves room for a limitation.
Features
- Notebook explorer — list your backend notebooks with version, status, and
dataset binding; create a new notebook bound to a catalog dataset (the
load_dataset(...) starter cell is authored for you).
- Verification checks as native Diagnostics — run the check suite and see
squiggles on the owning cell, plus a Vyona Checks tree. Re-running after a fix
clears the diagnostic. Per-notebook check configuration.
- Agent chat — a streaming chat over the backend's proposal endpoint (SSE):
live stage progress and rationale. A stub or errored result is labeled as not
a real result, never dressed up as an answer.
- Proposal review in the diff editor — see exactly what a proposal changes
before anything is applied; accept to apply, reject to leave the notebook
untouched. Accepted patches re-run and show an honest "N cells re-ran" banner.
- Execute and render outputs — run a notebook and view its outputs (text,
JSON, figures, tables) in a panel; execution errors render as errors, never
blank.
- Evidence and Agent Trace panels — the per-notebook evidence object and the
append-only process log, read-only.
- Power mode — open the per-notebook live marimo editor embedded in a panel.
- Two-way file sync — open a notebook as a local
.py; saving pushes back to
the backend, with a backend-wins conflict prompt (never a silent clobber). The
seed notebook is read-only.
Requirements
A Vyona account. The extension talks to the hosted Vyona backend out of the box;
point vyona.backendUrl at your own instance to work against that instead.
vyona.backendUrl (default: the hosted Vyona backend)
vyona.runChecksOnSave (default false) — re-run checks when a marimo .py is saved
The hosted backend enforces authentication: run Vyona: Sign In and give your
email and password. Both the id_token and the refresh token are kept in VS Code
SecretStorage, and the session renews itself in the background, so an expiring
token does not interrupt work. Vyona: Sign Out clears them and revokes the
refresh token on the backend.
Vyona: Sign In with Token is the escape hatch: paste a Bearer token minted
elsewhere, for example from the web app. A pasted token carries no refresh
token, so it expires after its hour and asks you to sign in again.
When auth is unconfigured, the backend runs in a dev-stub mode and no sign-in is
needed. Accounts are created by an administrator: the deployed backend runs with
public signup off.
Quick start
- Vyona: Sign In with your Vyona email and password.
- Open the Vyona view container in the Secondary Side Bar.
- Vyona: Check Connection reports the backend, the agent, and who you are
signed in as, separately: a reachable backend with no session is a different
problem from an unreachable one.
- Pick a notebook (or Vyona: New Notebook), then run checks, ask the agent,
review, apply, and execute.
Commands
Vyona: Check Connection, Sign In / Sign In with Token / Sign Out, New Notebook, Open Notebook,
Run Notebook, Run Checks, Configure Checks, Review Last Proposal,
Open in marimo (power mode), Refresh Notebooks / Evidence / Trace.
Development
cd vscode
npm install
npm run build # bundle src/extension.ts -> dist/extension.js
npm run watch # rebuild on change
npm run lint # eslint
npm run typecheck # tsc --noEmit (includes the read-only ../contracts types)
npm test # extension host tests (downloads VS Code into .vscode-test/)
npm run e2e # start the backend and run the full flow end to end
npm run package # build an installable .vsix
The default backend is the hosted one, so set vyona.backendUrl to your own port
(http://localhost:$((8000 + N))) before working against a local backend.
Press F5 (with vscode/ open) to launch the Extension Development Host.
contracts/types.ts is imported read-only and type-only; contract changes land on
main in the integration pass, never from this lane.