> ## Documentation Index
> Fetch the complete documentation index at: https://docs.profy.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugin Catalog

> Complete list of all 28 built-in plugins: IDs, activation conditions, injected tools, bundled skills

# Plugin Catalog

The platform ships **28 built-in plugins**. This page is the complete list — every ID, activation condition, injected tool, bundled skill, and prompt.

## Understanding the activation model

Whether a plugin is live in a given turn is decided by three fields, evaluated in this order:

<Steps>
  <Step title="user_selectable">
    `true` = the plugin appears in the plugin panel and only activates when you tick it.

    `false` or absent = **it never appears in the panel** and activates automatically when its conditions are met.
  </Step>

  <Step title="requires">
    Runtime context keys that must be satisfied. For example `{"desktop_connected": true}` means desktop-only. When unmet, the plugin's tools **do not exist** — the model can't see or call them.
  </Step>

  <Step title="conditions">
    Environment conditions. Currently only `{"sandbox_mode": "!none"}` is used, meaning a sandbox is required.
  </Step>
</Steps>

There is also `exclusive: true`: when that plugin activates, **no other plugin loads at all**. Only `profy-evolution` and `profy-movie` use it.

<Warning>
  "Not in the panel" does not mean "not there." Only 14 of the 28 plugins are `user_selectable: true`; the other 14 are infrastructure that engages automatically. This is why "I didn't enable any plugin, why is it writing files?" — sandbox tools were never a tickable plugin.
</Warning>

## The full table

### User-selectable (14)

These appear in the plugin panel and require an explicit tick.

| ID                        | Name                | requires / conditions     | Injected tools                                                                                                     | Bundled skills          | Page                                                                        |
| ------------------------- | ------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------- | --------------------------------------------------------------------------- |
| `profy-browser`           | Browser Use         | —                         | `browser`                                                                                                          | —                       | [Browser](/en/documentation/plugins/browser)                                |
| `profy-canvas`            | Canvas              | —                         | `canvas_node_operation`, `canvas_connection_operation`, `canvas_run_dag`, `canvas_get_nodes`, `canvas_auto_layout` | `canvas`                | [Canvas](/en/documentation/capabilities/canvas)                             |
| `profy-chrome`            | Chrome              | `chrome_connected: true`  | `chrome`, `chrome__match_workflow`, `chrome__execute_workflow`, `chrome__save_trajectory`                          | `chrome-extension`      | [Chrome](/en/documentation/plugins/chrome)                                  |
| `profy-computer`          | Computer Use        | `desktop_connected: true` | `computer`                                                                                                         | —                       | [Computer](/en/documentation/plugins/computer)                              |
| `profy-customs`           | Customs Declaration | —                         | `customs_ocr`, `customs_code_lookup`, `customs_validate`                                                           | `customs-extraction`    | [Customs](/en/documentation/plugins/customs)                                |
| `profy-game-studio`       | Game Studio         | `sandbox_mode: !none`     | `browser`                                                                                                          | 9 skills                | [Game Studio](/en/documentation/plugins/game-studio)                        |
| `profy-knowledge`         | Knowledge           | —                         | `knowledge`, `obsidian_knowledge`                                                                                  | 1 skill                 | [Knowledge connectors](/en/documentation/capabilities/knowledge-connectors) |
| `profy-movie`             | Movie               | — (`exclusive: true`)     | `movie`, `timeline_edit`                                                                                           | 4 skills                | [Video production](/en/documentation/plugins/video-production)              |
| `profy-record-and-replay` | Record & Replay     | `desktop_connected: true` | `event_stream`                                                                                                     | —                       | [Record & Replay](/en/documentation/capabilities/record-and-replay)         |
| `profy-sites`             | Sites               | `sandbox_mode: !none`     | `open_preview`, `deploy`, `site_design`, `site_assets`, `browser`                                                  | 1 skill                 | [Sites](/en/documentation/capabilities/sites)                               |
| `profy-visualize`         | Visualize           | `sandbox_mode: !none`     | `visualize`, `inspect_3d`, `render_ui`, `browser`                                                                  | 8 declared (22 on disk) | [Visualize](/en/documentation/plugins/visualize)                            |
| `blender-bridge`          | Blender Bridge      | `desktop_connected: true` | — (declares MCP `blender`)                                                                                         | `blender-workflow`      | [Blender Bridge](/en/documentation/plugins/blender-bridge)                  |
| `godot-bridge`            | Godot Bridge        | `desktop_connected: true` | — (declares MCP `godot`)                                                                                           | `godot-workflow`        | [Godot Bridge](/en/documentation/plugins/godot-bridge)                      |
| `photoshop-bridge`        | Photoshop Bridge    | `desktop_connected: true` | — (declares MCP `photoshop`)                                                                                       | `photoshop-workflow`    | [Photoshop Bridge](/en/documentation/plugins/photoshop-bridge)              |

### Automatically available (14)

These never appear in the panel and engage on their own when conditions are met.

