Installation

journal ships as a single static binary for macOS and Linux. Pick the method that works best for your setup.

brew install ericmann/tap/journal

Homebrew handles the quarantine flag automatically, so you won't see an "Allow Anyway" security prompt.

macOS and Linux — install script

This script downloads the latest release, verifies its checksum, and installs it on your PATH:

curl -fsSL https://raw.githubusercontent.com/ericmann/journal/main/install.sh | sh

Linux — packages

Each release includes .deb, .rpm, and .apk packages for amd64 and arm64:

sudo dpkg -i journal_*_linux_amd64.deb     # Debian / Ubuntu
sudo rpm  -i journal_*_linux_amd64.rpm     # Fedora / RHEL
sudo apk add --allow-untrusted journal_*_linux_amd64.apk

Verify the installation

journal --help

You should see a list of available commands. If that works, move on to installing Ollama.


journal uses Ollama to build the search index on your machine. This is what makes local semantic search possible — no API key, no data leaving your computer.

macOS:

brew install ollama
brew services start ollama   # runs Ollama as a background service

Linux:

curl -fsSL https://ollama.com/install.sh | sh
# Ollama is installed as a systemd service and starts automatically

Pull the embedding model

Once Ollama is running, pull the model journal uses for indexing:

ollama pull qwen3-embedding:4b

This downloads a ~2.5 GB model. It only runs on your machine, and it only runs when journal is indexing or searching.


Check everything is working

journal doctor

journal doctor checks that Ollama is reachable, the embedding model is present, and the search index is healthy. If something is misconfigured, it tells you exactly what to fix.


Next step

Now that journal is installed, head to Your First Day to initialize a journal and capture your first note.


Build from source (Go 1.26+)
git clone https://github.com/ericmann/journal.git
cd journal
make install

This builds a version-stamped binary and installs it to /usr/local/bin. You can override the install prefix with PREFIX=/your/path make install.