Build and install Guidedog¶
Install on macOS with Homebrew¶
Use the official insanai/homebrew-guidedog tap on Apple silicon or Intel Macs:
brew tap insanai/guidedog
brew install insanai/guidedog/guidedog
guidedog --version
Homebrew selects the release archive for your processor and checks its SHA-256. The package includes Typst, Graphviz, and tree-sitter. You do not need an Odin compiler, a Python environment, or a separate Typst installation to build HTML and PDF. The release requires macOS 12 or later.
Create your first project with Your first project. To update an installed release:
brew update
brew upgrade insanai/guidedog/guidedog
Run brew test insanai/guidedog/guidedog to check the installed package by
creating a project and building HTML and PDF.
Build from source¶
Use the Odin toolchain pinned in tools/odin-release.txt.
The release uses Odin dev-2026-10 and Typst 0.15.1.
Graphviz development libraries are needed for the shared-library build.
Development build¶
From the repository root:
mkdir -p build
native/tree-sitter/build.sh
odin build cmd/guidedog -out:build/guidedog -o:speed -vet -strict-style
build/guidedog --version
build/guidedog formats
The tree-sitter build supplies the pinned Python grammar for source-based autodoc.
Install Graphviz’s development files through your system package manager.
A build without the Typst bridge uses an installed typst program for PDF.
Use --typst=/absolute/path/to/typst to select it explicitly.
Embedded compiler¶
Build the native dependencies once, then link them into the Odin executable:
cargo build --release --manifest-path native/typst_bridge/Cargo.toml
native/graphviz/build.sh
odin build cmd/guidedog -out:build/guidedog -o:speed \
-define:GUIDEDOG_TYPST_BRIDGE=true -define:GRAPHDOG_STATIC=true
The Typst bridge is Rust code outside Guidedoc’s allocation-free boundary. An embedded build removes the need to launch a separate Typst executable. It does not remove the compiler’s own memory costs.
On Windows, name the output build/guidedog.exe.
Put the executable on your PATH if you want to use guidedog without its path.