Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Build a Smaller Atuin Sync

Preserve offline convergence, not the shell UI.

  1. Define HostId, Tag, Index, and an append-only Record.
  2. Store local streams in SQLite and compute per-stream heads.
  3. Build a server that stores opaque records and returns status summaries.
  4. Diff two summaries into deterministic upload/download/noop operations.
  5. Transfer bounded pages idempotently and resume after injected failure.
  6. Encrypt each payload locally and authenticate its host/tag/index metadata.
  7. Rebuild one searchable history projection from downloaded record IDs.
  8. Create two offline clients, append independently, and prove convergence.
  9. Introduce a deliberate missing index and repair from first_gap.

Production Atuin adds multiple data domains, legacy migration, authenticated accounts, PASETO envelope encryption, packfiles and presigned object storage, daemon components, shell latency constraints, key rotation, rich SQLite queries, server backend portability, and extensive recovery diagnostics.