summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/session/prompt.ts2
-rw-r--r--packages/web/src/content/docs/commands.mdx23
2 files changed, 23 insertions, 2 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index 9270d5b5b..c8eeb5772 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -1445,7 +1445,7 @@ export namespace SessionPrompt {
})()
const agent = await Agent.get(agentName)
- if (agent.mode === "subagent" || command.subtask) {
+ if ((agent.mode === "subagent" && command.subtask !== false) || command.subtask === true) {
using abort = lock(input.sessionID)
const userMsg: MessageV2.User = {
diff --git a/packages/web/src/content/docs/commands.mdx b/packages/web/src/content/docs/commands.mdx
index 8653e26cc..1e6aa951c 100644
--- a/packages/web/src/content/docs/commands.mdx
+++ b/packages/web/src/content/docs/commands.mdx
@@ -227,6 +227,8 @@ This is shown as the description in the TUI when you type in the command.
### Agent
Use the `agent` config to optionally specify which [agent](/docs/agents) should execute this command.
+If this is a [subagent](/docs/agents/#subagents) the command will trigger a subagent invocation by default.
+To disable this behavior, set `subtask` to `false`.
```json title="opencode.json"
{
@@ -238,7 +240,26 @@ Use the `agent` config to optionally specify which [agent](/docs/agents) should
}
```
-This is an **optional** config option. If not specified, defaults to "build".
+This is an **optional** config option. If not specified, defaults to your current agent.
+
+---
+
+### Subtask
+
+Use the `subtask` boolean to force the command to trigger a [subagent](/docs/agents/#subagents) invocation.
+This useful if you want the command to not pollute your primary context.
+
+```json title="opencode.json"
+{
+ "command": {
+ "analyze": {
+ "subtask": true
+ }
+ }
+}
+```
+
+This is an **optional** config option.
---