From b789844b9ca4f9943e6b1bc711fcd568512211f1 Mon Sep 17 00:00:00 2001 From: Erick Christian <54889298+ericc-ch@users.noreply.github.com> Date: Sat, 9 Aug 2025 07:07:20 +0700 Subject: [PATCH] feat(agent): allow mode selection during creation (#1699) --- packages/opencode/src/cli/cmd/agent.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/opencode/src/cli/cmd/agent.ts b/packages/opencode/src/cli/cmd/agent.ts index e929c3a8..f96da6cf 100644 --- a/packages/opencode/src/cli/cmd/agent.ts +++ b/packages/opencode/src/cli/cmd/agent.ts @@ -73,6 +73,29 @@ const AgentCreateCommand = cmd({ }) if (prompts.isCancel(selectedTools)) throw new UI.CancelledError() + const modeResult = await prompts.select({ + message: "Agent mode", + options: [ + { + label: "All", + value: "all" as const, + hint: "Can function in both primary and subagent roles", + }, + { + label: "Primary", + value: "primary" as const, + hint: "Acts as a primary/main agent", + }, + { + label: "Subagent", + value: "subagent" as const, + hint: "Can be used as a subagent by other agents", + }, + ], + initialValue: "all", + }) + if (prompts.isCancel(modeResult)) throw new UI.CancelledError() + const tools: Record = {} for (const tool of availableTools) { if (!selectedTools.includes(tool)) { @@ -82,6 +105,7 @@ const AgentCreateCommand = cmd({ const frontmatter: any = { description: generated.whenToUse, + mode: modeResult, } if (Object.keys(tools).length > 0) { frontmatter.tools = tools