Tested snapshot
This site was built from the rolling sources below. They name the exact revisions the checks ran against; the minimum supported versions follow in Minimum requirements.
Built 2026-10-24T22:34:13Z (zensical) · bob-docs 0.1.0 · Python 3.12.15 · Zensical 0.0.71 · build.json
Requirements and compatibility¶
Bob runs one Markdown vault through a Rust CLI, Obsidian plugins, and an optional Mac panel. The snapshot above names the exact revisions this site was built from. The floors below are the minimum versions readers need.
Minimum requirements¶
- CLI platforms: Linux and macOS. The CLI, clipboard discovery, and browser helpers cover both; Mac-only paths note it where they differ.
- Obsidian: 1.8.7 or later. Every bundled Bob plugin manifest sets
minAppVersion1.8.7, so the floor follows the manifests, not this site's builder version. The mounted Obsidian plugins inventory is generated from the manifests, making it the source of truth for this floor and current manifest versions. - Tasks plugin: use a current Tasks release with the Dataview task
format and the
#taskglobal filter. The native query engine follows Tasks 8.4.0 filter behavior forstatus.symbol; the parity fixture and goldens run headless without Obsidian. Desktop rendering inside Obsidian still awaits a human pass. - Rust: version 1.95.0 or later from the
Rust toolchain. The repository pins
1.95.0 in
rust-toolchain.toml, and the package declaresrust-version = "1.95". - Mac Capture (optional): macOS 26 with Command Line Tools for Xcode
26+ or Xcode 26+, plus a signed or ad-hoc signed
bobonPATH. See Install, Build, README › Signing, and the protocol compatibility table.
Tested snapshot¶
The block above the title renders the rolling snapshot from the site
build: per-repository revisions with dirty and branch marks, the build
time and builder, tool versions, and build.json. Absent checkouts
report an unknown revision rather than a guessed one, and optional tool
versions appear only when the builder records them.
Compatibility shims¶
The installed compatibility binaries map to the preferred interface as follows:
| Compatibility binary | Preferred command |
|---|---|
bob_notify |
bob pomodoro notify |
bob_pomodoro |
bob pomodoro |
tmux_bob_pomodoro |
bob pomodoro tmux |
By default they call the same native Rust implementations as the preferred
commands. With BOB_CLI_USE_SCRIPT=1, the notification and Pomodoro
commands and their shims delegate to their embedded shell assets.
Native-only commands ignore the fallback setting. Extracted assets are
cached in a version-and-content-specific subdirectory of
$XDG_CACHE_HOME/bob-cli/scripts/. If XDG_CACHE_HOME is unset or empty,
the base is $HOME/.cache; if neither variable is available, Bob uses the
system temporary directory.
Old top-level spellings remain as hidden aliases. See Migration notes.
Runtime dependencies¶
Native command execution does not require Bash or Perl. Forced shell
fallback with BOB_CLI_USE_SCRIPT=1 requires Bash, and the Pomodoro-based
fallback scripts also require Perl.
The documented workflows use these external-tool integrations:
obsidianCLI plus a running desktop Obsidian vault with the Dataview plugin only when usingbob query --engine obsidiangitforbob vault-sync, Git-backedbob task archive, plugin dirty-file checks, and the defaultbob pluginsrepository refresh; remote operations also need the credentials required by the configured remotenotify-sendfor desktop notifications frombob pomodoro notify; Bob also rings the terminal bell whether or notnotify-sendis available- platform clipboard tools for
bob captureclipboard input:pbpasteon macOS;wl-paste,xclip, orxselon Linux; ortmux show-bufferin a display-less tmux session (seeBOB_CLIPBOARD_CMDin configuration for the exact fallback order) pandocandxelatexforbob ref createMarkdown targets, plus the LaTeX packagesbob ref doctorchecks; override pandoc withBOB_PANDOC_COMMAND. Doctor prints thetlmgr installline for any missing packagesuvand a discovered browser are optional for Mermaid fences in Markdown imports; without them, Mermaid prints as source with a visible notecurlforbob ref createPDF URL and arXiv targets; override withBOB_HIGHLIGHTS_CURL- A narration frontend for
bob ref create --listen, configured ashighlights.listen_command(sase listen render ...). Installing Bob does not install one. The SASE plugin (sase plugin install listen) providessase listen render {target} -e full -o {audio}; a directsase-listen render ...setting migrates automatically, and wrappers/shell programs are rejected uvplus a browser forbob ref createweb article targets.uvfetches Python ≥3.10 and the pinned Playwright, Pillow, and nh3 on first run (override the whole spawn withBOB_WEB_CLIP_ADAPTER). Discovery uses Google Chrome at/opt/google/chrome/chrome,/usr/bin/google-chrome,/usr/bin/google-chrome-stable, or the macOS Google Chrome app, then Playwright's bundled Chromium, newest installed revision first. Bundled Chromium launches by its discovered path, so the pinned Playwright's default revision need not be installed (as on apollo after revision 1248 replaced 1234). Current macOS Chrome-for-Testing and legacy Chromium app layouts are supported. SetBOB_CHROMEto another executable, including a system Chromium package. On Linux,Xvfblets it retry bot-protected sites headed; on macOS the retry uses an off-screen windowbashfor the embedded shell fallback and for sourcing~/.ssh-agent-thing; the Pomodoro shell fallback additionally usesperluvforbob gkeep: it fetches Python ≥3.10 and the pinnedgkeepapion first run (override the whole spawn withBOB_GKEEP_ADAPTER)passfor the defaultbob gkeeptoken store (token_commandandtoken_store_commandin thegkeep:config section)
No old chezmoi script files are required after installation. Cargo installs the Rust binaries, and the binaries carry the script assets they need. Environment variable defaults live in configuration.