You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Performance tab with TTFT / tok/s / wall time per LLM call in the web app #49381
I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
When a session feels slow there's no way to tell from the web app whether the time went to the provider (slow first token, slow generation) or to tool execution. The Context tab shows token usage but nothing about latency.
I'd like a Performance tab in the session side panel, opened from the command palette the same way Context is, that shows per LLM call:
TTFT (time to first output)
tokens/second during generation
end-to-end wall time
output tokens, model, and running/error state
plus session totals (median TTFT, tok/s, total wall, call count).
Most of this is already in the message data (time.created / time.streamed / time.completed, tokens, reasoning.time, tool.time). The one gap is that AssistantText has no timestamp, so a text-only reply has no first-output time. Adding AssistantText.time like reasoning and tool already have closes that.
I have a working implementation and will open a PR against v2.
If your request goes beyond what #5374 covers (TTFT, wall time, per-call breakdown, and the AssistantText.time addition), feel free to note that distinction so this can be tracked separately.
To restate it: you'd like a Performance tab in the web app's session side panel, opened from the command palette like Context. It would show TTFT, tok/s, wall time, output tokens, model and state for each LLM call, plus session totals, so you can tell slow provider responses apart from slow tool execution. Maintainers will consider it.
A few notes that may help with your PR:
You're right that AssistantText in packages/schema/src/session-message.ts has no time field, while AssistantReasoning does. A text-only reply needs that timestamp for TTFT.
There's existing code you may be able to reuse: SessionTurn.tokensPerSecond / SessionTurn.duration in packages/util/src/session-turn.ts. The TUI already uses them for its per-turn tok/s footer (behind session.tps), and the debug bar GUI plugin (packages/gui-plugins/src/debug/bar.tsx) uses them for the latest turn.
The old v2 branch has been promoted to dev, so please open the PR against dev.
Activity
github-actions commentedon Sep 16, 2026
This issue might be a duplicate of an existing issue. Please check:
If your request goes beyond what #5374 covers (TTFT, wall time, per-call breakdown, and the
AssistantText.timeaddition), feel free to note that distinction so this can be tracked separately.opencodejr commentedon Oct 28, 2026
Thanks for the detailed request, @rluisr!
To restate it: you'd like a Performance tab in the web app's session side panel, opened from the command palette like Context. It would show TTFT, tok/s, wall time, output tokens, model and state for each LLM call, plus session totals, so you can tell slow provider responses apart from slow tool execution. Maintainers will consider it.
A few notes that may help with your PR:
AssistantTextinpackages/schema/src/session-message.tshas notimefield, whileAssistantReasoningdoes. A text-only reply needs that timestamp for TTFT.SessionTurn.tokensPerSecond/SessionTurn.durationinpackages/util/src/session-turn.ts. The TUI already uses them for its per-turn tok/s footer (behindsession.tps), and the debug bar GUI plugin (packages/gui-plugins/src/debug/bar.tsx) uses them for the latest turn.v2branch has been promoted todev, so please open the PR againstdev.