store
atuin store
Atuin keeps your history in an encrypted, append-only record store. Sync works by exchanging these records, rather than by copying rows between databases. atuin store inspects and repairs that store.
Most people never need these commands. Reach for them when sync is misbehaving, or when a machine ends up holding records encrypted with a key it no longer has.
Danger
rekey, purge, and the --force forms of push/pull can destroy data that can't be recovered. Read the description of a command before running it, and make sure you know which key Atuin is currently using.
Subcommands
atuin store status
Print the current state of the record store — how many records exist locally, per tag and per host.
Start here when diagnosing a sync problem.
atuin store verify
Check that every local record can be decrypted with your current key.
Failures mean some records were written with a different key — usually because a machine was logged in with an old key, or a key was regenerated.
atuin store purge
Delete the local records that fail decryption.
Warning
This only touches the local record store on the current machine. It doesn't wipe your history, delete your sync account, or affect other machines.
Run atuin store verify first, so you know you're clearing up a genuine key mismatch rather than deleting data blindly. See Deleting History for the full procedure.
atuin store rekey [KEY]
Re-encrypt the entire local store with a new key. Omit the key to have one generated for you.
Danger
Every other machine will need the new key before it can read anything you sync after this point. Save the new key somewhere safe first.
atuin store rebuild <TAG>
Rebuild derived state from the record store — for example, regenerate the history database from history records.
Useful when the record store is intact but the local view of it isn't.
atuin store push
Upload local records to the sync server, one way.
| Flag | Description |
|---|---|
--tag/-t | Only push this tag (for example, history). Defaults to all tags |
--host | Only push this host, given as a host UUID. Defaults to the current host |
--force | Clear the remote store, then upload everything local, for all hosts and tags |
--page | How many records to upload at a time (default: 100) |
atuin store pull
Download records from the sync server, one way.
| Flag | Description |
|---|---|
--tag/-t | Only pull this tag. Defaults to all tags |
--force | Wipe the local store first, then download everything from the remote |
--page | How many records to download at a time (default: 100) |
For ordinary two-way syncing, use atuin sync instead.