Confirm TOVIO installed correctly

What a healthy first run looks like, line by line, and the two error codes you might meet on the way.

Written By Dustin

Last updated 31 minutes ago

Four checks, in order. Each one proves a different layer.

1. The binary runs

tovio --version

You should get a single line, for example tovio 1.0.0-rc.1. If you get "command not found", the binary is not on your PATH. If you get an unexpected version, you have more than one tovio installed and an earlier PATH entry is winning.

2. A repository initialises

mkdir democd demotovio init

init works on the current directory and takes no path argument. On a terminal it asks one question first — ? Who will be working on this repository? — offering Simple, Team and Agentic, defaulting to 1) Just me. Press Enter to take it. (Under --json, --quiet, or any non-interactive shell there is no prompt and Simple is chosen silently.)

A healthy run then prints the absolute path of the new .tovio, the starting lane, the id of the change you are already in, and the mode:

✓ Initialized empty TOVIO repository in/demo/.tovio  On branch main · current change chg:583dzstd… · mode: simple  → Next: edit files, then `tovio commit -m "…"`

3. Status is clean, then isn't

tovio status

Reports the lane, the current change, (no commits yet), and clean — nothing to commit. Now create a file and run it again:

echo hello > README.mdtovio status

The file appears as + README.md under modified (1 file(s)) without you adding it. There is no staging area — the working copy is continuously snapshotted into the current change. Running tovio add out of Git habit prints a compatibility note saying exactly that, rather than doing anything.

4. A commit lands

tovio commit -m "first change"tovio log

The commit line names the change id that just closed, the new commit's blake3: address, the file count, and the fresh change id you are now in. log then shows that commit on main. If all four steps worked, the object store, the op-log, the change model and the working-copy scanner are all functioning.

Two errors you may hit

CodeWhat happenedFix
TVO-CLI-003"Not a TOVIO repository" — you ran a repository command somewhere with no .tovio directory.tovio init here, or cd into the repository.
TVO-CLI-004"A TOVIO repository already exists" — init refuses to overwrite an existing .tovio.tovio status to inspect what is already there.

Both are CLI-class errors and exit with status 2. Add --json to any command to get the machine-readable form, with the code, cause, remediation steps and exit code as fields.

What this does not prove

Networking and permissions are separate layers and this exercise touches neither. A Simple (Tier 0 Solo) repository has no Key Authority, no identity ceremony and no policies. Team-tier features need an identity — see the permissions collection, or run tovio identity init in this repository when you are ready.