Software is built,
not written.
Forge is the AI-native software creation platform for Builders. Ask an agent, or type the command: the same stable Capabilities, durable Resources and replaceable Implementations, through the same door.
forge release --app hello --host hello.example.comRelease res_01J….Build an AI-native app without leaving the conversation.
1import { listProjects } from '@/lib/projects'; 2 3export default async function ProjectsPage() { 4 const projects = await listProjects({ order: 'newest' }); 5 return ( 6 <main> 7 <h1>Projects</h1> 8 {projects.map(p => <ProjectCard key={p.id} project={p} />)} 9 </main> 10 ); 11}
One sentence in your editor. A plan, a designed screen, the code, a passing build, tests, lint and a health check out — every step a forge capability you can inspect.
response 403 · fail_count 1
.env.prod entries, then the next tick runs. Want me to open it in the playground?Triage from your phone. Claude Code runs the forge CLI where the project lives via Remote Control; forge's own log answers, with the fix.
Each one a stable contract: validate → permission → policy → execute → audit. Invoked identically over POST /capabilities/:slug by people, agents and the CLI.
Application, Build, Release, Deployment, AgentTask… durable state you can list, inspect and explain. One store, filesystem or Postgres.
A control plane that builds, tests and releases your app, and a slim data-plane sidecar that runs beside it in production. Your app imports no forge package.
Two kinds of Builder. One contract.
Engineers build. Designers build. Product managers build. Agents build. Different expertise, one identity — and one door into the platform.
Ask your agent forge
Done.
hello is running at localhost:3000 with Postgres. I created 3 resources and recorded 4 events; say “show me the events” any time.You never see a flag. The skill chooses the capability, fills the schema, and reports Resources and Events back in plain language.
From the terminal
$ ./new-app hello --with-postgres --dev # = forge init app · provision --with-postgres · install · build · test · lint · dev
Every verb is a thin client for one capability. --json gives you the same Resources the agent reads.
Both lanes end in the same request: POST /capabilities/initialize-app, validated, permission-checked, policy-checked, executed, audited.
What your app gets on day one
“The factory should disappear. When it does, you notice you are only thinking about the software.”A Builder — placeholder, needs a real quote before shipping