Issues in.Code out.

Put your backlog through the forge. FragonForge turns labeled issues into merge requests ready for your review. The agent builds. You review.

1 repository · 100 runs/month
Your own API key · No credit card

  1. Label an issue
  2. Agent builds & tests
  3. Review the merge request

From backlog to built.

  1. Label an issue

    Write the issue the way you would for a colleague. Add the trigger label. FragonForge receives the webhook, verifies its signature, and queues a run.

  2. The agent works in an isolated sandbox

    Each run starts a fresh Kubernetes job with a hardened runtime (Kata VMs on every plan). The sandbox holds a clone of your repository and the toolchains, and nothing else. No credentials, no network egress except one authenticated gateway.

  3. It runs your tests

    The sandbox ships real toolchains, not mocks: dotnet test, pytest, phpstan, rubocop, and more. The agent runs your test suite against its own change and iterates on failures. One condition today: your dependencies have to be in the repository already, because the sandbox has no route to a package registry.

  4. You review the merge request

    FragonForge pushes a branch, opens a merge request with a description of what it did and why, and comments on the original issue. It never merges on its own unless you explicitly allow it: autonomous merge is an opt-in that applies only to steps whose quality gate is green, and it stays off by default. Your review process stays exactly where it was: in the MR.

Read the loop in depth: agent modes, quality gate, guardrails →
issue #412illustrative example

CSV export crashes when a column header is empty. ExportService.WriteHeader throws a NullReferenceException when a report column has no display name.

merge request !391illustrative example

Fix: handle empty column headers in CSV export

fix/412-empty-csv-header → main

@@ ExportService.WriteHeader @@
- writer.Write(col.DisplayName.Trim());
+ writer.Write(col.DisplayName?.Trim() ?? "");
214 tests passed, 2 new+12 -3awaiting your review

Closes #412. WriteHeader now emits an empty cell for unnamed columns; two regression tests cover the repro.

Inside the forge.

A working product surface built from the same interface language as the site. Switch views to follow a run, inspect the dashboard, or watch a pipeline move.

Demo workspace

INBOX

Needs you

Nothing needs you

No run is waiting on a decision from you right now.

Happening now

2 running tasks

Create API Program.cs with DI, EF, CORS, OpenAPI, and auth setup

northstar/ledgerRunning2026-09-09 19:00Stop

Implement meme queue and settings templates

orbit/checkoutRunning2026-09-09 19:00Stop

This month

Runs this month

52/5000

Spend this month

$0.00

Projected month end

$0.00

at the current rate

Explore the dashboard, follow a task, or inspect a pipeline. Every screen is a constructed preview using the FragonForge UI system, with illustrative demo data.

Big ideas. Built in sequence.

The orchestrator is what you use when the work is bigger than one issue: a feature, a module, or a whole app built from an empty repository. Describe the goal; a discovery stage clones and scans your repository, an architecture stage drafts a design you approve, and decomposition is validated step by step: acceptance criteria, files to touch, and tests to add are required for every step, or the plan is regenerated.

Then the pipeline runs. Each step goes through the normal loop in its own sandbox and lands as a merge request, in dependency order, with you as the gate between stages. A failed step retries from the earliest failed point, not from scratch.

orchestrator · deep planningillustrative example

planned

goal "CSV import for reports"
discovery repo cloned, 214 files scanned
architecture drafted · approved by you
decompose 6 steps, criteria validated · approved by you

shipped

[x] 1 Parser module MR !84 merged
[x] 2 Schema validation MR !85 merged
[x] 3 Import endpoint MR !86 merged
[x] 4 Error reporting MR !87 merged
[x] 5 Upload UI MR !88 merged
[x] 6 End-to-end tests MR !89 merged

goal shipped · 6/6 merge requests merged

Your forge. Your way of working.

Works with your forge, not just github.com

