Install TOVIO by building from source

The supported install path today: toolchain, build, PATH, verify — and what the lean build actually costs you.

Written By Dustin

Last updated 30 minutes ago

Signed packages for the six release targets are still unpublished work in the M5.7 release train, so today installing TOVIO means building it. It is three commands once the toolchain is in place.

Build it

cargo build --release -p tovio-cli

The binary lands at target/release/tovio (tovio.exe on Windows). A plain cargo build --release works too, but it builds the whole workspace including the Forge; -p tovio-cli builds only what you need to use TOVIO.

The same package also produces a second binary, git-credential-tovio. It is a standalone git credential helper — git only discovers helpers by the exact filename git-credential-<name> on PATH, which is why it cannot be a tovio subcommand. Copy it alongside tovio if you intend to use the Git bridge. It is not shipped inside the release packages, which are deliberately restricted to the single tovio binary, so a source build is currently the only way to get it.

Put it on your PATH

Copy the binary somewhere already on your PATH, or add target/release to it. Confirm with:

tovio --version

which prints the name and version, for example tovio 1.0.0-rc.1. Note the flag: --version is a global flag on the root command. There is no tovio version subcommand, and asking for one gets you an unrecognized subcommand error.

Check it works

mkdir democd demotovio inittovio status

tovio init takes no directory argument. It initialises the directory you are standing in, so you make the directory first and step into it. Passing a name — tovio init demo — is rejected outright with error: unexpected argument 'demo' found.

If status prints the lane, the current change id, and a clean working copy, the offline core is functioning.

A leaner build, and what it costs

The default feature set is semantic, secrets and line-ops. Turning all three off gives the smallest, most portable artifact:

cargo build --release -p tovio-cli --no-default-features

Be deliberate about this. --no-default-features does not only drop semantic queries:

FeatureWhat you lose without it
semanticThe L6 symbol graph and semantic diff. Advisory only — an absent index degrades to a text diff and never blocks a commit.
secretsThe default-on secret scan. It pulls the WASM plugin sandbox with it, so a no-default-features binary will not stop you committing a credential.
line-opsLine-level operation records attached to commits. Commit bytes stay valid either way.

If what you actually want is a binary without the oxc and syn parser trees, ask for that specifically and keep the safety net:

cargo build --release -p tovio-cli --no-default-features --features secrets,line-ops

If the build fails

Two causes account for nearly all of them. On Windows it is the missing MSVC toolchain: the TLS transport cannot link under the GNU toolchain, and the errors name symbols that look unrelated. On Linux it is a missing C compiler, because the keychain backend compiles a vendored libdbus from bundled source. Both are covered in the prerequisites article.