Overview
ThePipelineConfig struct controls how Magpie executes tasks: repository location, base branch, test and lint commands, CI retry limits, and integration settings.
Configuration Structure
crates/magpie-core/src/pipeline.rs:26-48
Basic Settings
Path to the git repository to operate on. When
github_org is set, this is ignored in favor of dynamic repo resolution.Environment Variable: MAGPIE_REPO_DIRExample:Base branch for new feature branches. All Magpie branches are created from this branch and PRs target it.Environment Variable:
MAGPIE_BASE_BRANCHExample:Command to run tests during the CI loop. Executed after the agent completes its work.Environment Variable:
MAGPIE_TEST_CMDExamples:Command to run lints during the CI loop. Executed before tests.Environment Variable:
MAGPIE_LINT_CMDExamples:Maximum number of lint→test→fix retry attempts. If CI fails after this many rounds, the pipeline returns Note: For Standard and BugFix tasks, the blueprint already runs tests+lint internally. If those pass, the first CI round is skipped (effectively starting at round 2).
PartialSuccess status.Environment Variable: MAGPIE_MAX_CI_ROUNDSExample:Multi-Repo Support
GitHub organization to restrict repo access to. When set, Magpie dynamically resolves the target repo from the task message.Environment Variable: Use Case: Run a single Magpie instance across multiple repos in the same GitHub organization.Source:
MAGPIE_GITHUB_ORGBehavior:- Parses repo name from patterns like
"fix bug in api-service"or"deploy repo api-service" - Validates the repo belongs to the configured org (rejects cross-org references)
- Clones the repo into a temp workspace using
gh repo clone - Temp directory is automatically cleaned up when the pipeline completes
crates/magpie-core/src/pipeline.rs:754-790Advanced Options
Optional Plane issue tracking integration. When set, Magpie creates issues at pipeline start and updates them on completion.See Plane Configuration for details.
When
true, agent steps are replaced with shell echo stubs (for testing). Git operations still run, but no actual code changes are made.Use Case: Testing pipeline orchestration without invoking the LLM.Directory for JSONL trace files. When set, all agent calls (Tier 1 and Tier 2) are recorded with timestamps, tool calls, and response metadata.File Format: Use Case: Debugging agent behavior, auditing LLM usage, and analyzing pipeline performance.
.magpie/traces/magpie-trace-YYYY-MM-DD.jsonlExample:When set, pipeline runs execute inside a Daytona sandbox. If
None, commands execute locally.See Sandbox Configuration for details.Warm sandbox pool. When set, the pipeline tries to acquire a pre-built sandbox before falling back to cold creation.Feature Flag: Requires
daytona feature.See Sandbox Configuration for details.Default Configuration
The default configuration is suitable for Rust projects using Cargo:crates/magpie-core/src/pipeline.rs:50-67
Pipeline Result
Every pipeline run returns a structuredPipelineResult:
Status Values
Agent completed the task and all CI checks passed.
Agent completed the task and opened a PR, but CI checks failed after
max_ci_rounds attempts.The agent encountered an error during blueprint execution.
Pipeline setup failed (git branch creation, sandbox creation, or repo validation).
crates/magpie-core/src/pipeline.rs:70-87
Example Configurations
Rust Project (Default)
Node.js Project
Python Project
Multi-Repo Setup
MAGPIE_GITHUB_ORG is set, MAGPIE_REPO_DIR is ignored. Magpie parses the repo name from the task message and clones it dynamically.
CI Classification
Magpie automatically classifies changed files to determine whether to run CI: Docs-only extensions:.md,.txt,.rst,.adoc.png,.jpg,.gif,.svg,.ico.json,.yml,.yaml
LICENSE,CHANGELOG,CHANGES,AUTHORS,CONTRIBUTORS
- If all changed files are docs-only → skip CI
- Otherwise → run lint + test loop
- For Standard/BugFix tasks, if the blueprint’s built-in test+lint steps already passed, the CI loop is skipped entirely
crates/magpie-core/src/pipeline.rs:1057-1160
Related Documentation
- Environment Variables — Complete list of all env vars
- Plane Configuration — Issue tracking integration
- Sandbox Configuration — Daytona sandbox setup