From 6d243b7110578b56c55c2299ddc2fa60417d58f8 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Sun, 16 Aug 2026 19:37:01 +0200 Subject: [PATCH 1/2] feat(tui): show context window limit in token usage counter --- packages/tui/src/component/prompt/index.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/tui/src/component/prompt/index.tsx b/packages/tui/src/component/prompt/index.tsx index fe7f4a22f75f..9b29939ff107 100644 --- a/packages/tui/src/component/prompt/index.tsx +++ b/packages/tui/src/component/prompt/index.tsx @@ -273,10 +273,14 @@ export function Prompt(props: PromptProps) { if (tokens <= 0) return const model = sync.data.provider.find((item) => item.id === last.providerID)?.models[last.modelID] - const pct = model?.limit.context ? `${Math.round((tokens / model.limit.context) * 100)}%` : undefined + const contextLimit = model?.limit.context + const pct = contextLimit ? `${Math.round((tokens / contextLimit) * 100)}%` : undefined const cost = session?.cost ?? 0 return { - context: pct ? `${Locale.number(tokens)} (${pct})` : Locale.number(tokens), + context: + pct && contextLimit + ? `${Locale.number(tokens)} / ${Locale.number(contextLimit)} (${pct})` + : Locale.number(tokens), cost: cost > 0 ? money.format(cost) : undefined, } }) From 12824590b9c5b44680bb3a9b983ae74792d2385e Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Sun, 16 Aug 2026 19:49:09 +0200 Subject: [PATCH 2/2] feat(tui): show context window limit in sidebar --- packages/tui/src/feature-plugins/sidebar/context.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/tui/src/feature-plugins/sidebar/context.tsx b/packages/tui/src/feature-plugins/sidebar/context.tsx index f1c99d9679ce..b727cea840c7 100644 --- a/packages/tui/src/feature-plugins/sidebar/context.tsx +++ b/packages/tui/src/feature-plugins/sidebar/context.tsx @@ -22,15 +22,18 @@ function View(props: { api: TuiPluginApi; session_id: string }) { return { tokens: 0, percent: null, + contextLimit: null, } } const tokens = last.tokens.input + last.tokens.output + last.tokens.reasoning + last.tokens.cache.read + last.tokens.cache.write - const model = props.api.state.provider.find((item) => item.id === last.providerID)?.models[last.modelID] + const contextLimit = props.api.state.provider.find((item) => item.id === last.providerID)?.models[last.modelID]?.limit + .context return { tokens, - percent: model?.limit.context ? Math.round((tokens / model.limit.context) * 100) : null, + percent: contextLimit ? Math.round((tokens / contextLimit) * 100) : null, + contextLimit, } }) @@ -39,7 +42,10 @@ function View(props: { api: TuiPluginApi; session_id: string }) { Context - {state().tokens.toLocaleString()} tokens + + {state().tokens.toLocaleString()} + {state().contextLimit ? ` / ${state().contextLimit?.toLocaleString()}` : ""} tokens + {state().percent ?? 0}% used {money.format(cost())} spent