docs: simplify plugin guide routes

This commit is contained in:
Dax Raad
2026-08-24 18:28:07 -04:00
parent eda6d774bf
commit ce16b7cc12
11 changed files with 52 additions and 16 deletions
+3 -3
View File
@@ -138,14 +138,14 @@ V2 config uses more ergonomic shapes, but conversion is optional. When the user
requests conversion, inspect the complete configuration, preserve behavior and
unrelated settings, and apply only the relevant migrations from the guide. For
plugin migrations, fetch and follow both the migration guide and the full
[plugins guide](https://opencode.ai/v2/docs/build/plugins/overview). If non-API V1
[plugins guide](https://opencode.ai/v2/docs/build/plugins). If non-API V1
functionality fails in V2, use the `report` skill to file it as a compatibility
bug.
## [Plugins](https://opencode.ai/v2/docs/build/plugins/overview)
## [Plugins](https://opencode.ai/v2/docs/build/plugins)
For questions about creating, configuring, loading, publishing, or migrating
plugins, fetch the full [plugins guide](https://opencode.ai/v2/docs/build/plugins/overview)
plugins, fetch the full [plugins guide](https://opencode.ai/v2/docs/build/plugins)
before answering. Refer to this guide when the user wants to build a plugin. It
covers hooks, transforms, tools, plugin context capabilities, and package
entrypoints. Plugins can also extend the TUI; for those, fetch the
+21 -3
View File
@@ -3753,8 +3753,15 @@
],
"security": [],
"responses": {
"204": {
"description": "<No Content>"
"200": {
"description": "SessionInterruptResponse",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SessionInterruptResponse"
}
}
}
},
"400": {
"description": "InvalidRequestError",
@@ -3794,7 +3801,7 @@
}
}
},
"description": "Interrupt active execution owned by this OpenCode process. Idle interruption is a no-op. When continue=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.",
"description": "Interrupt active execution owned by this OpenCode process. Returns interrupted=true when an active execution was interrupted and false for the idle no-op. When continue=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.",
"summary": "Interrupt session execution"
}
},
@@ -16432,6 +16439,17 @@
"required": ["data"],
"additionalProperties": false
},
"SessionInterruptResponse": {
"type": "object",
"properties": {
"interrupted": {
"type": "boolean",
"description": "Whether an active execution owned by this OpenCode process was interrupted."
}
},
"required": ["interrupted"],
"additionalProperties": false
},
"SessionLogItemEncoded": {
"type": "string",
"contentMediaType": "application/json"
+21 -3
View File
@@ -3753,8 +3753,15 @@
],
"security": [],
"responses": {
"204": {
"description": "<No Content>"
"200": {
"description": "SessionInterruptResponse",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SessionInterruptResponse"
}
}
}
},
"400": {
"description": "InvalidRequestError",
@@ -3794,7 +3801,7 @@
}
}
},
"description": "Interrupt active execution owned by this OpenCode process. Idle interruption is a no-op. When continue=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.",
"description": "Interrupt active execution owned by this OpenCode process. Returns interrupted=true when an active execution was interrupted and false for the idle no-op. When continue=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.",
"summary": "Interrupt session execution"
}
},
@@ -16432,6 +16439,17 @@
"required": ["data"],
"additionalProperties": false
},
"SessionInterruptResponse": {
"type": "object",
"properties": {
"interrupted": {
"type": "boolean",
"description": "Whether an active execution owned by this OpenCode process was interrupted."
}
},
"required": ["interrupted"],
"additionalProperties": false
},
"SessionLogItemEncoded": {
"type": "string",
"contentMediaType": "application/json"
@@ -3,7 +3,7 @@ title: "Intro"
---
<CardGroup cols={1}>
<Card title="Extend OpenCode" href="/build/plugins/overview">
<Card title="Extend OpenCode" href="/build/plugins">
Build plugins that add tools, integrations, commands, agents, and custom behavior while keeping the rest of OpenCode
intact.
</Card>
@@ -433,7 +433,7 @@ Expose the CLI plugin through `./tui`; add OpenTUI peers when the plugin renders
}
```
Set `tui: true` on the [main plugin](/build/plugins/overview) for automatic loading.
Set `tui: true` on the [main plugin](/build/plugins) for automatic loading.
```ts title="src/index.ts"
import { Plugin } from "@opencode-ai/plugin"
+1 -1
View File
@@ -70,7 +70,7 @@ await using opencode = await OpenCode.create({ plugins: [plugin] })
Call `await opencode.plugin(plugin)` to register another plugin after startup.
See the [Plugins guide](/build/plugins/overview) for the plugin context and available
See the [Plugins guide](/build/plugins) for the plugin context and available
hooks.
## Workerd
@@ -3,7 +3,7 @@ title: "Plugins"
---
Plugins configured in `opencode.json(c)` that expose a TUI component are loaded automatically by the CLI. To learn how
to build plugins, see [Building plugins](/build/plugins/overview). You do not need to add the same package to `cli.json`. The CLI
to build plugins, see [Building plugins](/build/plugins). You do not need to add the same package to `cli.json`. The CLI
gets the active plugin list from the connected OpenCode server, so this also works when the server is remote.
Use `cli.json` for CLI-only plugins. These plugins run locally in the terminal and remain active when the CLI connects
+1 -1
View File
@@ -544,7 +544,7 @@ plugin API is still being finalized during beta, and detailed plugin migration g
ready.
Once the V2 plugin API is finalized, OpenCode should be able to migrate the majority of V1 plugins while keeping related
local modules and dependencies together. See the current beta [Plugins guide](/build/plugins/overview).
local modules and dependencies together. See the current beta [Plugins guide](/build/plugins).
## Server API and clients
+1 -1
View File
@@ -102,6 +102,6 @@ CLI-only plugins are configured separately and remain active when connected to a
}
```
<Card title="Build a plugin" href="/build/plugins/overview">
<Card title="Build a plugin" href="/build/plugins">
Create plugins that add tools, hooks, integrations, commands, agents, and other behavior.
</Card>
+1 -1
View File
@@ -93,7 +93,7 @@ export const docsSections: DocsSection[] = [
{
title: "Plugins",
items: [
{ title: "Overview", slug: "build/plugins/overview" },
{ title: "Overview", slug: "build/plugins" },
{ title: "Effect", slug: "build/plugins/effect" },
{ title: "CLI", slug: "build/plugins/cli" },
],