Guild
Rust-native polyglot monorepo orchestrator. Task dependency graphs, parallel execution, affected detection, and caching — without the Node.js ecosystem.
Guild treats every language as a first-class citizen. Whether your monorepo mixes Rust, TypeScript, Go, Python, or anything else — if it has shell commands, Guild can orchestrate it.
Installation
Homebrew (macOS/Linux)
Cargo
From source
Quick Start
1. Create a workspace guild.toml at your monorepo root
[]
= "my-monorepo"
= ["apps/*", "libs/*", "services/*"]
2. Add a guild.toml to each project
Guild works with any language — just point targets at shell commands:
Rust project:
[]
= "core-lib"
= ["lib", "rust"]
[]
= "cargo build"
= ["^build"]
= ["src/**/*.rs", "Cargo.toml"]
[]
= "cargo test"
= ["build"]
[]
= "cargo clippy -- -D warnings"
TypeScript project:
[]
= "web-app"
= ["app", "typescript"]
= ["core-lib", "shared-utils"]
[]
= "pnpm build"
= ["^build"]
= ["src/**/*.ts", "package.json"]
[]
= "pnpm test"
= ["build"]
[]
= "pnpm dev"
[]
= "pnpm lint"
Go service:
[]
= "api-gateway"
= ["service", "go"]
= ["core-lib"]
[]
= "go build ./..."
= ["^build"]
= ["**/*.go", "go.mod"]
[]
= "go test ./..."
= ["build"]
[]
= "golangci-lint run"
3. Run targets
Or bootstrap from existing manifests
Already have Cargo.toml, package.json, go.mod, or pyproject.toml files? Guild can scaffold config for you:
guild.toml Format
Workspace (root)
[]
= "my-monorepo"
= ["apps/*", "libs/*"] # Glob patterns for project directories
Project
[]
= "my-project" # Unique project identifier
= ["lib", "rust"] # Optional tags for filtering
= ["other-project"] # Project-level dependencies
[]
= "cargo build" # Shell command to execute
= ["^build"] # ^ = upstream projects' target
= ["src/**/*.rs"] # Files that affect cache validity
= ["target/release/bin"] # Files produced by the target
[]
= "cargo test"
= ["build"] # Local target dependency (no ^)
Dependency Syntax
"build"— depends on thebuildtarget in the same project"^build"— depends on thebuildtarget in all upstream dependency projects
CLI Commands
guild Show help
guild dev Start all dev targets
guild build Build everything
guild test Test everything
guild lint Lint everything
guild run <target> [project] Run arbitrary target
guild affected <target> Run target on affected projects only
guild list List all discovered projects
guild graph Show dependency graph
guild cache status Show cache statistics
guild cache clean Clear the cache
guild init Scaffold guild.toml from existing manifests
Development
License
MIT