summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorImmuneFOMO <[email protected]>2026-02-16 20:20:41 +0000
committerGitHub <[email protected]>2026-02-16 14:20:41 -0600
commit9d3c81a68391399e46fab5307b03984511f92b09 (patch)
tree47a6961666921abe9be667d9659d56b289f89830
parent86e545a23ecdb2c1840ab01e82eca292117c6bbc (diff)
downloadopencode-9d3c81a68391399e46fab5307b03984511f92b09.tar.gz
opencode-9d3c81a68391399e46fab5307b03984511f92b09.zip
feat(acp): add opt-in flag for question tool (#13562)
Co-authored-by: Aiden Cline <[email protected]> Co-authored-by: Aiden Cline <[email protected]>
-rw-r--r--.opencode/agent/translator.md1
-rw-r--r--packages/opencode/src/acp/README.md10
-rw-r--r--packages/opencode/src/flag/flag.ts1
-rw-r--r--packages/opencode/src/tool/registry.ts3
4 files changed, 14 insertions, 1 deletions
diff --git a/.opencode/agent/translator.md b/.opencode/agent/translator.md
index ad209a90c..7886cf5f3 100644
--- a/.opencode/agent/translator.md
+++ b/.opencode/agent/translator.md
@@ -599,6 +599,7 @@ OPENCODE_EXPERIMENTAL_MARKDOWN
OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX
OPENCODE_EXPERIMENTAL_OXFMT
OPENCODE_EXPERIMENTAL_PLAN_MODE
+OPENCODE_ENABLE_QUESTION_TOOL
OPENCODE_FAKE_VCS
OPENCODE_GIT_BASH_PATH
OPENCODE_MODEL
diff --git a/packages/opencode/src/acp/README.md b/packages/opencode/src/acp/README.md
index d998cb22d..aab33259b 100644
--- a/packages/opencode/src/acp/README.md
+++ b/packages/opencode/src/acp/README.md
@@ -44,6 +44,16 @@ opencode acp
opencode acp --cwd /path/to/project
```
+### Question Tool Opt-In
+
+ACP excludes `QuestionTool` by default.
+
+```bash
+OPENCODE_ENABLE_QUESTION_TOOL=1 opencode acp
+```
+
+Enable this only for ACP clients that support interactive question prompts.
+
### Programmatic
```typescript
diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts
index dfcb88bc5..0049d716d 100644
--- a/packages/opencode/src/flag/flag.ts
+++ b/packages/opencode/src/flag/flag.ts
@@ -30,6 +30,7 @@ export namespace Flag {
export declare const OPENCODE_CLIENT: string
export const OPENCODE_SERVER_PASSWORD = process.env["OPENCODE_SERVER_PASSWORD"]
export const OPENCODE_SERVER_USERNAME = process.env["OPENCODE_SERVER_USERNAME"]
+ export const OPENCODE_ENABLE_QUESTION_TOOL = truthy("OPENCODE_ENABLE_QUESTION_TOOL")
// Experimental
export const OPENCODE_EXPERIMENTAL = truthy("OPENCODE_EXPERIMENTAL")
diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts
index 9a06cb599..3ff9cce89 100644
--- a/packages/opencode/src/tool/registry.ts
+++ b/packages/opencode/src/tool/registry.ts
@@ -94,10 +94,11 @@ export namespace ToolRegistry {
async function all(): Promise<Tool.Info[]> {
const custom = await state().then((x) => x.custom)
const config = await Config.get()
+ const question = ["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) || Flag.OPENCODE_ENABLE_QUESTION_TOOL
return [
InvalidTool,
- ...(["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) ? [QuestionTool] : []),
+ ...(question ? [QuestionTool] : []),
BashTool,
ReadTool,
GlobTool,