Skip to main content
smolbren is distributed as a Rust crate and installed with cargo install. There is no pre-built binary to download — the build compiles directly on your machine from source, which means you need a couple of prerequisites in place before running the install command.

Prerequisites

Rust toolchain (1.85+, edition 2024)

smolbren requires Rust 1.85 or later (it uses the 2024 edition). The easiest way to install and manage Rust is rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
If you already have Rust installed, make sure it’s up to date:
rustup update stable
rustc --version   # should be 1.85.0 or later

protoc (Protocol Buffers compiler)

smolbren uses Lance for columnar storage. Lance compiles protobuf definitions at build time, so protoc must be available on your PATH before you run cargo install.
If protoc is not installed, the build will fail with an error like Could not find protoc. If protocis installed, try setting the PROTOCenvironment variable to the path of theprotoc binary. Install protoc first using the instructions below, then re-run cargo install smolbren.
macOS (via Homebrew):
brew install protobuf
Debian / Ubuntu Linux:
sudo apt-get update && sudo apt-get install -y protobuf-compiler
Other Linux distributions — install the protobuf-compiler package (or equivalent) via your system package manager, or download a release binary from the protobuf releases page. After installation, confirm protoc is on your PATH:
protoc --version   # e.g. libprotoc 28.3

Install

With Rust and protoc in place, install smolbren from crates.io:
cargo install smolbren
Cargo will compile the crate and its dependencies and place the smolbren binary in ~/.cargo/bin/. If that directory isn’t already on your PATH, add it:
export PATH="$HOME/.cargo/bin:$PATH"

Verify

Check that the binary is reachable and working:
smolbren --version
smolbren 0.1.0
For a full list of subcommands and global flags:
smolbren --help
ontology-first search over markdown vaults

Usage: smolbren [OPTIONS] <COMMAND>

Commands:
  vault      Manage vaults
  index      Index the vault (incremental by default)
  search     BM25 full-text search over note titles and bodies
  query      Run a Cypher query over the note graph
  get        Fetch one note by id
  links      Outgoing edges of a note
  backlinks  Incoming edges of a note
  types      List note types with counts
  edges      List edge types with counts
  help       Print this message or the help of the given subcommand(s)

Options:
      --vault <VAULT>    Vault name (defaults to the configured default vault)
      --config <CONFIG>  Config file path (default: ~/.smolbren/config.json)
  -h, --help             Print help
  -V, --version          Print version

Updating

To update to the latest published version, re-run the same install command — Cargo will replace the existing binary:
cargo install smolbren
To install a specific version:
cargo install smolbren --version 0.1.0
smolbren stores all of its data — the config file, vault index datasets, and ontology snapshots — under ~/.smolbren/ by default. The layout is:
~/.smolbren/
├── config.json              # registered vaults and default vault name
└── vaults/
    └── <name>/
        ├── notes.lance      # BM25 + scalar indices over note metadata and body
        ├── edges.lance      # typed graph edges derived from wikilink frontmatter
        └── ontology.json    # discovered types and edge types with counts
You can override the config path per-invocation with --config, or set the SMOLBREN_DEFAULT_VAULT environment variable to switch vaults without a flag.