Editor troubleshooting
The failures that account for most reports.
Written By Dustin
Last updated 15 minutes ago
1. The extension cannot find the binary
Both editor integrations shell out to tovio. If it is not on the PATH the editor sees, everything fails at once — views empty, status bar blank, every action erroring.
Open a terminal inside the editor and run:
tovio --versionIf that fails, so will the extension. On macOS a GUI-launched editor often does not inherit your shell PATH: launch it from a terminal, or set the path explicitly —
- VS Code: the
tovio.executablePathsetting. - JetBrains: Settings → Tools → TOVIO → executable path.
2. The wrong version runs
If you have more than one tovio installed, the editor may resolve a different one than your terminal does. Compare tovio --version inside the editor with the same command in your shell, and check which -a tovio (or where tovio on Windows).
Note the spelling: --version is a flag. tovio version is not a command and exits 2 with an unrecognised-subcommand error — if you see that, the binary is fine and the command was wrong.
3. No repository detected
The VS Code extension activates on a workspace containing .tovio/working-copy. Opening a subdirectory of a repository, or a multi-root workspace where the repository is not itself a root, leaves it loaded but idle. Open the repository root.
In a JetBrains IDE the equivalent step is enabling the integration: TOVIO has to be selected under Enable Version Control Integration before any of the native surfaces appear.
4. The views are empty but the CLI works
Read the log. TOVIO: Show Output Log in VS Code, or the Output tab of the TOVIO tool window in JetBrains, shows the exact invocation and its exit status. A view that renders nothing is almost always one command failing, and the log names it.
Files show as protected
That is not a bug. A tinted badge with a protected (policy) tooltip means the path is covered by a protected-path policy. Whether you can read it is separate, and decided in the engine. Confirm with:
tovio access check <path>Everything is slow
Both integrations debounce their refresh — 300 ms by default, adjustable in either editor's settings. On a very large repository the underlying tovio status is the cost, not the extension, so raising the debounce hides the symptom rather than fixing it.
The filesystem monitor is the real lever. It is a foreground daemon, not a flag: tovio fsmonitor start occupies the terminal you run it in and keeps running until tovio fsmonitor stop from another one. Give it its own terminal or launch it in the background — if you Ctrl-C it, you have stopped it, not backgrounded it.
Reporting
Include the extension or plugin version, the output of tovio --version, your OS, and any TVO-* code. Not your repository contents, not file paths, not diffs.