diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx
index 7df5b893..1dd3cb13 100644
--- a/packages/ui/src/App.tsx
+++ b/packages/ui/src/App.tsx
@@ -47,6 +47,7 @@ const App: Component = () => {
preferences,
recordWorkspaceLaunch,
toggleShowThinkingBlocks,
+ toggleUsageMetrics,
setDiffViewMode,
setToolOutputExpansion,
setDiagnosticsExpansion,
@@ -205,6 +206,7 @@ const App: Component = () => {
const { commands: paletteCommands, executeCommand } = useCommands({
preferences,
toggleShowThinkingBlocks,
+ toggleUsageMetrics,
setDiffViewMode,
setToolOutputExpansion,
setDiagnosticsExpansion,
diff --git a/packages/ui/src/components/message-item.tsx b/packages/ui/src/components/message-item.tsx
index 64cb3432..8591d2b5 100644
--- a/packages/ui/src/components/message-item.tsx
+++ b/packages/ui/src/components/message-item.tsx
@@ -2,6 +2,7 @@ import { For, Show, createMemo } from "solid-js"
import type { Message, SDKPart, MessageInfo, ClientPart } from "../types/message"
import { partHasRenderableText } from "../types/message"
import { formatTokenTotal } from "../lib/formatters"
+import { preferences } from "../stores/preferences"
import MessagePart from "./message-part"
interface MessageItemProps {
@@ -17,6 +18,7 @@ interface MessageItemProps {
export default function MessageItem(props: MessageItemProps) {
const isUser = () => props.message.type === "user"
+ const showUsageMetrics = () => preferences().showUsageMetrics ?? true
const timestamp = () => {
const date = new Date(props.message.timestamp)
return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })
@@ -150,6 +152,9 @@ export default function MessageItem(props: MessageItemProps) {
if (!info || info.role !== "assistant" || !info.tokens) {
return null
}
+ if (!showUsageMetrics()) {
+ return null
+ }
const tokens = info.tokens
const input = tokens.input ?? 0
diff --git a/packages/ui/src/components/message-stream.tsx b/packages/ui/src/components/message-stream.tsx
index 16b477c9..55172ab5 100644
--- a/packages/ui/src/components/message-stream.tsx
+++ b/packages/ui/src/components/message-stream.tsx
@@ -545,21 +545,22 @@ export default function MessageStream(props: MessageStreamProps) {
return (
-
-
-
- Used
- {formatTokens(sessionInfo().actualUsageTokens ?? 0)}
-
-
- Avail
-
- {sessionInfo().contextAvailableTokens !== null ? formatTokens(sessionInfo().contextAvailableTokens ?? 0) : "--"}
-
-
+
+
+
+ Used
+ {formatTokens(sessionInfo().actualUsageTokens ?? 0)}
-
+
+ Avail
+
+ {sessionInfo().contextAvailableTokens !== null ? formatTokens(sessionInfo().contextAvailableTokens ?? 0) : "--"}
+
+
+
+
+