Autonomous software engineering

Your backlog,
shipping itself.

Forge deploys autonomous Droids that read your issues, write the fix, run your tests, and open the PR. You review code, not context.

$forge deploy --repo acme/api
forge — acme/api
$ forge deploy --repo acme/api --issue 847
Connecting to acme/api (main)...
Repository cloned, 847 open issues scanned
Droid-4 assigned to #847 Race condition in payment mutex
Analyzing src/payments/processor.go:142...
Writing fix: add deferred unlock + context timeout
142 lines changed across 3 files
Running test suite...
387 passed · 0 failed · 14.2s
PR #2847 opened: fix: resolve payment mutex race condition
Ready for review. Avg review time: 4 min
$
What Droids ship
PR Diff
Merged
@@ src/payments/processor.go:138-156 @@ func (p *Processor) Execute(ctx context.Context) { - p.mu.Lock() + ctx, cancel := context.WithTimeout(ctx, 30*time.Second) + defer cancel() + p.mu.Lock() + defer p.mu.Unlock() result, err := p.charge(ctx, amount) - p.mu.Unlock() if err != nil {
Test Results
All passed
TestProcessorExecute_Success0.04s
TestProcessorExecute_Timeout0.31s
TestProcessorExecute_ConcurrentLock1.24s
TestProcessorRollback0.12s
TestIdempotencyKeyGeneration0.02s
TestMutexDeadlockPrevention2.08s
387 passed14.2s
Deploy Log
Live
14:32:01 PR #2847 merged into main 14:32:04 CI pipeline triggered 14:33:18 Build succeeded (74s) 14:33:22 Deploying to staging... 14:34:01 Health check passed 14:34:05 Promoting to production... 14:34:38 Live on v2.14.7

Droid activity

Live

12 Droids active across 4 repositories. Last 24 hours.

D7
Droid-7 merged #2847 into main — fix: resolve payment mutex race condition
2m ago
D3
Droid-3 opened #2851 — fix: N+1 query in order listing endpoint
8m ago
D11
Droid-11 closed #2849 — chore: upgrade opentelemetry-sdk to 1.24.0
14m ago
D1
Droid-1 opened #2852 — feat: add circuit breaker to Stripe webhook handler
21m ago
D9
Droid-9 merged #2843 into main — fix: connection pool exhaustion under load
38m ago
D3
Droid-3 opened #2846 — refactor: extract retry logic into shared middleware
52m ago
D5
Droid-5 merged #2840 into main — fix: timezone drift in cron scheduler
1h ago
D7
Droid-7 opened #2853 — fix: memory leak in long-running WebSocket connections
1h ago
D1
Droid-1 closed #2838 — chore: pin transitive deps after Dependabot audit
2h ago
D11
Droid-11 opened #2854 — feat: add structured logging to auth service
2h ago
D5
Droid-5 merged #2836 into main — fix: graceful shutdown drops in-flight requests
3h ago
D9
Droid-9 opened #2855 — test: add integration tests for billing reconciliation
4h ago
Dark code on a monitor
Ship 10x the fixes.
Review the same amount.

Configure once, run everywhere

Forge reads your existing toolchain. Drop a forge.yaml in your repo root and Droids inherit your CI, linter, and deploy pipeline.

forge.yaml | repository config
repo: acme/api
droids: 8
branch_prefix: forge/
auto_merge: false  # require human review
test_cmd: go test ./...
lint_cmd: golangci-lint run
GitHub App | permissions
# Install the Forge GitHub App
# Droids get scoped access:
contents:  write   # push branches
issues:    read    # read issue context
pulls:     write   # open and update PRs
checks:    read    # verify CI status
actions:   read    # trigger workflows
Slack | notifications
notifications:
  slack:
    channel: #eng-forge
    events:
      - pr_opened
      - pr_merged
      - test_failure
      - deploy_complete
CI Pipeline | override
# Droids respect your CI config
# Override per-droid behavior:
ci:
  provider: github_actions
  required_checks:
    - test
    - lint
    - security-scan
Get started

Point Forge at your repo.
Watch the backlog shrink.

$forge init

Free for open source. Teams start at 5 Droids. No seat-based pricing — you pay per merged PR.