4.4. Squad Template Catalog¶
The Squad Template Catalog lets you discover and install pre-built squad templates published to a GitHub-backed catalog — the same multi-source registry that distributes individual agent profiles. A catalog ships ready-made team recipes (for example, an "Open-source code review crew" or a "Korean translation team") so you can add a fully configured squad without building it from scratch.
Catalog templates are installed locally and then behave exactly like any other user template: you can apply, export, or delete them. Built-in templates remain read-only.
Browsing the catalog¶
- Open the Catalog page from the sidebar.
- Select the Squad Templates tab.
- Each card shows the template's icon, name, category, description, tags, author, version, and the source it came from.
If you have configured more than one registry source, filter chips let you narrow the grid to a single source. Use Refresh to re-fetch the latest index (this bypasses the local cache).
Squad templates and agent profiles are distributed through one shared list of registry sources. Adding, removing, enabling, or disabling a source under Settings → Registry Sources affects both the Community (agents) tab and the Squad Templates tab at once. There is no separate source list for squad templates.
Installing a template¶
Click Install on a card. Backend.AI GO fetches the template JSON from the source, validates its schema version, and writes it under your local squad-templates directory. Once installed:
- The card shows Installed instead of Install.
- The template appears in the template gallery (Squad → New Squad) with a From catalog badge, alongside built-in and locally-created templates.
Models referenced by installed templates¶
Catalog templates carry each agent's model preferences. If an installed template references a model you do not have locally, that agent automatically falls back to the default model set in Settings → Models — so an installed template is always usable even before you download its preferred models. The Squad Templates tab shows a reminder of this behavior above the grid.
Uninstalling a template¶
A catalog template is a user template once installed, so you remove it the same way you remove any user template:
- In the template gallery (Squad → New Squad), use the Delete action on the template card and confirm.
Built-in templates cannot be deleted. Deleting an installed catalog template only removes your local copy; you can re-install it from the catalog at any time.
Publishing a squad template to a catalog¶
Authoring a catalog is a pure data exercise — there is no app release or backend service involved. A catalog is just a GitHub repository served over raw.githubusercontent.com.
1. Author the template JSON¶
Export a squad you have built (Save as template, then Export from the gallery) to get a valid template JSON, or hand-author one following the template JSON schema. Place it at a stable path in your catalog repository, for example:
your-catalog/
├── index.json
├── code-assistants/
│ └── python-expert.json # an agent profile
└── squad-templates/
└── code-review-crew.json # a squad template
The conventional location for squad templates is a top-level squad-templates/ directory, but any relative path works as long as the index points at it.
2. List it in index.json with kind: "squad_template"¶
The catalog's index.json carries summary entries for both agent profiles and squad templates in one list. Mark each squad-template entry with "kind": "squad_template":
{
"version": 1,
"updatedAt": "2026-05-28T00:00:00Z",
"profiles": [
{
"path": "code-assistants/python-expert.json",
"name": "Python Expert",
"category": "code_assistant",
"kind": "agent_profile"
},
{
"path": "squad-templates/code-review-crew.json",
"name": "Code Review Crew",
"description": "Security, performance, and style reviewers as one team.",
"category": "review",
"author": "your-org",
"icon": "🔐",
"tags": ["review", "code-quality"],
"version": "1.0.0",
"kind": "squad_template"
}
]
}
The index format is additive and backward-compatible:
- An entry without a
kindfield defaults toagent_profile, so existing agent-only catalogs (such aslablup/agent-catalog) keep working unchanged. - Older app versions that do not understand
squad_templatestill parse new indexes; they simply ignore the kinds they do not handle.
The index entry carries only summary fields for the card display. The full agent roster, prompts, tools, and model preferences live in the template JSON at path, which is fetched only when the user installs.
3. Add your source in the app¶
Open Settings → Registry Sources, add your repository (owner, repo, branch, label), and the app validates that the repo contains a valid index.json. Your squad templates then appear in the Squad Templates tab. Because the source list is shared, your agent profiles (if any) appear in the Community tab from the same source.
Security¶
The catalog performs no signature or checksum verification today — it trusts GitHub TLS only. Distributing unsigned squad templates is acceptable because a squad template is pure configuration (system prompts, tool flags, and model preferences); it cannot execute arbitrary code on import. Installation runs the same validation and content limits as a local template import (size caps, agent count, field-length checks), and the imported template is always forced to a non-built-in user template.
Catalog-wide signature verification — covering both agent profiles and squad templates uniformly — is tracked as a separate follow-up.
How it works¶
Browsing reuses the shared aggregated registry index, the HTTP fetch + cache layer, and the multi-source storage already used for agent profiles. The only squad-specific pieces are the kind discriminator on index entries, an install handler that lands the template via the squad template storage layer, and the Squad Templates tab. Both the desktop (Tauri) and headless (REST) builds support the full browse-and-install flow; the REST endpoint is POST /api/v1/squad-registry/install.