Now in private beta — Join the waitlist →
Built with Elixir/OTP + React

AI agents that ship code.
Not just write it.

From ticket to merged PR. Forge agents plan in isolated git worktrees, implement across your full stack, run CI, and open real pull requests on GitHub. You review and merge.

Join the waitlist → Watch the demo

We used Forge to build Forge.

This isn't a toy demo. We created a ticket to add a delete button to Forge — while recording. The agent planned, coded across Phoenix backend and React frontend, ran CI, opened a PR, and merged it.

forge · demo recording · mission: add-delete-button
8 files changed +297 -114 $1.82 433.5s
forge · mission 56dd7e3e · add-templates-to-new-ticket-modal
New ticket: "Add mission templates to the new ticket modal"
◆ Planning Worktree created (forge/56dd7e3e)
◆ Planning Reading lib/forge_core/missions.ex...
◆ Planning Reading apps/forge_ui/src/components/dashboard/NewTicketModal.tsx...
◆ Planning Generating plan (5 steps) · estimated $0.06–$0.13
◆ Waiting Plan ready — awaiting your approval
✔ Approved Starting execution...
Step 1 ✔  patch_file lib/forge_core/missions.ex (+13 lines)
Step 2 ✔  patch_file lib/forge_core_web/controllers/api_controller.ex (+34 lines)
Step 3 ✔  patch_file apps/forge_ui/src/components/dashboard/NewTicketModal.tsx (+47 lines)
Step 4 ✔  run_command mix compile · no errors
Step 5 ✔  run_command npx tsc --noEmit · no errors
✔ All review checks passed · pushing branch
PR #43 opened github.com/user/forge/pull/43
# 3 files changed · +26 / -15 lines · $0.42 · 251s · gemini-3-flash-preview

Built on OTP. Not duct tape.

Forge is an Elixir/Phoenix umbrella app where every mission is a supervised GenServer process.

Process-per-Mission

Every mission is a GenServer under a DynamicSupervisor with a Registry for unique naming. 20 agents can run in parallel across different repos. If one crashes, the supervisor restarts it. Others keep running.

GenServer DynamicSupervisor Registry

Real-time via Phoenix Channels

Every tool call — read_file, patch_file, run_command — is broadcast on a mission_trace:<id> topic. The React frontend picks it up instantly. No polling. No SSE hacks.

Phoenix.PubSub WebSocket Channels

Git Worktree Isolation

Each mission gets its own git worktree. Agents work on the same repo simultaneously without conflicts. Worktrees map 1:1 to GenServer processes.

git worktree branch isolation parallel

Model-Agnostic Agent Loop

The runner doesn't care if it's talking to Claude, Gemini, or Ollama. It's a GenServer that sends messages and handles responses. Swapping models is a config change.

Claude Gemini Ollama BYOK
1defmodule ForgeCore.Agent.Runner do
2 use GenServer
3
4 def start_link(%Mission{} = mission) do
5 GenServer.start_link(__MODULE__, mission,
6 name: {:via, Registry, {ForgeCore.Agent.Registry, mission.id}})
7 end
8
9 def handle_info(:plan, %{mission: mission} = state) do
10 plan = ForgeCore.LLM.generate_plan(mission)
11 Endpoint.broadcast("mission_trace:#{mission.id}", "plan_ready", plan)
12 {:noreply, %{state | plan: plan, status: :awaiting_approval}}
13 end
14end

From ticket to merged PR,
fully automated.

Forge's agent loop handles the entire software delivery lifecycle — with humans in control at every critical step.

1

Describe the work

Submit a ticket in plain language. Paste a user story, a bug report, or just describe what you need. Forge reads your codebase to understand context.

2

Approve the plan

The AI agent generates a step-by-step implementation plan before writing a line of code. You review and approve — or chat with the agent to refine it.

3

Agent implements & validates

Forge works in an isolated git worktree — writing files, running tests, fixing errors, and iterating until the implementation is clean.

4

PR opened, CI runs, you merge

A pull request is automatically created with a full description. CI runs. When all checks pass, you merge — or Forge auto-merges if you configure it.

