Uninstall TOVIO and remove local state

Everything TOVIO writes outside its own binary, and the order to remove it in.

Written By Dustin

Last updated About 3 hours ago

Removing the binary removes almost nothing. That is deliberate — an uninstall must never be the thing that loses your history or your keys. Here is the complete list, and the order to work through it.

Back up first if this repository has an identity

tovio key export

On a Team or agentic repository the identity is stored in two halves, and you are about to delete both. Export it to a passphrase-encrypted file before you remove anything, unless you are certain you will never need this identity again. tovio key import restores it on any machine.

1. The binaries

If you installed a package, remove the package with your package manager — public packages contain exactly one binary, tovio.

If you built from source you may have two: tovio and the git-credential-tovio helper, wherever you copied them to. Delete both, and remember the build tree itself — target/release/ still holds a working copy of each.

2. Repository data — this is your history, and your identity

Each repository's .tovio/ directory holds the object store, the op-log, the refs, the working-copy state, and — on a Team or agentic repository — the sealed identity secret at .tovio/identity/default.key. Deleting it destroys that repository's history and its identity. It is not a cache, and nothing outside the repository directory duplicates it.

Your ordinary working files are untouched by removing .tovio/ — you are left with a plain directory of files and no version control.

3. Keychain entries

The OS keychain — Apple Keychain Services, the Windows Credential Manager, or the Linux secret service — holds wrapping keys only, under the service name tovio. A wrapping key on its own is inert: it unseals a file that lives in the repository. Two kinds of entry exist:

  • A per-repository entry holding the wrapping key for that repository's sealed identity.
  • A single shared entry named tovio-git-credentials-v1, holding the wrapping key for git credentials.

Be ready for the per-repository entry to look opaque. Its account name is not your did:key: identity string — that is 72 characters, past what the Windows Credential Manager accepts, so it is replaced by a short, stable 24-hex-character digest of it. Searching your keychain for the DID finds nothing. Search by the service name tovio instead, and expect an anonymous-looking hex slot rather than a recognisable label.

Removing a package never touches these, on any platform. Delete them through your platform's keychain tool if you want them gone.

4. Git credentials

The git credential helper keeps sealed host tokens in a per-user directory, independent of any repository:

PlatformPath
Windows%APPDATA%\tovio\git-credentials
macOS and Linux$XDG_CONFIG_HOME/tovio/git-credentials, or ~/.config/tovio/git-credentials

Remove the directory, and remove the matching tovio-git-credentials-v1 keychain entry above — the files there are sealed under it, so one without the other leaves an inert remnant.

5. Shell completions

Wherever you wrote them: your bash completions directory, your zsh fpath, ~/.config/fish/completions/tovio.fish, or the lines you appended to your PowerShell profile.

What there is no such thing as

There is no global TOVIO configuration file. tovio config is per-repository and writes to <repo>/.tovio/config, so removing a repository removes its settings with it. If you are hunting for a dotfile in your home directory to clean up, the git-credentials directory above is the only one.

A quick audit before you finish

tovio --version

Should now report that the command was not found. If it still runs, a second copy is on your PATH — a common outcome when a package install and a source build have both happened on the same machine.