diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
index 747c61fd0b..1b803501b8 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
@@ -86,6 +86,18 @@ export function Prompt(props: PromptProps) {
const dialog = useDialog()
const toast = useToast()
const status = createMemo(() => sync.data.session_status?.[props.sessionID ?? ""] ?? { type: "idle" })
+ const [elapsed, setElapsed] = createSignal(0)
+ createEffect(() => {
+ const s = status()
+ if (s.type === "busy") {
+ const now = Date.now()
+ setElapsed(0)
+ const timer = setInterval(() => {
+ setElapsed(Math.floor((Date.now() - now) / 1000))
+ }, 1000)
+ onCleanup(() => clearInterval(timer))
+ }
+ })
const history = usePromptHistory()
const stash = usePromptStash()
const command = useCommandDialog()
@@ -1157,6 +1169,9 @@ export function Prompt(props: PromptProps) {
+ 0}>
+ {formatDuration(elapsed())}
+
{(() => {
const retry = createMemo(() => {