This guide walks you through setting up a local development environment for Goose.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/block/goose/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Goose includes Rust binaries alongside an Electron app for the GUI.Hermit
We use Hermit to manage development dependencies (Rust, Node, npm, just, etc.). Activate Hermit when entering the project:cd into the project (recommended).
WSL Users (Windows)
For WSL users, install additional dependencies:Building the Rust CLI
First Build
./target/debug/:
First-Time Configuration
Configure a provider connection:Development Commands
Building the Desktop UI
Running the UI
- Builds a release build of Rust (
cargo build -r) - Starts the Electron process
- Opens a window for first-time setup
ui/desktop.
UI-Only Development
If you’re only working on the UI and don’t need to rebuild Rust:Debug Build UI
Run the UI with debug Rust binaries (faster compilation):UI Testing
Working with the Server
Debugging the Server
To debug the Goose server, run it from an IDE with:3000 by default. Change with GOOSE_PORT environment variable.
Connect the UI to your running server:
Regenerating OpenAPI Schema
The fileui/desktop/openapi.json is automatically generated. After making server API changes:
openapi.json and rebuilds the TypeScript client.
Never edit ui/desktop/openapi.json manually. Make changes in crates/goose-server/src/.
Environment Variables
Provider Configuration
Change provider without reconfiguring:ANTHROPIC_API_KEYOPENAI_API_KEYDATABRICKS_HOSTGOOGLE_API_KEY- etc.
Isolating Test Environments
UseGOOSE_PATH_ROOT to isolate test data:
config/, data/, and state/ directories, preventing test sessions from affecting your main installation.
Development Loop
Typical workflow when making changes:Useful Just Commands
We use just as a command runner. See all available commands:Enabling Traces with Langfuse
For local tracing:- Start local Langfuse
- Create organization, project, and API credentials
- Set environment variables:
- View traces at http://localhost:3000
Next Steps
- Learn about Architecture
- Understand Testing
- Build Extensions
- Create Providers