Most coding agents assume github.com and stop there. Your code might live on a self-managed GitLab, on GitHub Enterprise, on a self-hosted Gitea or Forgejo, or on plain gitlab.com or github.com. FragonForge connects to all of them: you supply the API endpoint and a token per organization, and it is validated live against your host when you save it.

Bitbucket Cloud is the narrowest integration, and differently shaped: Bitbucket has no issue labels, so the trigger there is the pull request itself. Opened and updated pull requests run analysis automatically, a comment on a pull request dispatches agent feedback, and auto-fix pull requests still start from the dashboard. The label-an-issue loop does not exist on Bitbucket, by design rather than by backlog.

The limit

FragonForge is a hosted service and connects to your forge from our infrastructure, so an instance that is only reachable inside your private network cannot be connected today. On the Enterprise plan, a deployment on your own hardware can be arranged by agreement.

Three ways to pay for the model

Every paid plan includes a monthly FragonForge AI budget in euros: 7.50 on Solo, 25 on Team, 75 on Business. Runs draw on it as they use models, so you can start without opening an API account anywhere. When the budget is used up, runs pause and wait for the reset rather than failing or charging you something you did not agree to; an Owner can turn on an opt-in overrun limit if they would rather runs keep going. Free carries no budget.

Or connect your own API key for Anthropic, OpenAI, Google, OpenRouter, Mistral, Groq, DeepSeek, or any OpenAI-compatible endpoint. Model spend then goes on your existing contract, under the data processing terms you already negotiated with your provider, and we never resell or mark up tokens.

The third way is a subscription you already pay for. Connect a ChatGPT Plus, Pro, Team, or Business plan as your seat and the runs you start spend that plan instead. OpenAI only for now; automated triggers and the planning stage keep using the organization key.

The subscription itself pays for orchestration, isolation, code search, and collaboration. Which path a repository uses is stated in its settings, so a run never bills against something you did not expect.

The guarantee

A repository set to your key always spends your key: an organization without one fails closed, it never silently borrows someone else's.

See what a seat covers

connected providers

  • Anthropic
  • OpenAI
  • Google
  • OpenRouter
  • Mistral
  • Groq
  • DeepSeek
  • Custom (OpenAI-compatible)

Billed by your provider, on your contract. Encrypted per organization (AES-GCM), rotatable per provider. A ChatGPT plan can stand in for the OpenAI key on the runs you start yourself.

Isolation is the product

Running an AI agent against your codebase means running untrusted code. We treat it with the same posture as a CI runner, and we built the product around that fact.

Every run executes in its own Kubernetes job with a hardened runtime, non-root, from a digest-pinned, vulnerability-scanned image. Network egress is default-deny; the only way out is a single gateway that authenticates every call with a per-run token, revoked when the run ends. The sandbox holds no credentials: clone, push, and merge request calls happen outside it, and your LLM key is attached at the egress proxy, never inside the sandbox.

Read the security architecture
sandbox isolation, per run

kubernetes job

created per run, destroyed after

kata runtime

per-run VM boundary, separate guest kernel

default-deny egress

one gateway, authenticated per run

zero credentials inside

git and LLM auth stay on the control plane

Built to hold up.

01

Quality gate

The quality gate draws from a catalog of 34 analysis tools, almost all of them community analyzers you already know. A baseline-aware gate blocks only new findings, and findings can flow straight into auto-fix merge requests. The AI review adds the blast radius of the change and the callers it resolved, and says so when it cannot map the diff instead of showing an empty one.

quality gate · run 1847
  • analysis complete
  • 0 new findings
  • blast radius: 3 callers

02

Code search, not a pasted repository

The agent searches an index instead of guessing. Structural search over symbols, callers and callees is on every plan, Free included; semantic search is the paid addition. The index is scoped to your organization and deleted when you leave.

34

analysis tools available

9

AST-aware languages

Ready when you are

Give your backlog
a way forward.

Start with one repository and one issue.
See what comes out of the forge.

Free plan: 1 repository · 100 runs/month
Your own API key · No credit card