Skip to main content
Plugins bundle skills, sub-agents, MCP servers, and hooks so you can install them together from a marketplace. CTOR’s plugin system is compatible with the Claude Code plugin ecosystem.

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)
The Skills, Agents, and MCP tabs keep all the management features of the panels they replace.

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/repo
  • owner/repo@ref — where ref is a branch, tag, or commit SHA
  • Any github.com URL
To add a marketplace from disk instead, click the folder button and pick a local folder. Each marketplace appears as its own section listing its plugins. Local sources show a local badge; the built-in marketplace (see below) shows a Built-in badge instead. Two actions sit on the section:
  • 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.
The token is stored locally in plain text, not encrypted. Use a token scoped only to the repositories your marketplaces need.

Manifest formats

CTOR reads the marketplace manifest in this order:
  1. .bricks-plugin/marketplace.json
  2. .claude-plugin/marketplace.json
When both exist, the .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, from mybigday/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 scopeGlobal, 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
Card actions:

Installing a plugin

Clicking Install opens the Install dialog. It starts with a trust note.
Skills instruct the agent and can read project files. Only install plugins from repositories you trust.
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.
Components CTOR doesn’t support yet are listed as Not supported yet (ignored) — this currently includes slash commands. The install button shows the current selection count, for example Install (3).

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/.
Skills installed by a plugin appear in the Skills tab with a plugin: badge. Plugin-installed agents appear in the Agents tab (without a distinguishing badge).

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.
See MCP servers for how to configure and manage servers.

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