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

Installation

Tesseras is currently available by building from source.

Prerequisites

Rust

Tesseras requires Rust 1.85 or higher. The recommended way to install Rust is via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

After installation, make sure ~/.cargo/bin is in your PATH. The installer usually adds it automatically. Verify with:

rustc --version
cargo --version

If you already have Rust installed, update to the latest version:

rustup update stable

SQLite

Tesseras uses SQLite for local storage. You have two options:

Option 1: System SQLite (recommended)

Install SQLite development libraries via your system package manager:

DistributionCommand
Arch Linuxsudo pacman -S sqlite
Debian / Ubuntusudo apt install libsqlite3-dev
Fedorasudo dnf install sqlite-devel
Alpineapk add sqlite-dev
macOS (Homebrew)brew install sqlite
FreeBSDpkg install sqlite3
OpenBSDIncluded in the base system

Option 2: Bundled SQLite

If you prefer not to install SQLite on your system, use the bundled-sqlite feature flag during compilation. This compiles SQLite alongside Tesseras:

cargo install --path crates/tesseras-cli --features bundled-sqlite
cargo install --path crates/tesseras-daemon --features bundled-sqlite

Optional tools

ToolPurposeInstallation
justRun project build commandscargo install just
mdBookBuild the documentationcargo install mdbook
DockerRun nodes in containersSee Docker
FlutterBuild the mobile/desktop appSee Flutter App

Build from source

Clone the repository and install the binaries:

git clone https://git.sr.ht/~ijanc/tesseras
cd tesseras
cargo install --path crates/tesseras-cli
cargo install --path crates/tesseras-daemon

Or, if you have just installed:

just install

This installs two binaries to ~/.cargo/bin/ and configures shell auto-completions:

  • tes — CLI tool for creating, verifying, and exporting tesseras
  • tesseras-daemon — full node daemon that participates in the P2P network

Verify installation

tes --help

You should see:

Create and preserve human memories

Usage: tes [OPTIONS] <COMMAND>

Commands:
  init    Initialize identity and local database
  create  Create a tessera from a directory of files
  verify  Verify integrity of a stored tessera
  export  Export tessera to a self-contained directory
  list    List local tesseras
  help    Print this message or the help of the given subcommand(s)

Options:
      --data-dir <DATA_DIR>  Base directory for data storage [default: ~/.tesseras]
  -h, --help                 Print help

Shell completions

The just install command configures completions automatically. If you installed manually, generate completions for your shell:

# Fish
tes completions fish > ~/.config/fish/completions/tes.fish

# Zsh
tes completions zsh > "${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions/_tes"

# Bash
tes completions bash > "${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions/tes"

Flutter App

To build the mobile or desktop app, you need additional dependencies:

Flutter prerequisites

  1. Flutter SDK — install following the official guide
  2. Rust — already installed as above
  3. Platform dependencies:
PlatformDependencies
AndroidAndroid SDK, Android NDK, Java 17+
iOSXcode, CocoaPods
Linux desktopGTK 3.0+, pkg-config (sudo apt install libgtk-3-dev pkg-config on Debian/Ubuntu)
macOS desktopXcode Command Line Tools

Build the app

cd apps/flutter
flutter pub get

# Linux desktop
flutter build linux --debug

# Android
flutter build apk --debug

# iOS
flutter build ios --debug

# Tests
flutter test

Or using just from the repository root:

just build-linux    # Linux desktop
just build-android  # Android APK
just test-flutter   # Tests

Network ports

The Tesseras daemon uses QUIC (protocol over UDP). If you are behind a firewall, allow traffic on the port:

ProtocolPortDirection
UDP4433Inbound and outbound

Next steps