diff --git a/packages/opencode/src/cli/cmd/tui/context/local.tsx b/packages/opencode/src/cli/cmd/tui/context/local.tsx
index b60a775b375..63f1d9743bf 100644
--- a/packages/opencode/src/cli/cmd/tui/context/local.tsx
+++ b/packages/opencode/src/cli/cmd/tui/context/local.tsx
@@ -75,9 +75,10 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
})
},
color(name: string) {
- const agent = agents().find((x) => x.name === name)
+ const all = sync.data.agent
+ const agent = all.find((x) => x.name === name)
if (agent?.color) return RGBA.fromHex(agent.color)
- const index = agents().findIndex((x) => x.name === name)
+ const index = all.findIndex((x) => x.name === name)
if (index === -1) return colors()[0]
return colors()[index % colors().length]
},
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
index 1503e37d99e..aa331ca0f0d 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
@@ -23,6 +23,7 @@ import {
MacOSScrollAccel,
type ScrollAcceleration,
TextAttributes,
+ RGBA,
} from "@opentui/core"
import { Prompt, type PromptRef } from "@tui/component/prompt"
import type { AssistantMessage, Part, ToolPart, UserMessage, TextPart, ReasoningPart } from "@opencode-ai/sdk/v2"
@@ -1410,7 +1411,14 @@ function ToolTitle(props: { fallback: string; when: any; icon: string; children:
)
}
-function InlineTool(props: { icon: string; complete: any; pending: string; children: JSX.Element; part: ToolPart }) {
+function InlineTool(props: {
+ icon: string
+ iconColor?: RGBA
+ complete: any
+ pending: string
+ children: JSX.Element
+ part: ToolPart
+}) {
const [margin, setMargin] = createSignal(0)
const { theme } = useTheme()
const ctx = use()
@@ -1461,7 +1469,7 @@ function InlineTool(props: { icon: string; complete: any; pending: string; child
>
~ {props.pending}>} when={props.complete}>
- {props.icon} {props.children}
+ {props.icon} {props.children}
@@ -1644,8 +1652,10 @@ function Task(props: ToolProps) {
const { theme } = useTheme()
const keybind = useKeybind()
const { navigate } = useRoute()
+ const local = useLocal()
const current = createMemo(() => props.metadata.summary?.findLast((x) => x.state.status !== "pending"))
+ const color = createMemo(() => local.agent.color(props.input.subagent_type ?? "unknown"))
return (
@@ -1679,11 +1689,13 @@ function Task(props: ToolProps) {
- {Locale.titlecase(props.input.subagent_type ?? "unknown")} Task "{props.input.description}"
+ {Locale.titlecase(props.input.subagent_type ?? "unknown")} Task "
+ {props.input.description}"