✦ New Mission Planning
Add mission templates to new ticket modal
We need to track per-user API calls and bill monthly based on actual usage. Tiered pricing: 0–1k calls free, $0.001/call after.
claude-sonnet-4-6 High priority apps/billing
Est. cost: $0.12 – $0.35 Assigned: AI Agent
Plan ready — awaiting approval Estimated $0.06–$0.13 · 5 steps
1
Add MissionTemplate schema + migration in missions.ex
2
Add CRUD actions to api_controller.ex + route in router
3
Create useMissionTemplates React hook for fetching & saving
4
Add Templates dropdown to NewTicketModal.tsx with apply logic
5
Seed 20 built-in system templates via priv/repo/seeds.exs
Agent working — step 3/5 in progress Running
1defmodule ForgeCore.Missions.MissionTemplate do
2 use Ecto.Schema
3 import Ecto.Changeset
4
5 schema "mission_templates" do
6 field :name, :string
7 field :title, :string
8 field :description, :string
9 field :is_system, :boolean, default: false
10 belongs_to :org, Organization
11 timestamps()
12 end
13end
mix compile: clean npx tsc: clean 791k in · 6.8k out
PR #43 opened · CI running All checks passed
feat: Add mission templates to new ticket modal
3 files +26 / -15 forge/56dd7e3e
Cost: $0.42 · 251s · gemini-3-flash-preview
Elixir Compilepassed
TypeScript Checkpassed
Elixir Testspassed

Everything your team needs.
Nothing you don't.

Forge is a complete AI engineering platform — not just a code autocomplete. Every feature is designed for real production workflows.

🧠

Autonomous Agent Loop

Two-agent architecture: a planner that reasons about your codebase and a reviewer that validates the output. Agents iterate until the work is correct.

plan → execute → review self-healing
🔀

GitHub PR Auto-Creation

When the review agent approves the work, Forge automatically pushes the branch and opens a pull request with a detailed description — no human needed.

auto-push PR description merge gates

Live CI/CD Integration

Forge polls your GitHub Actions checks in real-time. The dashboard shows live CI status, and merging is blocked until all checks pass.

GitHub Actions real-time checks CI gate
🔔

Smart Notifications

Get notified when human approval is needed, PRs are opened, or missions fail — via Slack, email, or custom webhooks. Configurable per org.

Slack email webhooks
🎯

Goals & OKR Planning

Set strategic goals, create projects beneath them, and let AI break down your objectives into a ready-to-run mission backlog in seconds.

OKRs AI planning batch creation
💰

Full Cost Transparency

Every LLM call is logged with token counts, cost, latency, and model. Set per-mission budget caps. View daily spend trends and model performance in the Intelligence Hub.

audit log budget caps model analytics
🤖

Multi-Model Support

Run missions on Claude, Gemini, or local models via Ollama. Compare cost and performance. Switch models per mission without changing your workflow.

Claude Gemini Ollama
🛡️

Role-Based Access Control

Viewer, Engineer, and Admin roles. Engineers create and approve missions. Admins can force-complete, merge, and manage org settings. GitHub OAuth built-in.

GitHub OAuth API tokens org scoping
📡

Real-Time Dashboard

Watch agent reasoning live via WebSocket. See the code diff, CI status, token usage, and cost — all in one view. Chat with the agent during planning.

WebSocket live diff agent chat

Works inside your existing workflow

💬 Slack ticket
Forge mission
🤖 AI agent runs
🔀 GitHub PR
CI passes
🚀 Merged & deployed
Elixir 1.15·Phoenix 1.8·Ecto/Postgres·React 18·TypeScript·Tailwind·shadcn/ui
Supports Claude, Gemini, GPT-4, and local models via Ollama

What changes when your
team uses Forge.

😩 Without Forge
Engineers spend 40% of time on predictable, repetitive implementations
Backlog grows faster than the team can ship
AI tools generate code you still have to wire up, test, and PR yourself
No visibility into AI costs — surprise bills at end of month
Context-switching kills focus — Slack interrupts mid-implementation
Junior engineers blocked on complex architectural decisions
PR review cycles take days due to implementation gaps
With Forge
AI handles implementation — engineers focus on product decisions and architecture
Backlog converts to PRs automatically, 24/7
Full end-to-end: plan → code → test → PR → CI — all automated
Per-mission cost tracking, budget caps, and Intelligence Hub analytics
Approve a plan async, get notified when the PR is ready — no interruptions
Any engineer can ship complex features by describing what's needed
PRs arrive complete, tested, and with CI passing — reviews take minutes

Ready to ship
10x faster?

Join engineering teams already using Forge to clear their backlogs and ship production-quality code autonomously.

No credit card required. We'll reach out when your spot opens.