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