diff --git a/ui/goose2/src/features/chat/ui/ToolCallAdapter.tsx b/ui/goose2/src/features/chat/ui/ToolCallAdapter.tsx
index 06adcefa27..d272d9ff28 100644
--- a/ui/goose2/src/features/chat/ui/ToolCallAdapter.tsx
+++ b/ui/goose2/src/features/chat/ui/ToolCallAdapter.tsx
@@ -217,8 +217,8 @@ export function ToolCallAdapter({
const elapsed = useElapsedTime(status, startedAt);
const state = toolStatusMap[status];
- const title =
- status === "executing" && elapsed >= 3 ? `${name} (${elapsed}s)` : name;
+ const elapsedSeconds =
+ status === "executing" && elapsed >= 3 ? elapsed : undefined;
return (
@@ -226,9 +226,10 @@ export function ToolCallAdapter({
{Object.keys(args).length > 0 && }
diff --git a/ui/goose2/src/shared/ui/ai-elements/tool.tsx b/ui/goose2/src/shared/ui/ai-elements/tool.tsx
index cd0936b5e5..5927bfae99 100644
--- a/ui/goose2/src/shared/ui/ai-elements/tool.tsx
+++ b/ui/goose2/src/shared/ui/ai-elements/tool.tsx
@@ -30,6 +30,7 @@ export type ToolHeaderProps = {
title?: string;
className?: string;
showIcon?: boolean;
+ elapsedSeconds?: number;
} & (
| { type: ToolUIPart["type"]; state: ToolUIPart["state"]; toolName?: never }
| {
@@ -76,6 +77,7 @@ export const ToolHeader = ({
state,
toolName,
showIcon = true,
+ elapsedSeconds,
...props
}: ToolHeaderProps) => {
const derivedName =
@@ -89,6 +91,11 @@ export const ToolHeader = ({
{showIcon && }
{title ?? derivedName}
{getStatusBadge(state)}
+ {elapsedSeconds != null && (
+
+ {elapsedSeconds}s
+
+ )}
);