You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/en/customization/plugins.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Plugins
2
2
3
-
Plugins package reusable Pythinker Code CLI capabilities into installable units — they can add [Agent Skills](./skills.md), custom [agents](./agents.md), automatically load a specified Skill at session start, contribute system-prompt instructions, and declare MCP servers to provide real tool capabilities. They are ideal for sharing workflows with a team, connecting to external services, or installing extensions from the [official plugins](#official-plugins).
3
+
Plugins package reusable Pythinker Code CLI capabilities into installable units — they can add [Agent Skills](../../customization/skills.md), custom [agents](../../customization/agents.md), automatically load a specified Skill at session start, contribute system-prompt instructions, and declare MCP servers to provide real tool capabilities. They are ideal for sharing workflows with a team, connecting to external services, or installing extensions from the [official plugins](#official-plugins).
4
4
5
5
## Installation and Management
6
6
@@ -60,7 +60,7 @@ Network requests only go through `github.com` redirects and `codeload.github.com
60
60
61
61
### Custom marketplace JSON
62
62
63
-
Pass a custom marketplace JSON path or URL to `/plugins marketplace <source>`, or set [`PYTHINKER_CODE_PLUGIN_MARKETPLACE_URL`](../configuration/env-vars.md) to override the default catalog. Each entry in the `plugins` array needs an `id` and a `source` (local path, zip URL, or GitHub URL):
63
+
Pass a custom marketplace JSON path or URL to `/plugins marketplace <source>`, or set [`PYTHINKER_CODE_PLUGIN_MARKETPLACE_URL`](../../configuration/env-vars.md) to override the default catalog. Each entry in the `plugins` array needs an `id` and a `source` (local path, zip URL, or GitHub URL):
|`interface`| Fields shown in `/plugins`: `displayName`, `shortDescription`, `longDescription`, `developerName`, `websiteURL`|
255
255
|`skills`| One or more `./` paths; must be within the plugin root directory. When omitted, the `SKILL.md` in the root directory is treated as a single Skill root |
256
-
|`agents`| One or more `./` paths; must be within the plugin root directory and point to directories containing [agent files](./agents.md#custom-agents). When omitted, the `agents/` directory under the plugin root (if present) is picked up automatically |
256
+
|`agents`| One or more `./` paths; must be within the plugin root directory and point to directories containing [agent files](../../customization/agents.md#custom-agents). When omitted, the `agents/` directory under the plugin root (if present) is picked up automatically |
257
257
|`sessionStart.skill`| Loads the specified plugin Skill into the main Agent when a new or resumed session starts |
258
258
|`skillInstructions`| Additional instructions appended whenever a Skill from this plugin is loaded |
259
259
|`systemPrompt`| Inline instructions contributed to the agent's system prompt while the plugin is enabled |
@@ -281,7 +281,7 @@ Each field — the inline `systemPrompt` and the `systemPromptPath` file — is
281
281
282
282
New sessions and newly created agents read the contributions from the plugins currently enabled. An in-flight request keeps its existing system prompt. `/plugins reload` refreshes the plugin skill list and requests prompt rebuilds for live agents; use it when you need the change to converge deliberately before the next turn. On the v2 engine, installing, enabling, disabling, or removing a plugin updates the catalog immediately and a later prompt rebuild — for example after compaction or a tool-policy change — may pick up the new sections. The legacy engine keeps each live session's plugin snapshot until `/plugins reload` or a new session. A resumed session starts from its persisted prompt, and later rebuilds follow the engine-specific behavior above. Toggling a plugin's MCP server does not change system-prompt sections.
283
283
284
-
The built-in agent prompt includes instructions from enabled plugins automatically. A custom `SYSTEM.md` or agent file owns its template, so include `${plugin_sections}` where plugin-contributed instructions should appear. If the custom template includes `${base_prompt}` and that effective default already contains the plugin block, do not add `${plugin_sections}` again. See [Custom agents and SYSTEM.md](./agents.md#overriding-the-main-agent-s-system-prompt-with-system-md) for the complete variable table.
284
+
The built-in agent prompt includes instructions from enabled plugins automatically. A custom `SYSTEM.md` or agent file owns its template, so include `${plugin_sections}` where plugin-contributed instructions should appear. If the custom template includes `${base_prompt}` and that effective default already contains the plugin block, do not add `${plugin_sections}` again. See [Custom agents and SYSTEM.md](../../customization/agents.md#overriding-the-main-agent-s-system-prompt-with-system-md) for the complete variable table.
285
285
286
286
## Plugin Slash Commands
287
287
@@ -347,7 +347,7 @@ Whatever you type after the command replaces `$ARGUMENTS` in the body (above, `T
347
347
348
348
## Skills and Session Start
349
349
350
-
Plugin Skills use the same `SKILL.md` format as ordinary [Agent Skills](./skills.md). A typical directory structure:
350
+
Plugin Skills use the same `SKILL.md` format as ordinary [Agent Skills](../../customization/skills.md). A typical directory structure:
351
351
352
352
```text
353
353
my-plugin/
@@ -365,7 +365,7 @@ Regardless of how a Skill is loaded (`sessionStart.skill`, `/skill:<name>`, or a
365
365
366
366
## Plugin Agents
367
367
368
-
A plugin can ship custom agents: declare one or more `./` directories in the manifest's `agents` field (or simply place an `agents/` directory under the plugin root). The agent files inside use the same format as [custom agents](./agents.md#custom-agents) and, while the plugin is enabled, are discovered automatically and can be delegated to as sub-agents by the main Agent.
368
+
A plugin can ship custom agents: declare one or more `./` directories in the manifest's `agents` field (or simply place an `agents/` directory under the plugin root). The agent files inside use the same format as [custom agents](../../customization/agents.md#custom-agents) and, while the plugin is enabled, are discovered automatically and can be delegated to as sub-agents by the main Agent.
369
369
370
370
```text
371
371
my-plugin/
@@ -378,7 +378,7 @@ Plugin agents rank below every other file source: on a name collision, user-leve
378
378
379
379
## MCP Servers in Plugins
380
380
381
-
When a plugin needs real tool capabilities, it can declare `mcpServers` in its manifest, reusing the [MCP](./mcp.md) schema.
381
+
When a plugin needs real tool capabilities, it can declare `mcpServers` in its manifest, reusing the [MCP](../../customization/mcp.md) schema.
382
382
383
383
Stdio server (local command):
384
384
@@ -419,7 +419,7 @@ Plugin MCP servers start after `/reload` or in new sessions. To enable or disabl
419
419
420
420
## Hooks in Plugins
421
421
422
-
A plugin can declare hook rules in its manifest that run on lifecycle events while the plugin is enabled. Each entry uses the same fields as a [`[[hooks]]` rule in `config.toml`](./hooks.md#configuration) (`event`, `matcher`, `command`, `timeout`):
422
+
A plugin can declare hook rules in its manifest that run on lifecycle events while the plugin is enabled. Each entry uses the same fields as a [`[[hooks]]` rule in `config.toml`](../../customization/hooks.md#configuration) (`event`, `matcher`, `command`, `timeout`):
423
423
424
424
```json
425
425
{
@@ -434,7 +434,7 @@ A plugin can declare hook rules in its manifest that run on lifecycle events whi
434
434
}
435
435
```
436
436
437
-
Plugin hooks reuse the same mechanism as global hooks — see [Hooks](./hooks.md) for the event list, the stdin JSON payload, and how exit codes and return values affect the main flow. The differences are:
437
+
Plugin hooks reuse the same mechanism as global hooks — see [Hooks](../../customization/hooks.md) for the event list, the stdin JSON payload, and how exit codes and return values affect the main flow. The differences are:
438
438
439
439
- A plugin's hooks are active only while the plugin is **enabled**; disabling the plugin stops its hooks.
440
440
- Each hook runs with its working directory set to the plugin root, so `command` can use `./` paths inside the plugin.
Copy file name to clipboardExpand all lines: docs/reference/pythinker-command.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -258,8 +258,6 @@ Migrate local data from a legacy pythinker-cli installation to pythinker-code, i
258
258
pythinker migrate
259
259
```
260
260
261
-
For full migration instructions, see [Migrating from pythinker-cli](../guides/migration.md).
262
-
263
261
### `pythinker upgrade`
264
262
265
263
Immediately check for the latest version and display an update prompt; exits after you make a selection. `pythinker update` is an alias for this command.
0 commit comments