| ID                 | Name                         | requires                                 | Injected tools                                                                                                                  | Bundled skills                                                       |
| ------------------ | ---------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `profy-creative`   | Creative Media               | —                                        | `image_tools`, `video_tools`, `music_tools`, `audio_tools`, `generate_3d_tools`, `postprocess_3d_tools`, `generate_world_tools` | —                                                                    |
| `profy-delegation` | Expert Delegation            | `available_specialists: true`            | `delegate_tools`                                                                                                                | —                                                                    |
| `profy-distill`    | Distillation                 | `target_expert_identifier: true`         | `distill_manage`                                                                                                                | —                                                                    |
| `profy-docx`       | DOCX Document Processing     | —                                        | **none**                                                                                                                        | See [Word documents](/en/documentation/capabilities/office-docx)     |
| `profy-evolution`  | Skill Evolution              | `is_internal_invoke: true` (`exclusive`) | `skill` (read-only), `evolution_log`                                                                                            | `evolution`                                                          |
| `profy-feishu`     | Feishu Integration           | `has_feishu_client: true`                | `feishu_tool`, `feishu_doc_tool`, `feishu_bitable_tool`                                                                         | —                                                                    |
| `profy-memory`     | Memory                       | `enable_memory: true`                    | `memory_tools`                                                                                                                  | —                                                                    |
| `profy-message`    | Message & HITL               | —                                        | `message_tools`                                                                                                                 | —                                                                    |
| `profy-pdf`        | PDF Document Processing      | —                                        | **none**                                                                                                                        | See [PDF documents](/en/documentation/capabilities/office-pdf)       |
| `profy-pptx`       | PPTX Presentation Processing | —                                        | **none**                                                                                                                        | See [Presentations](/en/documentation/capabilities/office-pptx)      |
| `profy-schedule`   | Scheduling                   | —                                        | `schedule_tools`                                                                                                                | —                                                                    |
| `profy-search`     | Web Search                   | `enable_web_search: true`                | `web_search_tools`, `web_fetch_tools`                                                                                           | —                                                                    |
| `profy-skill`      | Skill Management             | —                                        | `skill_tools`                                                                                                                   | —                                                                    |
| `profy-xlsx`       | XLSX Spreadsheet Processing  | —                                        | **none**                                                                                                                        | See [Excel spreadsheets](/en/documentation/capabilities/office-xlsx) |

## What a manifest looks like

Activation rules aren't if-else branches scattered through the code — each plugin directory holds a `plugin.json`. Here's the record-and-replay plugin (excerpted from the real file):

```json theme={null}
{
  "id": "profy-record-and-replay",
  "name": "Record & Replay",
  "version": "2.0.0",
  "prompts": ["prompts/RECORD.md"],
  "contracts": {
    "tools": [
      {
        "ref": "plugins/builtin/record-and-replay/tools/event_stream.py",
        "export": "tools",
        "name": "event_stream"
      }
    ],
    "skills": [
      { "ref": "plugins/builtin/record-and-replay/skills/record-replay.md",
        "name": "record-and-replay" }
    ]
  },
  "activation": {
    "requires": { "desktop_connected": true },
    "user_selectable": true
  }
}
```

Each block does one job: `contracts` declares what the plugin brings (tools reference existing code via `ref` + `export` rather than reimplementing it), `prompts` declares what gets injected, and `activation` declares when it applies. **Adding a tool usually means editing a manifest, not the main pipeline** — which is also why this page stays in sync with the implementation: the manifest *is* the implementation.

## Counts at a glance

| Item                                      | Value                                 |
| ----------------------------------------- | ------------------------------------- |
| Built-in plugins                          | **28**                                |
| User-selectable / automatic               | **14 / 14**                           |
| Require `desktop_connected`               | **5**                                 |
| Require `chrome_connected`                | **1**                                 |
| Require a sandbox (`sandbox_mode: !none`) | **3** (Sites, Visualize, Game Studio) |
| `exclusive: true`                         | **2** (Evolution, Movie)              |
| Skills-only, no tools                     | **4** (the four office plugins)       |
| Bridges declaring MCP that isn't wired    | **3** (Blender / Godot / Photoshop)   |

## Things worth calling out

### The four office plugins have no tools

`profy-docx` / `profy-pdf` / `profy-pptx` / `profy-xlsx` declare an empty `tools` array. What they provide is **method plus scripts** — skill documents and pre-installed libraries in the sandbox. The expert runs them via `bash` rather than calling a "make me a Word file" tool.

The tradeoff: capability ceiling equals whatever runs in the sandbox, instead of being boxed in by a tool signature. The cost is that output quality depends on how well the skill document is written.

### The three software bridges have unwired MCP

`blender-bridge` / `godot-bridge` / `photoshop-bridge` declare `mcpServers` in their manifests, but **neither agent-runtime nor Core currently consumes the `mcpServers` field of builtin plugins**.

What actually takes effect is the skill layer only (workflow discipline and prompts) — there are **no callable software-control tools**. See the "Known defect" section on each plugin's page.

