System requirements
Operating System
- Linux: Ubuntu 20.04+, Debian 11+, or equivalent
- macOS: 12 (Monterey) or later
- Windows: WSL2 recommended
Hardware
- CPU: x86_64 or ARM64
- RAM: 4GB minimum, 8GB recommended
- Disk: 2GB for build artifacts
Prerequisites
Install these tools before building Magpie:Rust 1.75+
Claude CLI
The Claude CLI powers both Tier 1 (text generation) and Tier 2 (Goose agent) LLM calls.Install Claude CLI
Follow the official Claude Code documentation to install the CLI for your platform.
Authenticate
Run You’ll be prompted to log in via your browser.
claude interactively to complete authentication:Git and GitHub CLI
Git handles branch operations. The GitHub CLI (gh) automates PR creation.
- macOS
- Linux (Debian/Ubuntu)
- Linux (Fedora/RHEL)
- Windows (WSL2)
Optional: C++ compiler
Required for building Goose dependencies (candle, llama-cpp).- macOS
- Linux (Debian/Ubuntu)
- Linux (Fedora/RHEL)
Build Magpie
Build all crates
First build timing: 4-5 minutes due to Goose transitive dependencies (candle, llama-cpp, tree-sitter). Subsequent builds are much faster thanks to Cargo’s incremental compilation.
magpie-core(library)magpie-cli(binary)magpie-discord(binary)magpie-teams(binary)
Build individual crates
To build only specific crates:Run tests
Run integration tests (optional)
Some tests are marked
#[ignore] because they require the claude CLI or a real git repository:Configuration
Magpie is configured entirely via environment variables. All adapters (CLI, Discord, Teams) read from the same variables.Core pipeline settings
Path to the git repository to operate on. The agent’s file operations and git commands target this directory.
Base branch for new feature branches. Magpie creates branches like
magpie/{slug} from this branch.Command to run tests during the CI loop. Customize for your project’s test runner.
Command to run lints during the CI loop.
Maximum lint → test → fix retries. After this many rounds, the pipeline returns
PartialSuccess status.GitHub organization to restrict repo access. When set, the pipeline resolves the target repo from the task message and clones it into a temp workspace.
This enables multi-repo support. Example task:
"fix bug in api-service" → Magpie clones your-company/api-service.Plane integration (optional)
Connect to a self-hosted Plane instance for issue tracking:URL of your Plane instance.
Plane API key for authentication.
Workspace slug where issues will be created.
Project ID for auto-created issues.
Discord bot (optional)
Run Magpie as a Discord bot that responds to@magpie mentions:
Discord bot token from the Discord Developer Portal.
Teams webhook (optional)
Run Magpie as a Microsoft Teams webhook:Bot Framework app ID.
Bot Framework app secret.
Address for the webhook server.
Daytona sandbox (optional)
Execute pipeline commands in remote Daytona sandboxes:Daytona API key.
Daytona API base URL.
Organization ID for multi-tenant Daytona instances.
Sandbox size class (
small, medium, large).Pre-built snapshot to use for faster sandbox creation.
Comma-separated
KEY=VALUE pairs to inject into the sandbox environment.Persistent volume ID to mount in the sandbox.
Path where the volume should be mounted.
Using a .env file
Instead of exporting variables manually, create a.env file:
.env
.env from the current directory via dotenvy::dotenv() at startup.
Verify installation
Run these commands to ensure everything is configured correctly:For production deployments, see Deployment Guide for Docker, Kubernetes, and systemd configurations.
Troubleshooting
Build error: linking with `cc` failed
Build error: linking with `cc` failed
Install a C++ compiler:
Error: claude: command not found
Error: claude: command not found
The Claude CLI is not installed or not in your PATH. Follow the Claude Code setup guide.
Error: gh: command not found
Error: gh: command not found
Install the GitHub CLI:Then authenticate:
gh auth loginPipeline fails with 'not a git repository'
Pipeline fails with 'not a git repository'
Ensure
MAGPIE_REPO_DIR points to a valid git repository:Tests hang or timeout
Tests hang or timeout
Some integration tests make real API calls. Skip them:
Discord bot doesn't respond to mentions
Discord bot doesn't respond to mentions
Verify the bot has these permissions in your Discord server:
- Read Messages/View Channels
- Send Messages
- Create Public Threads
- Manage Threads
echo $DISCORD_TOKENNext steps
Quickstart
Run your first end-to-end pipeline
Architecture
Understand Magpie’s two-tier agent system and blueprint engine
Chat adapters
Set up Discord or Teams integrations
API reference
Explore the programmatic API