From f842d493581c47535c275bb6c1922e2586391403 Mon Sep 17 00:00:00 2001 From: Michael Yochpaz <8832013+MichaelYochpaz@users.noreply.github.com> Date: Mon, 9 Feb 2026 00:51:40 +0200 Subject: [PATCH] feat: expose MCP tool output as collapsible in TUI and web UI --- .../src/cli/cmd/tui/routes/session/index.tsx | 28 +++++++++++++++++-- packages/ui/src/components/basic-tool.tsx | 24 ++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 9a000f953c0..bafb6fb6784 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -1483,10 +1483,32 @@ type ToolProps = { part: ToolPart } function GenericTool(props: ToolProps) { + const { theme } = useTheme() + const [expanded, setExpanded] = createSignal(false) + return ( - - {props.tool} {input(props.input)} - + + + setExpanded((prev) => !prev)}> + + + {input(props.input)} + + + {props.output} + + + {expanded() ? "Click to collapse" : "Click to expand"} + + + + + + + {props.tool} {input(props.input)} + + + ) } diff --git a/packages/ui/src/components/basic-tool.tsx b/packages/ui/src/components/basic-tool.tsx index 725a7d0d6e5..7496eed2e48 100644 --- a/packages/ui/src/components/basic-tool.tsx +++ b/packages/ui/src/components/basic-tool.tsx @@ -113,6 +113,26 @@ export function BasicTool(props: BasicToolProps) { ) } -export function GenericTool(props: { tool: string; hideDetails?: boolean }) { - return +export function GenericTool(props: { + tool: string + output?: string + hideDetails?: boolean + defaultOpen?: boolean + forceOpen?: boolean + locked?: boolean +}) { + return ( + +
+
{props.output}
+
+
+ ) }