Skip to content

feat(cli): show terminal title status indicators - #10781

Merged
catrielmuller merged 4 commits into
Kilo-Org:mainfrom
shssoichiro:title-bar-status
Jun 17, 2026
Merged

feat(cli): show terminal title status indicators#10781
catrielmuller merged 4 commits into
Kilo-Org:mainfrom
shssoichiro:title-bar-status

Conversation

@shssoichiro

@shssoichiro shssoichiro commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Issue

Closes #10780

Context

Adds status indicators to the title bar of the current terminal tab when a session is active, indicating whether the session is working, needs user attention, or is finished.

Rationale: I wanted to know when Kilo needs my attention when my terminal tabs look like this:

image

Screenshots / Video

image image image

How to Test

Manual/local verification

  • Run a CLI session and look at the title bar. An icon should show at the start of the title indicating the status.
  • Status should exist for: In progress, needs attention, and finished.

Checklist

  • Issue linked above, or exception explained
  • Tests/verification described
  • Screenshots/video included for visual changes, or marked N/A
  • Changeset considered for user-facing changes
  • I personally reviewed the diff and can explain the changes, including any AI-assisted work.

Get in Touch

ExpedientFalcon on Discord

Comment thread packages/opencode/src/cli/cmd/tui/app.tsx Outdated
Comment thread packages/opencode/src/cli/cmd/tui/app.tsx Outdated
Comment thread packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts
@kilo-code-bot

kilo-code-bot Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Incremental Changes Reviewed

The new commit (refactor: made this change configurable) adds title_icon as an opt-in config setting with three styles: none (default), unicode, and emojis. The setting flows through the config schema → server API → console UI → TUI reactive store → terminal title rendering. Default is "none" so existing users see no icon — no breaking change. Tests cover icon rendering, config reactivity, API round-trips, and the console UI.

Previously Reported Issues — Resolved

The icon conversation resolved — the feature is now opt-in, keeping existing behaviour untouched while letting users who want emojis pick them explicitly.

Unresolved (author disagreed)
File Issue
packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts SUGGESTION: Source-text grep tests verify token spelling rather than reactive behavior; a rename refactor breaks them, a misplaced untrack passes them. Author believes tests are more durable than comments.
Files Reviewed — This Increment (10 files)
  • .changeset/terminal-title-status.md — updated for configurable feature, bump to minor
  • packages/opencode/src/kilocode/cli/cmd/tui/title-icon.ts — new file, Effect Schema with safe default
  • packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts — refactored to configurable icon set
  • packages/opencode/src/kilocode/cli/cmd/tui/app.tsx — forwards icon param
  • packages/opencode/src/cli/cmd/tui/app.tsx — passes icon: tuiConfig.title_icon to getTerminalTitle
  • packages/opencode/src/cli/cmd/tui/config/tui-schema.ts — adds title_icon field with kilocode_change marker
  • packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx — resolves title_icon default
  • packages/opencode/src/kilocode/server/httpapi/groups/config-console.ts — API schema updated
  • packages/opencode/test/kilocode/terminal-title.test.ts — icon style tests
  • packages/opencode/test/kilocode/cli/cmd/tui/context/tui-config.test.ts — reactivity + default tests
  • packages/opencode/test/kilocode/server/tui-config.test.ts — config patch test updated
  • packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts — new config-read test
  • packages/kilo-console/src/routes/config/CliNotificationsRoute.tsx — console UI with icon selector
  • packages/kilo-console/src/routes/config/state/ui.ts — icon state management
  • packages/kilo-console/src/styles/cli-ui.css — dropdown CSS
  • packages/sdk/ — auto-generated, includes title_icon field
All Files Reviewed (20 files)
  • .changeset/terminal-title-status.md — no issues
  • packages/kilo-console/src/routes/config/CliNotificationsRoute.tsx — no issues
  • packages/kilo-console/src/routes/config/state/ui.ts — no issues
  • packages/kilo-console/src/styles/cli-ui.css — no issues
  • packages/opencode/src/cli/cmd/tui/app.tsx — all previous issues resolved
  • packages/opencode/src/cli/cmd/tui/config/tui-schema.ts — no issues
  • packages/opencode/src/kilocode/cli/cmd/tui/app.tsx — no issues
  • packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx — no issues
  • packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts — no issues (configurable icon set)
  • packages/opencode/src/kilocode/cli/cmd/tui/title-icon.ts — no issues
  • packages/opencode/src/kilocode/server/httpapi/groups/config-console.ts — no issues
  • packages/opencode/test/kilocode/cli/cmd/tui/context/tui-config.test.ts — no issues
  • packages/opencode/test/kilocode/server/tui-config.test.ts — no issues
  • packages/opencode/test/kilocode/terminal-title.test.ts — no issues
  • packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts — 1 suggestion (author disagreed)
  • packages/sdk/js/src/v2/gen/sdk.gen.ts — auto-generated
  • packages/sdk/js/src/v2/gen/types.gen.ts — auto-generated
  • packages/sdk/openapi.json — auto-generated

Fix these issues in Kilo Cloud

