Minions are Stripe’s homegrown coding agents, responsible for more than a thousand pull requests merged each week. Though humans review the code, minions write it from start to finish. Learn how they work, and how we built them.
Overview
Stripe built homegrown unattended coding agents called Minions that one-shot entire tasks from Slack message to merged pull request. Over a thousand PRs per week at Stripe are fully minion-produced with no human-written code, enabling engineers to parallelize work by spinning up multiple agents simultaneously. The article covers how engineers use minions, their integration points, the agent architecture built on a fork of Block's Goose, and the feedback loops including local linting and CI testing.
What You'll Learn
Why Stripe built custom unattended coding agents instead of using off-the-shelf tools
How to design ergonomic entry points for coding agents across Slack, CLI, web, and internal platforms
How to structure an agent feedback loop with local linting, CI testing, and bounded retry rounds
Why isolated developer environments (devboxes) enable safe, parallelized agent execution
How MCP provides a common language for connecting coding agents to internal tools and context sources
Prerequisites & Requirements
- Understanding of CI/CD pipelines and pull request workflows
- Familiarity with LLM-based coding agents and their capabilities
- Basic understanding of MCP (Model Context Protocol) for LLM function calling(optional)
- Experience working in large-scale monorepo codebases(optional)
Key Questions Answered
What are Stripe's Minions coding agents and how many PRs do they produce?
Why did Stripe build custom coding agents instead of using existing tools?
How do engineers invoke and interact with Stripe's Minions agents?
What underlying technology powers Stripe's Minions coding agents?
How do Stripe's coding agents handle test failures and CI feedback?
How does Stripe use MCP with their coding agents?
How do Stripe's Minions handle agent rule files and conditional configuration?
What is Stripe's approach to shifting feedback left for coding agents?
Key Statistics & Figures
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Key Actionable Insights
1Build unattended coding agents that reuse the same developer tooling as human engineers rather than creating separate agent-specific infrastructure. Stripe's minions use the same devboxes, linters, CI pipelines, and agent rule files that human engineers use, following the principle that 'if it's good for humans, it's good for LLMs, too.'This approach reduces maintenance burden and ensures agents follow the same quality standards and best practices as human developers, while leveraging existing investments in developer productivity infrastructure.
2Limit CI retry rounds to at most two iterations when building automated coding agents, as there are diminishing marginal returns for an LLM to run many rounds of a full CI loop. Fix everything possible locally before pushing to CI, using fast local linting heuristics that run in seconds rather than expensive full CI runs.Each CI run costs tokens, compute, and time. Stripe found that 'often one, at most two CI runs—and only after we've fixed everything we can locally' strikes the right balance between speed and completeness for their agent workflow.
3Implement conditional agent rules based on subdirectories rather than maintaining many unconditional global rules. In a large codebase, blanket rules become impractical and can conflict across different domains, so scoping agent guidance to specific parts of the codebase provides more targeted and effective instructions.Stripe applies this pattern across their hundreds of millions of lines of code, allowing different teams and codebases to have their own agent configurations without creating global rule conflicts.
4Pre-hydrate agent context by deterministically running relevant MCP tools over links and references before the agent loop even begins. This gives the agent rich context from documentation, tickets, build statuses, and code search upfront rather than relying on it to discover and fetch this information during its run.Stripe deterministically processes likely-looking links before a minion run starts, reducing agent exploration time and improving first-attempt success rates for one-shot task completion.
5Use isolated, pre-warmed developer environments for agent execution to enable safe parallelization. Stripe spins up devboxes in 10 seconds with code and services pre-loaded, isolated from production and the internet, eliminating the need for human permission checks and avoiding the overhead of alternatives like git worktrees.This architecture enables engineers to spin up multiple minions in parallel, which is particularly valuable during on-call rotations for resolving many small issues simultaneously.
6Design multiple ergonomic entry points for coding agents that integrate naturally into existing developer workflows. Rather than requiring engineers to context-switch to a separate tool, embed agent invocation directly into Slack threads, internal ticketing systems, feature flag platforms, and documentation tools where engineers already work.Stripe integrates minion invocation into Slack (most common entry point), CLI, web UI, internal docs platform, feature flag platform, and ticketing UI, making it effortless to kick off an agent from wherever the relevant context already exists.