Install the VS Code extension
Build it, install it, and point it at the CLI.
Written By Dustin
Last updated About 1 month ago
The extension is not on the Marketplace yet. Installing it means building the .vsix yourself, from a clone of the TOVIO repository โ the same package CI builds and attests, minus the publisher signature.
Build and install
git clone https://github.com/Tovio-VCS/tovio.gitcd toviopnpm installpnpm --filter tovio-vscode buildcd packages/tovio-vscode-extpnpm dlx @vscode/vsce package --no-dependencies --out tovio-vscode.vsixcode --install-extension tovio-vscode.vsixYou need VS Code 1.85 or newer. The extension version is whatever packages/tovio-vscode-ext/package.json says in the checkout you built from; build the CLI from that same checkout and the two are aligned by construction.
It drives the CLI
The extension contains no version-control logic and no cryptography. Every view and every action is a tovio invocation whose --json output it parses:
Two consequences follow from that:
toviomust be on the PATH VS Code sees, or you must settovio.executablePath. This is the most common setup failure, especially on macOS where a GUI-launched VS Code does not inherit your shell's PATH.- Keep the two versions close. A much older CLI may not produce fields a newer extension expects.
When it activates
The extension declares two activation events: a workspace that contains .tovio/working-copy, and onStartupFinished. It therefore loads either way, but the views only fill once it resolves a repository root โ so opening a subdirectory, or a multi-root workspace where the repository is not itself a root, leaves it looking inert.
Checking
Open a terminal inside VS Code and run:
tovio --versionIt prints tovio and the version. Note that this is a flag, not a subcommand โ tovio version is not a command and exits 2 with an unrecognised-subcommand error. If the flag fails inside the editor's terminal, the extension will fail the same way.
Protected files
A file covered by a protected-path policy keeps its normal A/M/D/! badge but is tinted with the tovio.sealedResourceForeground colour, and its tooltip says protected (policy). That flag comes straight from the protected[] array in tovio status --json โ the extension makes no separate access call to compute it.
Whether you can read a protected file is a separate question, and it is decided in the engine, not in the editor. The extension asks the CLI for content and shows what the CLI returns; no client can present a more permissive view than your clearance allows.
Getting started
The extension ships a five-step walkthrough โ install the CLI, open a repository, switch lanes, see the rationale behind a line, send feedback. Find it under Get Started with TOVIO.
Was this helpful?
More in Editors, desktop & the shell
Install the JetBrains pluginTOVIO Desktop: what it does todayKeep TOVIO up to dateShow TOVIO state in your shell promptStill need help? Ask the team