The Plugins panel
Click Plugins in the sidebar to open the panel. This single button replaces the former separate Skills, Sub-Agents, and MCP buttons. The panel has four tabs:- Plugins — browse marketplaces and install plugins
- Skills — everything the old Skills panel offered (see Skills)
- Agents — everything the old Sub-Agents panel offered (see Sub-agents)
- MCP — everything the old MCP panel offered (see MCP servers)
Adding a marketplace
A marketplace is a GitHub repository — or a local folder — that lists one or more plugins. Until you add one, the Plugins tab shows an empty state. On the Plugins tab, type a GitHub repo into the input and click Add. Accepted forms:owner/repoowner/repo@ref— whererefis a branch, tag, or commit SHA- Any
github.comURL
- Refresh — re-fetches the listing and checks for plugin updates
- Remove — removes the marketplace, with an inline confirm (“Remove this marketplace? Installed plugins stay.”) — not available for the built-in marketplace
GitHub token authentication
Set a GitHub token at the top of the Plugins tab to raise GitHub’s anonymous rate limit and add private repositories your token can read. Once saved it shows masked (for example••••1a2b) — click Edit to change it or Clear to remove it.
Each GitHub marketplace you add picks how it authenticates, next to the repo input:
A marketplace’s auth mode shows as an auth: badge in its section header.
Manifest formats
CTOR reads the marketplace manifest in this order:.bricks-plugin/marketplace.json.claude-plugin/marketplace.json
.bricks-plugin format wins. A repository that contains only a plugin.json is treated as a single-plugin marketplace.
Built-in marketplace
CTOR ships with one marketplace built in — bricks-ctor-agent-skills, frommybigday/bricks-ctor-agent-skills. It’s always registered, needs no setup, and refreshes automatically at startup and once a day while CTOR runs; if it can’t reach GitHub, it keeps whatever it last cached.
It carries the BRICKS team’s official plugins, including App Templates (app-templates), which turns an existing application into a reusable prompt template — a short requirement list capturing its design, state, and data flow so you can rebuild or remix it. Shipping from the marketplace means these plugins update without an app release.
Its section renders in a highlighted panel pinned to the bottom of the marketplace list, with a Built-in badge (hover it for a hint). It has no Remove action, and its name is reserved — adding or replacing a marketplace named bricks-ctor-agent-skills from any other source fails with “This name belongs to the built-in marketplace and cannot be replaced or removed.”
Plugin cards
Each plugin shows a card with its name, version, and description, plus badges that summarize what it contains and where it is installed:- Installed scope — Global, This project, or N projects
- MCP ×N — the number of MCP servers the plugin bundles
- Hooks — present when the plugin defines hooks; shows Hooks (not approved) until you enable them
Installing a plugin
Clicking Install opens the Install dialog. It starts with a trust note. Below the note, the dialog lists everything the plugin provides so you can choose what to install:- Skills are opt-in checkboxes, with Select all / Select none. A skill shows an overwrite badge when a same-named skill already exists in the target scope. A skill whose name collides with a built-in skill shows a Reserved name badge and is skipped.
- Agents are listed alongside the skills.
- MCP servers require explicit per-server consent, under a MCP servers run local processes notice. Each server shows its exact resolved command line and is unchecked by default.
- Hooks require a single explicit consent, under a Hooks run local commands on agent events notice. Click Enable hooks (N) to review every event, matcher, and command before you agree.
Install scopes
A Project | Global segmented control picks the target scope:- Global installs apply to every project and the main chat. Skills land in
~/.bricks-project-desktop/skills/. - Project installs apply to the open project only. Skills land in
.bricks/skills/.
Updates and safety
- Plugin MCP servers live in a machine-local registry. They are never written into your project’s
.mcp.json. - MCP approvals are pinned to the command. If a command changes after an update, you must re-approve it.
- Updating replaces unmodified plugin files but never overwrites skills or agents you have edited — your edited copies are kept. The same applies when you uninstall.
- An update re-expands only the skills you chose at install time. Skills newly added in an update need a reinstall to opt in.
MCP scope and inheritance
The MCP tab has its own Project | Global switcher.- Global edits the main workspace’s
.mcp.json, labeled Main workspace — inherited by all projects. - A project inherits global servers under its own. Project entries win by name, so the overall precedence is plugin < inherited < project.
- Each project has an Inherit global MCP servers toggle.
- Inherited servers show a Global badge; plugin servers show a Plugin badge.
Claude Code compatibility
An existing Claude Code plugin or marketplace works in CTOR unmodified:- CTOR reads
.claude-plugin/manifests. - It resolves
${CLAUDE_PLUGIN_ROOT}(and${BRICKS_PLUGIN_ROOT}) in MCP and hook commands. - Only skills, agents, MCP servers, and hooks are activated. Other Claude Code component types are ignored.
Error messages
The installer reports a clear error when it can’t add a marketplace or plugin, including:- An invalid repository spec
- A repository that can’t be found, or a private repository your token can’t read
- A GitHub rate limit
- A download or extract failure
- A missing or invalid manifest — a bare skill repository can be installed from the Skills tab instead
- An unsupported source type