Creating and editing templates

Prompt templates are for storing your favorite prompts that you can quickly use across any agent inside of Solo. Sort of like an agent-agnostic, user-invoked skill.

Templates are created and managed in the prompt template library, which you can open from the command palette or quick jump. This page covers the editor, saving rules, scope changes, and exporting templates to Markdown files.

Creating a template

Click New template in the library header. Solo creates an empty template and opens it in the editor. It uses Untitled template when available, then the first available numbered name from Untitled template 2 through Untitled template 9999.

The new template is created in the scope you opened the library from — the current project when you opened a project's templates, or global when you opened the application-level library. You can change the scope before or after saving.

The editor

Each template has three fields:

  • Name — shown in the picker and library. Click the title in the header or the large document title to rename it.
  • Description — optional text used as the preview line in the picker and library when non-empty.
  • Template body — the prompt text itself. Use {{placeholder_name}} for values you want to fill in when using the template; see Placeholders.

Below the body, a Placeholders section lists every placeholder found in the draft as chips, updating live as you type. A count also appears in the meta row near the scope control.

Saving

The editor does not autosave. The Save button enables as soon as the draft differs from the saved template, and your pending edits survive switching fields until you save or leave.

Names have a few rules:

  • A name is required.
  • Names cannot contain / or control characters.
  • Names must be unique within their scope using ASCII case-insensitive matching — two global templates cannot share such a name, and neither can two templates in the same project. The same name can exist in different scopes. Non-ASCII letters are not case-folded, so names that differ only by non-ASCII letter case can remain distinct.

Changing scope

The scope control in the meta row switches a template between Global and any project. Like other edits, the change applies when you save. If the destination scope already has a template with the same name, the save fails — rename one of them first.

Duplicate and delete

The ... actions menu in the editor header offers:

  • Duplicate — creates a copy in the same scope named <name> copy (then <name> copy 2, and so on) and opens it.
  • Delete — permanently deletes the template after a confirmation dialog. This cannot be undone.

Timestamps

The bottom of the editor shows when the template was Created and last Updated, each with a relative time. Once a template has been used from the picker, a Last used timestamp appears as well — this is what drives the default ordering in the picker and library.

Exporting to Markdown

Templates can be exported as Markdown files through Solo's prompt template MCP tools. An MCP client can use this to write template backups or repository copies to a destination Solo can write.

Each exported file contains YAML frontmatter followed by the raw template body:

---
name: Refactor brief
scope: global
description: Standard multi-file refactor prompt
placeholders:
- goal
---
 
Please refactor {{goal}}.

The frontmatter fields are:

Field Notes
name The template name
scope global or project
description Omitted when the template has no description
project The project's id, name, and path; only present for project-scoped templates
placeholders The template's placeholder names in order of first appearance; omitted when there are none

Filenames use ASCII-only slugs: ASCII letters are lowercased, ASCII digits are retained, and runs of every other character become hyphens; leading and trailing hyphens are removed. For example, Deploy — Brief! becomes deploy-brief.md. A name with no ASCII letters or digits falls back to prompt-template.md. When two exports would produce the same filename, or a file with that name already exists in the destination, Solo appends a number (deploy-brief-2.md) instead of overwriting anything. Line endings in exported files are normalized to Unix newlines.

Are you an agent? Read this doc via API: /api/v1/docs/prompt-templates/creating-and-editing