Arbor Arbor

← Docs

Documentation

Building & Development

Task Runner Commands

Arbor uses just as its task runner. All commands apply the pinned Rust nightly toolchain (nightly-2025-11-30) automatically.

Command Description
just setup-macos Install macOS dependencies (one-time)
just setup-linux Install Linux dependencies (one-time)
just format Auto-fix formatting
just format-check Check formatting without modifying files
just lint Run clippy with -D warnings
just test Run all tests
just ci Full CI suite (format-check + lint + test)
just run Build and run the desktop app
just run-httpd Build and run the HTTP daemon

Crate Architecture

The project is split into four crates:

Crate Description
arbor-core Worktree primitives, change detection, agent hooks
arbor-gui GPUI desktop app (arbor binary)
arbor-httpd Remote HTTP daemon (arbor-httpd binary)
arbor-web-ui TypeScript dashboard assets + helper crate

CI

GitHub Actions runs format, lint, and test checks on pushes to main and pull requests.

Workflow: CI

On pushes to main, CI also runs a cross-platform build matrix:

Releases

Push a tag in YYYYMMDD.NN format (example: 20260301.01) to trigger an automated release.

Workflow: Release

Artifacts

Changelog

This project uses git-cliff for changelog generation. Config lives in cliff.toml.

Command Description
just changelog Generate/update CHANGELOG.md
just changelog-unreleased Preview unreleased entries in stdout
just changelog-release <version> Preview a release section tagged as v<version>