Quickstart: your first repository¶
In this tutorial you will create a TOVIO repository, make a change, save it, and look at its history — the whole loop, in under a minute. There is no key setup, no identity ceremony, and no staging area to learn first. You just init, edit, and commit.
Before you start
You need the tovio binary on your PATH. If you don't have it yet, do the
install tutorial first (about five minutes).
The whole loop, first¶
Here is everything you are about to do. The rest of the page walks each step.
mkdir my-project && cd my-project
tovio init # create the repo in this directory
echo "fn main() {}" > main.rs # edit a file (tracked automatically — no `add`)
tovio status # see what's tracked
tovio commit -m "Initial commit"
tovio log # browse history
Step 1 — Create the repository¶
tovio init initializes the current directory, so make one and step into it first:
✓ Initialized empty TOVIO repository in /path/to/my-project/.tovio
On branch main · current change chg:4hvey7vcyrk0gbhj6pcr95j7mg · mode: simple
→ Next: edit files, then `tovio commit -m "…"`
That's it. In Simple Mode there is no key to create, no algorithm to pick, and no wall of questions —
the repository is ready to commit. (A cryptographic identity is provisioned
when you first need one: --mode team, or later with tovio identity init.)
Simple Mode is the default
On an interactive terminal, tovio init asks exactly one question — who will work on this
repo — and defaults to Just me (Simple Mode) if you press Enter. In Simple Mode there is no
Key Authority and no policies; the word "encryption" never appears until you reach for it. You can
skip the question entirely with tovio init --mode simple (the other answers are team and
agentic).
Step 2 — Edit a file¶
Create a file. Any file — TOVIO tracks your working copy automatically.
There is no tovio add
Coming from Git, this is the first habit to unlearn. TOVIO has no staging area. Your working
copy is the current change, tracked continuously. You never add a file before committing it.
(If muscle memory makes you type tovio add, TOVIO won't error — it gently reminds you that
tracking is automatic.)
Step 3 — See what's tracked¶
tovio status is your source of truth — any time you're unsure of the repo's state, ask it.
Notice the change ID (chg:4hvey7…). A change is your current unit of work. It gets a stable
name the moment the repository exists — and that name will never change, even if you later rewrite its
history. You don't create it with a command; it's just there, tracking what you do.
Step 4 — Commit¶
Save the change into a permanent snapshot:
✓ committed chg:4hvey7vcyrk0gbhj6pcr95j7mg blake3:d440efe85c…
1 file(s) · new change chg:nwxdgjn1a6qa1gwsdtvjcznapw · undo with `tovio undo`
→ Next: `tovio log` to review, or `tovio branch <name>` to start a feature
Two things to note:
- TOVIO started a fresh change for you automatically (
chg:nwxdgj…). You're always already in a change, ready to keep working. - Reversible mutations name
tovio undo. The guarantee is scoped to supported entries retained in this repository's local operation log; irreversible maintenance and external side effects are not recalled by it.
No message? TOVIO prompts you
If you run tovio commit without -m in a terminal, TOVIO opens a friendly prompt showing
what's in the change and its ID, then asks for a message — not a blank editor. (In scripts and
with --json or --quiet, -m is required.)
Step 5 — Browse history¶
You did it: a tracked, committed, content-addressed repository — and you never touched a key.
What just happened¶
| You ran | And TOVIO… |
|---|---|
tovio init |
Created the repo in the current directory, ready to commit |
| (edit a file) | Tracked it automatically — no staging |
tovio status |
Told you the current lane, change, and what's modified |
tovio commit -m |
Saved an immutable snapshot and started your next change |
tovio log |
Showed history, keyed by stable change IDs |
Next¶
You've done the loop. Now do a real project: create a lane, switch between lines of work, land a
change onto main, and undo something you thought was gone.
Prefer to be walked through it interactively?
TOVIO ships a guided, in-terminal tutorial — the cargo new of TOVIO. It creates a throwaway
scratch repository, shows each command, runs it, and reminds you that every step is reversible
with tovio undo:
tovio quickstart # basics: track a file, commit, browse history
tovio quickstart --topic branches # lanes and switching
tovio quickstart --topic conflicts # land a conflict, see it stored not blocked
tovio quickstart --topic policy # protect a path and commit a sealed secret
The scratch repository is removed on exit (pass --no-cleanup to keep it).
Last reviewed September 9, 2026
Suggest an improvement to this page Not for security reports — see disclosure