01
Open a project
Drop a folder, a zip, or a public GitHub link, or start on the built-in demo project. node_modules stays out.
The AI code editor that checks its own work
Composer plans a change and stages it as a diff. Before you apply it, Aperture checks that it parses, its imports resolve, the preview renders, and the tests pass. The tests run in your browser tab, free, in about a second.
Open source · MIT · try it with no API key in replay mode
24 export function listTasks() { 25 const start = page * pageSize; 26 return tasks; 27 } 28 29 export function getTask(id: ID) { 30 const task = byId.get(id); 31 return task;
How it works
01
Drop a folder, a zip, or a public GitHub link, or start on the built-in demo project. node_modules stays out.
02
Write it like you’d tell a teammate. Composer reads the code, posts a plan, and waits for you to click Build it.
03
Edits arrive as staged diffs, each checked: it parses, imports resolve, the preview renders, the tests pass. Keep or skip file by file.
The edit
Composer does not dump a whole file. You get the plan, the exact lines, and the apply call — typed as they land.
The edit, as a search-replace you can read.
Why Aperture
AI edits are easy to make look right. Aperture finds out whether they parse, resolve, render and pass before anything touches your files.
Checks
The workspace
Composer searches the project’s code before it plans, not just the open tab.
Click an element in the preview to edit its CSS rule or the page’s theme tokens. No model needed.
The test sandbox blocks all network access, so code the agent just wrote cannot reach the app or anything else.
Composer uses the model in the menu. If that key is missing, we tell you. Hosted Grok is a choice, not a fallback.
xAI Grok
api.x.ai
Hosted Grok, or bring your own xAI key.
OpenAI GPT
api.openai.com
Bring your own key under Settings → Models.
Anthropic Claude
api.anthropic.com
Bring your own key under Settings → Models.
Google Gemini
aistudio.google.com
Bring your own key under Settings → Models.
DeepSeek
api.deepseek.com
Bring your own key under Settings → Models.
Coming soon
Hobby is free today. Pro and Team are not available yet: there is no checkout, and nothing is charged.
Hobby
The editor and agents, with a small hosted allowance.
$0 / mo
No card required
Pro
Coming soonDaily hosted Grok, unlimited agents on your keys.
$16 / mo
Not available yet. Nothing is charged.
Team
Coming soonHeadroom for people who live in the agent.
$32 / mo
Not available yet. Nothing is charged.
Paid plans are not available yet: there is no checkout, and no card is charged. Bring your own key
An open-source AI code editor that checks its own work: Composer plans a change and stages it as a diff, and every staged change is checked before you apply it.
Four things, computed from the staged change: the changed files parse, every import in them resolves, the staged page renders without errors and is not blank, and the project’s tests pass. A check that could not run says why. It never shows as a pass.
No. npm run test runs in a sandboxed Worker in your browser tab, with no network access, in about a second. It covers node:test, Vitest and Jest. Projects that need a real Node can run in Vercel Sandbox instead.
Yes. Run it locally with APERTURE_MODEL=replay. Replay plays back recorded runs on the built-in demo project, harbor-api, and costs nothing. The commands are in the README.
No. Pick Hosted Grok, or your own key for Grok, OpenAI, Anthropic, Gemini or DeepSeek under Settings → Models. Your own API usage is billed by that provider, not by us.
Download a zip from the Open menu, the command palette, or ⌘S / Ctrl+S. Secrets like .env never enter the zip. Apply is not final — Undo this run restores the files from before that Composer send.
Not yet. Paid plans are coming soon. Nothing is charged today.
Open the editor and fix a bug in the demo project. Add your own keys later if you already pay OpenAI, Anthropic, or xAI.