Previous Review Summaries (2 snapshots, latest commit 8ff1550)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 8ff1550)

Status: No Issues Found (incremental) | Recommendation: Merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 0
Incremental Changes Reviewed

The new commit changes terminal title icons from emoji (💭🔶✅) to unicode symbols (◔⚠✓) — addressing reviewer feedback. Tests updated to match. No issues found.

Previously Reported Issues — Resolved
File Issue Status
packages/opencode/src/cli/cmd/tui/app.tsx WARNING: setDone called inside createEffect reading done() — caused extra re-run ✅ Fixed: untrack(done) passed to getTerminalTitle; untrack(() => done()[id]) guards setDone
packages/opencode/src/cli/cmd/tui/app.tsx SUGGESTION: Dead code fallback block unreachable ✅ Fixed: getTerminalTitle now handles all 4 route types; fallback removed
packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts SUGGESTION: root() only walks one parent level ✅ Confirmed not an issue: sessions cannot nest more than one level deep
Unresolved (author disagreed)
File Issue
packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts SUGGESTION: Source-text grep tests verify token spelling rather than reactive behavior; a rename refactor breaks them, a misplaced untrack passes them. Author believes tests are more durable than comments.
Files Reviewed — This Increment (2 files)
  • packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts — icon changes only
  • packages/opencode/test/kilocode/terminal-title.test.ts — test updates matching new icons
All Files Reviewed (6 files)
  • .changeset/terminal-title-status.md — no issues
  • packages/opencode/src/cli/cmd/tui/app.tsx — all previous issues resolved
  • packages/opencode/src/kilocode/cli/cmd/tui/app.tsx — no issues
  • packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts — no issues (icons updated)
  • packages/opencode/test/kilocode/terminal-title.test.ts — no issues (tests updated)
  • packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts — 1 suggestion (author disagreed)

Fix these issues in Kilo Cloud

Previous review (commit 66af690)

Status: 1 Issue Found | Recommendation: Merge (suggestion only)

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts 9 Source-text grep tests verify token spelling rather than reactive behavior; a rename refactor breaks them, a misplaced untrack passes them.
Previously Reported Issues — Resolved
File Issue Status
packages/opencode/src/cli/cmd/tui/app.tsx WARNING: setDone called inside createEffect reading done() — caused extra re-run ✅ Fixed: untrack(done) passed to getTerminalTitle; untrack(() => done()[id]) guards setDone
packages/opencode/src/cli/cmd/tui/app.tsx SUGGESTION: Dead code fallback block unreachable ✅ Fixed: getTerminalTitle now handles all 4 route types; fallback removed
packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts SUGGESTION: root() only walks one parent level ✅ Confirmed not an issue: sessions cannot nest more than one level deep
Incremental Review Notes

The branch was force-pushed to 66af690700 (previously reviewed at 56ace1f3f8). The commit content is unchanged — all 6 files are identical to the prior review. No new issues found.

Files Reviewed (6 files)
  • .changeset/terminal-title-status.md — no issues
  • packages/opencode/src/cli/cmd/tui/app.tsx — all previous issues resolved
  • packages/opencode/src/kilocode/cli/cmd/tui/app.tsx — no issues
  • packages/opencode/src/kilocode/cli/cmd/tui/terminal-title.ts — no issues
  • packages/opencode/test/kilocode/terminal-title.test.ts — no issues
  • packages/opencode/test/kilocode/tui-terminal-title-reactivity.test.ts — 1 suggestion (pre-existing, author disagreed)

Reviewed by deepseek-v4-pro-20260423 · 1,636,735 tokens

Review guidance: REVIEW.md from base branch main


const icon = {
none: "",
working: "💭",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if those icons are a good product fit. @catrielmuller any take on this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went with icons because they are more easily noticeable than text, so they serve the purpose of getting a user's attention (especially the orange Attention Needed and green Done icons). However, I'm open to alternative options.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about: ◔ ⚠ ✓ ? Those are already used in the existing CLI

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if that draws attention enough, but we can see how it works. I'll push the change in a new commit.

@catrielmuller

Copy link
Copy Markdown
Contributor

Hey @shssoichiro !

I wanted to apologize for the delay with the pull requests. I’ve been busy working on the new Kilo Console and the config overlay layer with hot reload, which is super exciting because it’ll allow us to implement features without affecting our current users.

I’ve updated the pull request to include both Unicode and Emoji versions, with the default option turned off for now.

The great news is that moving forward, we’ll be able to roll out similar features much faster! We can create new configuration options and add them to the Kilo Console, which will really help improve visibility and make things easier to discover compared to the JSON files.

Thanks for your patience, and I can’t wait to hear your thoughts!

2026-06-17_09-27-49.mp4

@catrielmuller
catrielmuller merged commit 4b624b9 into Kilo-Org:main Jun 17, 2026
20 checks passed
@shssoichiro

Copy link
Copy Markdown
Contributor Author

Awesome idea, thanks!

t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
feat(cli): show terminal title status indicators
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add status indicator to terminal tabs for easy status visibility

3 participants