Skip to content

feat(tui): add About dialog - #12466

Merged
johnnyeric merged 8 commits into
Kilo-Org:mainfrom
IamCoder18:feat/tui-about-dialog
Aug 31, 2026
Merged

feat(tui): add About dialog#12466
johnnyeric merged 8 commits into
Kilo-Org:mainfrom
IamCoder18:feat/tui-about-dialog

Conversation

@IamCoder18

Copy link
Copy Markdown
Contributor

Issue

Closes #12465

Context

The TUI had no in-session way to view version, build, runtime, config path, or current provider info. Users filing bug reports had to leave the TUI to gather it from another shell.

This adds an About dialog reachable from the command palette (under "Kilo") and via a /about slash command. It shows version/channel/build, runtime, environment, provider/model, MCP/plugin/agent counts, helpful links, and a one-key action to copy a diagnostic block to the clipboard for bug reports.

Implementation

A new DialogAbout component (packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx) renders the existing dialog chrome (useDialog, useTheme) and reads from the same TUI contexts already used elsewhere. The body is wrapped in a <scrollbox> with a visible vertical scrollbar and a height clamped to a fraction of the terminal height so it stays usable on small terminals.

kilo.about is registered as a palette command in registerKiloCommands (the same place kilo.profile, kilo.teams, etc. live), which gives it both the command palette entry and the /about slash autocomplete through useCommandSlashes. A local useBindings call inside the dialog adds esc/return to close, c to copy diagnostics, and pageup/pagedown for keyboard scrolling.

InstallationVersion, InstallationChannel, InstallationBuildKind and Global.Path are reused for build identity; runtime detection falls back to process.versions.node when Bun is not present.

Both edited files live entirely under packages/opencode/src/kilocode/, so no kilocode_change markers are needed and there is no upstream-shared file changes.

Screenshots / Video

image image image image

How to Test

Manual/local verification

  • Open the command palette (default ctrl+p) and search for "About". Confirm it appears under the Kilo category and opens the dialog.
  • From the prompt, type /about. Confirm it opens the dialog.
  • Press c inside the dialog. Confirm the toast "Diagnostics copied" appears and the clipboard now contains the multi-line block with version, runtime, provider, etc.
  • Resize the terminal to ~20 rows. Confirm the dialog stays bounded and a scrollbar appears.

Reviewer test steps

  1. From the prompt, press ctrl+p, type about, select the entry.
  2. Verify the dialog shows: version, channel, build kind, runtime, platform, $TERM, config path, project root, cwd, connected provider, default model, agent/MCP/plugin counts, and links.
  3. Press c and paste somewhere to confirm the diagnostic block was copied.

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

Discord: @IamCoder18

Adds a new "About" dialog accessible from the command palette
and via the `/about` slash command.

The dialog shows:

- Version, channel, build kind, license

- Runtime (Bun/Node), platform, $TERM

- Config dir, project root, cwd

- Connected providers, default model, agent/MCP/plugin counts

- Helpful links (docs, GitHub, issues, Discord)

- `c` to copy diagnostic info to the clipboard

The body is wrapped in a scrollbox with a visible scrollbar and a
height clamped to a fraction of the terminal height so the dialog
stays usable on small terminals.

`kilo.about` is registered as a palette command alongside the other
Kilo Gateway commands in `registerKiloCommands`.
Comment thread packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx Outdated
Comment thread packages/opencode/src/kilocode/kilo-commands.tsx
@kilo-code-bot

kilo-code-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx
  • packages/opencode/src/kilocode/pii.ts
Previous Review Summaries (4 snapshots, latest commit abc5530)

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

Previous review (commit abc5530)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

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

WARNING

File Line Issue
packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx 104 Scrollbox and small-terminal keyboard scrolling were removed; content can overflow on small terminals with no way to scroll (author notes this is intentional given the simplified dialog)

SUGGESTION

File Line Issue
packages/opencode/src/kilocode/kilo-commands.tsx 24 Inconsistent import style vs. neighboring imports
Files Reviewed (2 files, incremental)
  • packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx - Hardcoded "MIT" License row was removed, resolving the prior hardcoded-license-value finding. The scrollbox-removal warning remains unresolved (unchanged in this update).
  • .changeset/tui-about-dialog.md - Description updated to match the simplified dialog scope; no issues.

Fix these issues in Kilo Cloud

Previous review (commit 9112b77)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

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

WARNING

File Line Issue
packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx 115 Hardcoded "MIT" license value may be inaccurate for a diagnostic dialog
packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx 104 Scrollbox and dialog.setSize("large") were removed; content can now overflow on small terminals with no way to scroll, contradicting the PR's own description and test steps
Files Reviewed (1 file, incremental)
  • packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx - simplified significantly (removed scrollbox/keyboard scrolling, build kind, arch row, MCP/plugin/agent counts, plugin list); License hardcoded-value issue persists at its new location, and the scrollbox removal is a new regression risk

Fix these issues in Kilo Cloud

Previous review (commit 81d2828)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

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

WARNING

