Skip to content

SDKs & editors

TOVIO is one engine with many faces. The version-control logic lives in a single pure Rust library; everything you actually touch --- the tovio command, your editor's status bar, a Node script, your shell prompt --- is a thin shell around that one engine. They cannot drift apart, because they all call the same code.

This section is about those shells: the editor integrations, the Node SDK, and the shell completions and prompt segment. Each one surfaces the same facts you would get from the CLI --- your current change, which files you have modified, sync status, conflict counts --- without making you leave where you already work.

Workspace integrations are implemented but unpublished

The CLI, VS Code extension, JetBrains plugin, Node SDK/bindings, MCP server, and shell integrations are present in the workspace and build from source. The editor packages are not yet on their marketplaces and the npm packages are not yet published. Each page records its capability-specific boundary.

Pick your surface

  • Editors


    The VS Code extension and the JetBrains plugin: your current change ID in the status bar, modified-file indicators in the gutter, and a one-click sync action.

    Set up your editor

  • Node SDK


    Script TOVIO from JavaScript or TypeScript over the native NAPI bindings --- the same engine the CLI uses, no subprocess shelling, no Rust toolchain.

    Use the Node SDK

  • Shell


    Tab-completion for zsh, bash, fish, PowerShell, and elvish, plus a Starship / Powerlevel10k prompt segment showing your change ID, sync status, and conflict count.

    Wire up your shell

How these fit together

Every integration here is a consumer of the engine, never a second copy of it. That has two consequences worth knowing up front:

  • What the CLI knows, your editor and SDK know too. A change ID, a protection indicator, a conflict count means the same thing in all of them, because they read the same objects.
  • The machine contract stays clean. The warmth, color, and celebration you see in an interactive terminal never leak into the SDK's structured return values or --json output --- a script or an editor parses a stable contract, not decorated prose.

If you are new to the underlying concepts --- changes, conflicts, protected files --- start with get started and the core concepts, then come back to wire up the surface you prefer.

Last reviewed September 9, 2026

Suggest an improvement to this page Not for security reports — see disclosure