Starters and templates
A starter seeds the workspace with a working extension before the first prompt, so the agent edits something that already builds. Reach for one when you know the surface you want, or when you want a template from the catalog opened as your own project.
Quick start
template listType that in the terminal and the slugs the workspace can seed print. Then run template action to seed the toolbar popup, or click the Toolbar popup card on an empty workspace. The files land, the build runs, and the popup opens in the preview.
How it works
The five cards
An empty workspace shows five starter cards. Each card carries one sentence that it sends as the first ask, and the router resolves that sentence to the closest template:
| Card | The sentence it sends | Resolves to |
|---|---|---|
| Toolbar popup | Build an extension with a toolbar popup that shows a counter I can increment and reset, and remembers the count. | action |
| Content script | Build a content script that highlights every link on the current page and shows how many it found. | content |
| Side panel | Build an extension with a side panel that lists the current page's headings as a clickable table of contents. | javascript |
| DevTools panel | Build an extension that adds a DevTools panel listing every open tab with its title and URL. | devtools |
| New tab page | Build an extension that overrides the new tab page with a large clock and a search box. | newtab |
A card whose template is not proven seedable is hidden. The strip ends with a More templates card that opens the catalog on templates.extension.dev.
Links that seed a workspace
| Address | What it does |
|---|---|
/?template=<slug> | Seeds the workspace from that catalog template |
/?artifact=gen_<id> | Opens a published artifact's files as your own project |
/?prompt=<text> | Fills the prompt box and sends nothing |
/?prompt=<text>&source=starter | Routes the sentence to a template and seeds it, the way a card does |
/drafts/<id> | Reopens a saved draft |
When a link carries more than one of these, the draft wins, then the artifact, then the template. ?prompt= alone never chooses a seed, so one link can carry a template and a first sentence together.
Every page in the template catalog has an Open in code.extension.dev button, which is the ?template= link.
The template command
In the terminal, template <slug> seeds the named template, and the same command with a few words seeds the closest match to them. template list prints the slugs the workspace can seed. The command replaces the project and resets the conversation, so it refuses on a workspace that already holds a project you claimed.
Which templates are offered
The catalog pins 59 templates. Each one was seeded, built and booted in the preview, and the result is recorded with the compiler version that measured it. 51 pass and one passes in part. Cards, template list and the word match offer only those, so a seed never starts from a template that cannot build here.
Reference
| Command | What it does |
|---|---|
template <slug> | Seeds the workspace from that template |
template <words> | Seeds the closest template to the words, or prints the three closest slugs |
template list | Prints every slug the workspace can seed |
| Limit | Value |
|---|---|
| Templates pinned in the catalog | 59 |
| Templates proven seedable | 52, of which 51 pass in full |
| Closest slugs named on a miss | 3 |
When it fails
- A template link opens on the prompt box with a sentence naming the slug. The slug is not in the seedable set. The message says there is no seedable template by that name and points you to templates.extension.dev, or to the prompt box below it.
template <words>prints three slugs and exits. No template matched closely enough. Runtemplate <slug>with one of the three.templaterefuses because the workspace holds a project. Seeding replaces the project and resets the conversation. Choose New project from the project switcher in the header first, then run it again.- A card is missing from the strip. Its template is not proven seedable with the current compiler, so the card is hidden until it is.