The whole development lifecycle, automated
CI/CD is the assembly line that builds, tests and ships code people wrote. A software factory extends that line forward: agents plan the change, write it, review it and prove it works. Your CI/CD still runs on every pull request.
Intake
Issue, Slack thread or ticket
Triage
Foreman picks the shortest path
Spec
Acceptance criteria you approve
Build
Agent codes in a sandbox
Verify
Tests, video per criterion
Preview
A live URL you accept
Review & merge
A person or your merge gate merges
This isn't a video. Hover a work item to follow it, hover a machine to see its YAML, pick a source to change what comes in.
CI/CD
- inputA commit a person wrote
- coversBuild, test, deploy
- defined inPipeline YAML in your repo
- gateGreen checks and a code review
Software factory · Kiln
- inputAn issue, a Slack thread, a ticket, a schedule
- coversPlan, spec, write, review, verify, preview, then your CI/CD
- defined inA factory tree in a repo you own
- gateSpec approval, preview acceptance, a person or your merge gate merges
Your favorite AI builds your factory
Your factory is already written in your history: the commands CI runs, what reviewers keep asking for, where requests come from. Kiln's Factory Architect has your coding agent read it, write a factory that fits, and backtest it on your own merged pull requests.
- Evidence, not guesses. Every choice cites a file, PR or ticket in FACTORY.md.
- Proven before trusted. A backtest replays your last merged PRs from their base commits.
- You stay in charge. It asks before reading Slack or your tracker, and before applying anything.
$ kiln architect✓ wrote .kiln/architect.md · .claude/skills/kiln-architect › /kiln-architect kiln scan pnpm · vitest · GitHub Actions · Sentry 40 PRs 62% small · reviewers ask for tests, the logger ? May I read Linear (Web) and Slack #support? yes Linear "Ready" means go · 41% of tickets lack criteria Slack bugs arrive in #support, mostly screenshots✓ wrote kiln/ · 6 agents · 4 automations · 2 skills · 2 scorers✓ backtest: 20 tasks from your merged pull requests✓ kiln validate kiln · ok · FACTORY.md explains every choice ? Apply this factory? (y/N)
The work nobody wants to do,
done before standup
Every use case is one automation file: a trigger, a filter and a prompt. Copy one into automations/, apply, done.
Your whole factory is a folder in Git
Agents, pipelines, gates, model routing, guardrails, scorers and skills are plain files. Review them in a pull request, validate them in CI, apply them atomically or as a canary. Click around: this is the real starter template.
Ten building blocks. No black box.
Every decision your factory makes is something you can read, change and version. Start from a template, then make it yours.
agents/Agents
Foreman, triage, spec, implement, verify, review, or your own role. Harness and model per agent.
pipelines/Pipelines
Fix the stages, fan out per user story, loop verify → build until it passes.
gates/Gates
Who approves, what evidence they see, when to nudge and when to park the work.
routers/Model routing
Easy tasks to a small model, hard ones to the best. Or route by benchmark results.
automations/Automations
Start work from issues, mentions, PR comments, schedules or any webhook.
skills/Skills
Reusable know-how in SKILL.md, per factory or per agent, shared across teams.
decisions/Typed decisions
Command guard and triage as typed questions with thresholds, LLM only as fallback.
policies/Policies & budgets
Protected paths, two-approval files, denied actions, a cap per work item.
runners/Runners & workers
Sandbox image, CPU and memory, setup commands, egress allowlist, your own machines.
scorers/Scorers
Rubrics with labels and a passing score that grade a sample of every agent's runs.
Know which setup actually ships.
Then let the factory fix itself.
Stop guessing which model or prompt is better. Kiln measures every run, benchmarks configurations on your own past tickets, and proposes its own fixes, with proof.
benchmarks/core · implement · 24 tasks from real tickets
Illustrative results. Every point is a configuration; the frontier shows what's worth paying for.
Results turn into routing rules: easy → haiku · medium → sonnet · hard → fable
scorers/criteria · implement · sampling 25% of runs
Does the pull request meet every acceptance criterion? (Illustrative week.)
| Run | Label | Score | Pass rate trend |
|---|---|---|---|
| Saved carts | meets | 1.0 | |
| Delivery estimate | meets | 1.0 | |
| Rate limit header | partly | 0.5 | |
| Checkout typo | meets | 1.0 | |
| CSV export | misses | 0.0 |
Failures feed self-improvement automatically. Dashboards show autonomy, cycle time, cost per merged PR and pass rate per agent.
The factory files a pull request against itself
Guarded: policies and gates are protected paths the improver can't touch.
criteria scorer for the same reason.agents/implement/agent.md.+ Before opening the PR, write one test per acceptance criterion + and record a video of each criterion passing. replay: 19/25 previously failing runs pass · 0 regressions
Ship definition changes like you ship code
Replay any past run from its saved start state under a new definition, then canary it.
| Replayed run | Current | Proposed |
|---|---|---|
| Fix flaky login test | failed | passed |
| Add audit export | passed | passed |
| Paginate invoices | partly | passed |
Your models. Your bill. No markup.
Kiln doesn't sell tokens. Plug in the subscription or keys you already pay for, per team, sealed in Kiln's vault and never returned by the API.
Claude
Your Claude subscription or an Anthropic API key.
claude setup-tokenOpenAI
Run Codex with your OpenAI API key.
OPENAI_API_KEY=sk-…AWS Bedrock
A Bedrock API key, or access keys and a region.
AWS_BEARER_TOKEN_BEDROCK=…Anything else
OpenRouter, Gemini and more through open harnesses.
OPENROUTER_API_KEY=…Product owners ship too
Approve a spec from Slack, accept a preview from your phone, turn meeting notes into a roadmap. Or build an app by talking to it.
Approve where you already are
Specs and previews come to Slack, Teams, the issue or the Kiln inbox, with the evidence to decide.
Plan with an agent
Paste a goal, a PRD or meeting notes. The plan agent writes epics and tracker issues with testable acceptance criteria, each routed to the right factory.
Studio: build an app by talking
Chat, or press Talk and speak. Studio builds in a sandbox, shows a live preview of every version, and opens a pull request when you're happy.
Agents do the work. People stay in charge.
Factories as code
Agents, automations, pipelines, scorers and skills live in a Git repo you own. Changes are reviewed like code and apply on merge.
Sandboxed runs
Every run starts in a Docker or gVisor sandbox behind an egress allowlist. Every shell command passes a guardrail.
You decide what merges
Agents push only kiln/* branches with short-lived tokens and can't approve or merge. A person merges by default; turn on a merge gate and Kiln merges the pull requests your rules call safe, such as a small front-end fix.
Evidence on every PR
Test output, a video for each acceptance criterion and a preview URL are attached to the pull request.
Scorers and self-improvement
Scorers grade every run. Repeated failures turn into definition PRs, replayed against the failing runs first.
Cost you can see
Spend per agent, per run and per merged PR: compute, inference and platform, with team budgets.
Everything a factory platform does.
Nothing it charges per run for.
Hosted software-factory platforms are a great idea. Kiln is the same idea that you own, end to end.
| Kiln | Hosted factory platforms | |
|---|---|---|
| License | MIT, the whole platform | Proprietary platform |
| Pricing | Free. You pay your model provider directly | Usage-based, per agent run |
| Where it runs | Your laptop, a VM, Docker Compose or Kubernetes | Their cloud, or your VPC |
| Models | Your Claude subscription, Anthropic, OpenAI, Bedrock, OpenRouter, Gemini | Platform default, or bring your own |
| Definitions | kiln/v1 in Git, with validate, diff, canary and replay | Config in Git |
| Evidence | Tests, a video per acceptance criterion and a preview on every PR | Depends on the platform |
| Merge rights | A person merges by default. Turn on a merge gate and Kiln merges safe pull requests by your rules. Agent tokens can never merge | Depends on configuration |
| Lock-in | None. Fork it, read it, change it | Platform account |
Running in two minutes
One process, a data folder and Docker. Demo data, a git-backed forge and scripted agents are built in, so you can see the whole lifecycle before connecting anything.
- Local first. No accounts needed to try it.
- Scale out with Docker Compose or Helm when your team joins.
- Your data stays on your infrastructure.
$ pnpm install && pnpm dev ✓ API on :4000 (demo data) · web on :3000 # use real models $ export KILN_AGENTS=real ANTHROPIC_API_KEY=… # define a factory as code $ pnpm kiln init my-factory --template sdlc $ pnpm kiln apply my-factory ✓ applied my-factory $ pnpm kiln send "Fix the typo in the README" → triaging → building → reviewing ✓ PR opened · waiting for a person to merge
Questions
Is it really free?
Yes. Kiln is MIT licensed and has no per-run fee. You pay your model provider (or use your Claude subscription) and run it on hardware you already have.
Which models and agents can I use?
Claude Code with a Claude subscription, an Anthropic key or AWS Bedrock; Codex with an OpenAI key; OpenCode and Pi with OpenRouter, Gemini and others. Set the harness and model per agent, or route by task difficulty.
I'm moving from Warp Factories. Can I bring my definitions?
kiln import converts a v1alpha1 factory definition tree to kiln/v1, and a connected config repo in that format is converted on every sync.
Can an agent merge to main?
No. Agents push only kiln/* branches with short-lived tokens, and no agent identity can approve or merge. A person merges, or Kiln's merge gate does when you turned it on: it merges a pull request only when your merge-safety rules call it safe, and sends the rest to a person.
Where does my code go?
Into sandboxes on your own infrastructure (Docker, or Kubernetes under gVisor) with an egress allowlist. The only outside calls are the ones you configure, such as your model provider.
How big a team does it need?
One person can run it with pnpm dev. Teams use Docker Compose or the Helm chart, with RBAC, an audit log, budgets and spend limits.