summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authoropencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>2025-11-17 15:16:35 -0600
committerGitHub <[email protected]>2025-11-17 15:16:35 -0600
commitd60102ba52e4e9db8dcc454d720c9488e542038e (patch)
treebf8fa6e2a3717f432af9238b93c9ec3d42aa2d9b /packages
parent066a876f3da55fb57e0883b22d1cf9930f08092f (diff)
downloadopencode-d60102ba52e4e9db8dcc454d720c9488e542038e.tar.gz
opencode-d60102ba52e4e9db8dcc454d720c9488e542038e.zip
Added `/thinking` slash command to toggle thinking blocks visibility in OpenTUI. (#4424)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: rekram1-node <[email protected]> Co-authored-by: Aiden Cline <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx5
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/index.tsx14
2 files changed, 18 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
index cb7be2f45..b9b27bb1e 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
@@ -245,6 +245,11 @@ export function Autocomplete(props: {
description: "jump to message",
onSelect: () => command.trigger("session.timeline"),
},
+ {
+ display: "/thinking",
+ description: "toggle thinking blocks",
+ onSelect: () => command.trigger("session.toggle.thinking"),
+ },
)
if (sync.data.config.share !== "disabled") {
results.push({
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 40ecfe4ef..3676c9552 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
@@ -82,6 +82,7 @@ class CustomSpeedScroll implements ScrollAcceleration {
const context = createContext<{
width: number
conceal: () => boolean
+ showThinking: () => boolean
}>()
function use() {
@@ -112,6 +113,7 @@ export function Session() {
const dimensions = useTerminalDimensions()
const [sidebar, setSidebar] = createSignal<"show" | "hide" | "auto">(kv.get("sidebar", "auto"))
const [conceal, setConceal] = createSignal(true)
+ const [showThinking, setShowThinking] = createSignal(true)
const wide = createMemo(() => dimensions().width > 120)
const sidebarVisible = createMemo(() => sidebar() === "show" || (sidebar() === "auto" && wide()))
@@ -386,6 +388,15 @@ export function Session() {
},
},
{
+ title: "Toggle thinking blocks",
+ value: "session.toggle.thinking",
+ category: "Session",
+ onSelect: (dialog) => {
+ setShowThinking((prev) => !prev)
+ dialog.clear()
+ },
+ },
+ {
title: "Page up",
value: "session.page.up",
keybind: "messages_page_up",
@@ -674,6 +685,7 @@ export function Session() {
return contentWidth()
},
conceal,
+ showThinking,
}}
>
<box flexDirection="row" paddingBottom={1} paddingTop={1} paddingLeft={2} paddingRight={2} gap={2}>
@@ -1030,7 +1042,7 @@ function ReasoningPart(props: { last: boolean; part: ReasoningPart; message: Ass
const ctx = use()
const content = createMemo(() => props.part.text.trim())
return (
- <Show when={content()}>
+ <Show when={content() && ctx.showThinking()}>
<box
id={"text-" + props.part.id}
paddingLeft={2}