### Several plugins bind `browser`

`profy-game-studio`, `profy-visualize`, and `profy-sites` all reference `browser` in their own tool lists. That is not redundant declaration but a necessary binding — each of those three has a core loop (playtest verification, render self-check, preview confirmation) that needs browser screenshots. Ticking any one of them activates the browser tool alongside it.

### `profy-movie` is exclusive

`exclusive: true` means enabling Movie loads nothing else. Video production is a long pipeline; mixing in other tools distracts the model and squeezes context.

### Where `requires` keys come from

These keys are supplied by the activation context assembled at invoke time:

| Key                                   | Source                                                                  |
| ------------------------------------- | ----------------------------------------------------------------------- |
| `desktop_connected`                   | Whether the desktop app is connected                                    |
| `chrome_connected`                    | Whether the Chrome extension is online                                  |
| `has_feishu_client`                   | Whether this turn comes from the Feishu channel with usable credentials |
| `enable_memory` / `enable_web_search` | Conversation capability switches                                        |
| `available_specialists`               | Whether any delegatable expert exists                                   |
| `target_expert_identifier`            | Whether we are in a distillation context                                |
| `is_internal_invoke`                  | Whether this is a platform-internal call (cannot be forged by callers)  |
| `sandbox_mode`                        | Sandbox mode                                                            |

## Tools that belong to no plugin

One class of tools is not injected by a plugin at all — it is bound to the conversation mode:

| Tool group                                                                                | When available                              |
| ----------------------------------------------------------------------------------------- | ------------------------------------------- |
| `sandbox_tools` (`write` / `read` / `edit` / `bash` / `grep` / `glob` / `insert` / `lsp`) | Always, whenever sandbox mode is not `none` |
| `plan_write`                                                                              | Plan mode only (`permission_mode="plan"`)   |
| `suggest_plan_mode`                                                                       | Suggests switching to plan mode             |

So: "I didn't enable any plugin, why can the expert write files?" — sandbox tools were never a plugin.

Full signatures are in the [Tool Catalog](/en/documentation/reference/tools-catalog).

## Creators can disable built-in plugins

Creators can switch off specific built-in plugins in the Studio plugin tab. The disabled IDs are stored on the expert config, sent to the runtime at invoke time, and the matching manifests are skipped.

This applies to **every conversation with that expert**, and it sits at a different level from the user's panel tick: what the creator disabled cannot be re-enabled by ticking.

## Troubleshooting: why isn't this plugin working

Work through these in order; four steps is always enough:

<Steps>
  <Step title="Is it in the panel at all?">
    If not, check the table above: the 14 plugins with `user_selectable: false` are never listed. They apply automatically and need no ticking.
  </Step>

  <Step title="Is `requires` satisfied?">
    The five desktop plugins need a desktop connection, Chrome needs the extension online, and the Feishu plugin needs a Feishu-channel turn. When unsatisfied, the plugin's tools **simply do not exist** — the model won't say "I lack that tool", it just never uses it.
  </Step>

  <Step title="Did the creator disable it?">
    Built-in plugins disabled in Studio never load, no matter what the user ticks. When the same request behaves differently across two Experts, this is usually why.
  </Step>

  <Step title="Was it crowded out by an exclusive plugin?">
    While Movie or Evolution is active, no other plugin loads.
  </Step>
</Steps>

| Symptom                                            | Most likely cause                                                        |
| -------------------------------------------------- | ------------------------------------------------------------------------ |
| Ticked, but the tools never appear                 | `requires` unsatisfied (desktop offline, extension not connected)        |
| A bridge plugin offers guidance but no tools       | Those three declare MCP that isn't wired; only the skill layer applies   |
| Ticked only Sites, yet browser tools activated too | A necessary binding — preview confirmation relies on browser screenshots |
| Capabilities vanished after enabling Movie         | `exclusive: true`                                                        |
| Files get written with no plugin enabled           | Sandbox tools belong to no plugin                                        |
| Panel ticks lost after refresh                     | Ticks are per-session state and don't persist                            |

## Related pages

<CardGroup cols={2}>
  <Card title="Tool Catalog" icon="wrench" href="/en/documentation/reference/tools-catalog">
    Parameter signatures for every tool
  </Card>

  <Card title="Skill Catalog" icon="book" href="/en/documentation/reference/skills-catalog">
    Built-in skills and the three ownership tracks
  </Card>

  <Card title="Plugin overview" icon="grid" href="/en/documentation/plugins/overview">
    Conceptual introduction to the plugin system
  </Card>

  <Card title="Limits" icon="gauge" href="/en/documentation/reference/limits">
    Platform-wide limits and quotas
  </Card>
</CardGroup>

<Note>
  Verified 2026-08-11. Sources: `services/agent-runtime/src/plugins/builtin/*/plugin.json` (28 files), `services/agent-runtime/src/plugins/registry.py`, `services/agent-runtime/src/base/tools/sandbox.py`.
</Note>
