Skip to content

Releases and versions

This page records how Bob versions are published and how they relate to the bob binary, Mac Capture, and the Obsidian plugins. Install a named version with Install a specific Bob release.

Where releases appear

Surface What it shows
GitHub Releases Version notes and, when the train ships them, prebuilt archives
Git tags vX.Y.Z on bobs-org/bob-cli
CHANGELOG.md Keep a Changelog sections in the bob-cli repository
crates.io The bob-obsidian package is not yet published. Install from Git or a GitHub Release

The Cargo package name is bob-obsidian. The installed binaries keep their names: bob, bob_pomodoro, bob_notify, and tmux_bob_pomodoro. cargo install bob-cli installs an unrelated project.

Cadence

The release train ships at most one version per America/New_York calendar day, and only when a user-visible change landed since the last tag. feat, fix, perf, and revert commits count. docs, chore, refactor, test, ci, style, and build commits do not ship a version on their own. A day with no qualifying commit produces no release.

The train is in rehearsal: it creates tags and GitHub Releases. It does not publish to crates.io yet.

Version numbers

Bob is on 0.x. On that series:

Change since the last release Version
feat, fix, perf, or revert Patch, for example 0.2.0 → 0.2.1
A Conventional Commit with ! Minor, for example 0.2.1 → 0.3.0
docs, chore, refactor, test, ci, style, or build only No release

A ! marker is the product contract break for CLI flags, CLI output, and JSON consumers. The Rust library in this repository is an internal seam, not a public API. CLI and JSON fields grow additively until a ! commit says otherwise.

Check your version

bob --version
Output
bob 0.2.0

The printed number is the version compiled into that binary. Compare it with the newest vX.Y.Z tag on GitHub Releases. A Git checkout of master can contain changes that have not reached a tagged release. The daily schedule does not guarantee a release: the train must pass its guard and CI.

Companion tools

Mac Capture and the Obsidian plugins track bob-cli HEAD. They call bob and consume its JSON; they do not parse capture grammar themselves. The JSON contract grows additively, so a companion built against an older schema keeps working when new fields appear. A ! commit is the signal that a CLI or JSON consumer must change.

Pinning bob to a GitHub Release while the plugins and Mac Capture follow HEAD is the usual split. Hosts that track HEAD for every component use each repository's current source and can sit ahead of the latest CLI tag.

Prebuilt archives

Each GitHub Release can attach archives for:

Platform Target Archive
Linux x86_64 x86_64-unknown-linux-gnu bob-x86_64-unknown-linux-gnu.tar.gz
macOS arm64 aarch64-apple-darwin bob-aarch64-apple-darwin.tar.gz

Each archive contains bob, bob_pomodoro, bob_notify, and tmux_bob_pomodoro. The package also declares cargo-binstall metadata for those URLs; cargo binstall bob-obsidian resolves them after the crate is on crates.io. Until then, download the archive from the GitHub Release or install from Git. See Install a specific Bob release.

Tested rolling snapshot bob-cli 41afa14 bob-mac-capture 556bb67 bob-plugins af1e691 Built 2026-10-24T22:34:13Z (zensical) build.json