File Line Issue
packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx 171 Hardcoded "MIT" license value may be inaccurate for a diagnostic dialog
Files Reviewed (2 files, incremental)
  • packages/opencode/src/kilocode/kilo-commands.tsx - previous import-style suggestion resolved (now uses relative .js import), no new issues
  • packages/kilo-docs/source-links.md - regenerated source links, no issues

The previous SUGGESTION about the @/kilocode/... import alias in kilo-commands.tsx has been resolved in this update. The WARNING about the hardcoded license string in dialog-about.tsx remains outstanding since that file was not modified in this incremental update.

Fix these issues in Kilo Cloud

Previous review (commit 4f8fac0)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

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

WARNING

File Line Issue
packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx 171 Hardcoded "MIT" license value may be inaccurate for a diagnostic dialog

SUGGESTION

File Line Issue
packages/opencode/src/kilocode/kilo-commands.tsx 24 New import uses @/kilocode/... alias instead of the relative style used by neighboring imports in this file
Files Reviewed (3 files)
  • packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx - 1 issue
  • packages/opencode/src/kilocode/kilo-commands.tsx - 1 issue
  • .changeset/tui-about-dialog.md - no issues (well-written, user-facing description)

Both changed files live entirely under packages/opencode/src/kilocode/, so no upstream merge-conflict or kilocode_change marker concerns apply.

Fix these issues in Kilo Cloud


Reviewed by grok-4.6 · Input: 181.6K · Output: 15.5K · Cached: 742.3K

Review guidance: REVIEW.md from base branch main

@IamCoder18
IamCoder18 force-pushed the feat/tui-about-dialog branch from 4f8fac0 to 5c1bcc8 Compare July 22, 2026 17:47
User-facing new feature in @kilocode/cli: About dialog reachable
from the command palette and via `/about`.
@IamCoder18
IamCoder18 force-pushed the feat/tui-about-dialog branch 2 times, most recently from 6979196 to 81d2828 Compare July 22, 2026 19:13
@marius-kilocode

Copy link
Copy Markdown
Collaborator

@IamCoder18 I like the idea, but I am not sure if we really need all of those infos. I think we should simplify this and only include the most important infos for that that matter.

Drop counts (agents/MCP/plugins), plugin list, build kind, terminal,
and CWD; combine runtime+platform into a single row. Inline the
copy-diagnostics payload instead of a dedicated helper. Remove
License from the copied payload.
Comment thread packages/opencode/src/kilocode/cli/cmd/tui/component/dialog-about.tsx Outdated
The MIT literal could go stale and mislead in a diagnostic surface
meant for accurate bug reports. Drop the row and refresh the changeset
to list only the items the dialog actually shows.
@IamCoder18

Copy link
Copy Markdown
Contributor Author

@IamCoder18 I like the idea, but I am not sure if we really need all of those infos. I think we should simplify this and only include the most important infos for that that matter.

I dropped the agent/MCP/plugin counts, the plugins list, Build, Terminal, license, and CWD rows, and folded Runtime + Platform into a single row.

image

Example copy diagnositics:

Kilo CLI local (local)
Runtime: Bun 1.3.14 (linux/x64)
Config: /home/aarav/.config/kilo
Project: /home/aarav/apps/kilocode
Providers: kilo
Default model: kilo/minimax/minimax-m3

@IamCoder18

Copy link
Copy Markdown
Contributor Author

Comment to prevent this PR from automatically closing due to 30 days of inactivity.

Comment on lines +70 to +71
`Config: ${Global.Path.config}`,
`Project: ${projectRoot()}`,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we consider the existing privacy mode here, and abbreviate/redact paths according to the privacy settings?

Comment on lines +121 to +123
<Row theme={theme} label="Runtime" value={`${runtime()} (${process.platform}/${process.arch})`} muted />
<Row theme={theme} label="Config" value={truncate(Global.Path.config, 60)} muted />
<Row theme={theme} label="Project" value={truncate(projectRoot(), 60)} muted />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

See above comment about privacy mode.

const connected = sync.data.provider_next.connected
return connected.length ? connected.join(", ") : "(none connected)"
}
const defaultModel = () => sync.data.config.model ?? ""

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The selected model here may differ from the model picker. Please take a look at how debug dialog uses local.model.current().

@IamCoder18

Copy link
Copy Markdown
Contributor Author

@johnnyeric

Thanks for the review.

I've integrated privacy mode and aligned the current model with the debug dialog.

image

- Use live picker selection for default model via useLocal().model.current()
- Run config fallback through Model.name() for consistent format
- Apply privacy_mode redaction to Config/Project in both copy() and display
- Use shared pathLabel helper so clipboard matches on-screen rendering
- Add REDACTED_PATH constant to keep path redaction distinct from balance
@IamCoder18
IamCoder18 requested a review from johnnyeric August 30, 2026 15:07
@johnnyeric
johnnyeric merged commit d8a35ff into Kilo-Org:main Aug 31, 2026
47 of 50 checks passed
@johnnyeric

Copy link
Copy Markdown
Contributor

Thanks @IamCoder18 for addressing the comments - looks great. Merged.

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]: TUI has no way to view version / environment info from inside a session

3 participants