Skip to content

The Studio

The Studio is where Novaterra builds things. You describe what you want — a brief, or a filled-in generator form — and a small team of agents plans it, splits it into tasks, executes them with real tools, reviews the result against what you asked for, and hands you back files you can preview, download, or list on the Marketplace. Route: /studio.

Being.brief → Planner (strong tier) → Crew, or team assembly → Task runner (bounded
→ Deliverable contracts → Output assembly concurrency)
→ QA review → Project done

Every step of that pipeline publishes real-time events over the WebSocket, so watching a project run is not a spinner — it’s a live task board and a scrolling trace of what each agent is actually doing.

Two things worth knowing before you start one. POST /api/studio/projects always starts a run and spends money — there is no “create it but don’t run it”. And the project page leads with the deliverable, above the plan and the trace: you asked for a thing, so the thing is first.

The four things in this section

  • Briefs — how a project starts: a free-text brief or a generator’s form, and how the planner turns either one into a task graph.
  • Generators — what a Generator is, how its steps and input form work, and how to save your own. (For the eleven seeded ones with their exact inputs and pipelines, see the Generators catalogue.)
  • Projects — the task graph, the crew, live traces, cost, editing a plan, gates, due dates, cancelling, and picking a stopped run back up.
  • Outputs — how files are assembled, previewed, downloaded, and checked against what each step promised.

Above one project

The Studio describes a single project well and says nothing about several of them, so there is a second Place for that: /work. It shows every project at once, grouped by what it needs from you — with waiting ranked above done, because a question still on your desktop is not “finished” — and every open step across every project in one list. See Architecture.

A concrete start

Terminal window
curl -s -X POST http://localhost:4000/api/studio/projects \
-H 'content-type: application/json' -b cookies.txt \
-d '{"brief":"Write a 1200-word blog post about why small teams ship faster than big ones"}'
{
"id": "prj_8f2a...",
"ownerId": "b_owner...",
"generatorId": null,
"title": "Write a 1200-word blog post about why small teams ship faster than big ones",
"brief": "Write a 1200-word blog post about why small teams ship faster than big ones",
"inputs": {},
"status": "planning",
"outputs": [],
"teamId": null,
"costUsd": 0,
"createdAt": "2026-09-06T10:02:11.000Z",
"updatedAt": "2026-09-06T10:02:11.000Z"
}

The route returns immediately with status: 'planning'; everything after that — the plan, the team, every task, every file — happens in the background and streams to you as project.updated, task.updated, and trace WebSocket events. The same thing happens, with a filled-in form instead of free text, when you run one of the seed generators — see Briefs for exactly how the two paths differ.

Also reachable from here

You can start a Studio project without ever opening /studio: typing a “make/build/write/draft…” sentence into the omnibar calls this exact POST /api/studio/projects route internally.