# Bot templates



The catalog under Plugins → Bots is a curated discovery surface. Importing a
template creates an ordinary, actor-private, organization-pinned Computer
[session](/docs/agents/sessions-and-events) ("bot") — it does not create an
agent definition, project, plugin installation, connection, or running job.

The catalog currently includes Marketing Analyst, Meeting Notes,
Voice-Matched Drafts, Sales Prospector and Research Assistant, adapted from
botdirectory.ai with source attribution. Each template pins authored standing instructions and a
set of immutable, versioned skills; some also ship optional routine presets
that you must explicitly review and enable — nothing is scheduled
automatically.

<Callout title="What import does not do">
  Importing a template copies no credentials, connections, shared stores, or
  personal memories, and it enables no routine. You can freely edit the
  bot's standing instructions afterward; catalog changes never overwrite
  your edits or the skill versions your bot already has pinned.
</Callout>

## API [#api]

| Method | Path                       | Description                                                                                                                                                                                                            |
| ------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GET`  | `/v1/bot-templates`        | List the template catalog.                                                                                                                                                                                             |
| `POST` | `/v1/bot-templates/import` | Import a template (`org_id`, `template_id`, `revision`, and a bounded `request_id` of 1-128 letters, digits or hyphens). Returns `201` with the new `Session` the first time, `200` with the same `Session` on replay. |

`import` is human-only — it requires a Bearer JWT with the `compute:use`
scope, not an organization API key. Repeating the same actor/organization/
`request_id` returns the original bot instead of creating a duplicate;
resending it with different inputs conflicts with `409`. A receipt survives
deleting the imported bot, so replaying a `request_id` after deletion never
resurrects it — import a fresh template instead.

The imported session provisions its own owned [environment](/docs/agents/environments)
lazily: no VM or workspace folder exists at import. Opening the bot starts its
first conversation (`POST /v1/sessions/{id}/setup/start`), which prepares the
files folder, binds the desktop, and has the bot introduce itself using its
template and skills. Connecting an account or installing a plugin it suggests
always goes through an explicit approval card.

See [API reference](/docs/agents/api-reference#bot-templates) for
authentication and error conventions shared across the API.
