Installing a release binary
Download the archive for your system from the Releases page (under Assets, on the latest release). Not sure which file you need? See the FAQ. Each archive contains two binaries directly:obsidianlog (the CLI) and obsidianlog-ingest (the standalone
ingest server). There’s no installer and no dependencies to install
separately.
Whether extracting it lands those two files in their own folder depends
on how you extract it. Double-clicking the archive (or your file manager’s
Extract option) creates a new folder named after it automatically.
Extracting from a raw tar command doesn’t, it dumps the files into
whatever directory you’re already in. The commands below account for
both, so you end up in a tidy folder either way.
- macOS / Linux
- Windows
Double-click the downloaded On macOS, the quickest way to open the right folder in Terminal: open
Terminal, type
.tar.gz file (or use your file manager’s
Extract option). It extracts into a new folder named after the
archive. Open that folder, open a terminal there, and run:cd (including the space), then drag the extracted
folder from Finder into the Terminal window and press Enter.Prefer to do the extraction from a terminal too?chmod step on
macOS/Linux is needed because the executable bit isn’t always preserved
inside the archive.
obsidianlog is a command-line tool, not a GUI app. The commands above need
an actual terminal (Terminal on macOS, PowerShell or Windows Terminal on
Windows, your terminal app on Linux). Double-clicking the binary itself
does not start setup: it has no command to run, so it prints the help
screen and exits. Open a terminal, change into the extracted folder, then
run ./obsidianlog init (or .\obsidianlog.exe init on Windows).- macOS
- Windows
- Linux
Gatekeeper blocks it. The most reliable fix, especially for these
command-line binaries, is to clear the quarantine flag directly in a
terminal:Prefer the GUI instead? The order matters here: right-click
obsidianlog in Finder and choose Open once (this attempt gets
blocked, that’s expected, it’s what registers the binary with macOS).
Then go to System Settings → Privacy & Security, scroll to the
Security section, and click Open Anyway next to the message naming
obsidianlog. That button only appears after a blocked attempt, not
before, so doing this step first won’t show it.Archive your first log and get it back
The CLI wraps setup, ingestion, retrieval, and integrity checking. These four steps take under a minute and use--non-interactive, which always
picks the local backend and skips every setup question, the fastest way to
see the whole loop work. Omit that flag if you’d rather answer each
question yourself.
- macOS / Linux
- Windows
Two terminals, both open in the folder you extracted. Leave the first
running You’ll see:2. Start the server.The terminal won’t return to a prompt after this, it keeps running
until you stop it. That’s expected, leave it running and use your
second terminal for the rest.3. In the second terminal, send a log.You should see 5. Verify the hash chain.
serve; use the second for everything else.1. Set up. Generates the encryption key and writes config.toml.200 on its own line. That’s the only output: a
successful ingest returns an empty response, -s hides curl’s progress
meter, and -w '%{http_code}\n' prints the status code so you can tell
it worked. If you see an error message and a code like 400 instead,
the server rejected the log, and the message says why.4. Query it back.On macOS,
init will prompt at most once for your login-keychain password.
This is the OS asking permission for obsidianlog to store the credentials
it just generated, not an ObsidianLog password. Click Always Allow
rather than just Allow, so later serve/query/verify runs read them
without prompting again.What’s next
- Your First Test Run: the same loop again, with more detail on what to expect at each step.
- Returning User: what happens
when you re-run
initlater, including rotating the key with--force. - Choosing a Backend: local disk, hosted Sia Storage, or bring your own indexer.
- Docker Compose Quickstart: the same loop, containerized.
- No local install at all: fork the repo and run the GitHub Actions demo to watch the whole pipeline run in your browser.

