Skip to content

[Feature Request] Support custom / external color themes #1982

@tonylan2010tiger-hue

Description

@tonylan2010tiger-hue

Motivation

Currently, Kimi Code CLI only supports two hardcoded themes: \dark\ and \light\ (configured via in ). While this works, it limits users who want to customize the terminal appearance to match their personal preferences, terminal color schemes, or accessibility needs.

Current Behavior

The color definitions are hardcoded in :

  • / for diff highlights
  • / for prompt/completion menus
  • / for the bottom toolbar
  • / for MCP status prompts
  • / for the task browser

Users cannot override any of these colors without forking the repository and modifying source code directly.

Proposed Solution

Option A: External theme file (Recommended)

Allow users to specify a custom theme file in :

The JSON file could follow a structured schema:

Option B: Built-in theme presets

Ship several popular presets alongside dark/light:

  • ,
  • ,
  • ,

Option C: Inline color overrides in config.toml

Allow minimal overrides without a separate file:

Benefits

  1. No fork required: Users can customize appearance without maintaining a fork
  2. Community sharing: Users can share theme files with each other
  3. Accessibility: Users with color vision deficiencies can choose high-contrast palettes
  4. Consistency: Terminal appearance can match the user'''s editor/terminal theme
  5. Forward compatibility: Custom themes survive CLI updates

Additional Context

Other CLI tools in this space (e.g., Work seamlessly with GitHub from the command line.

USAGE
gh [flags]

CORE COMMANDS
auth: Authenticate gh and git with GitHub
browse: Open repositories, issues, pull requests, and more in the browser
codespace: Connect to and manage codespaces
gist: Manage gists
issue: Manage issues
org: Manage organizations
pr: Manage pull requests
project: Work with GitHub Projects.
release: Manage releases
repo: Manage repositories
skill: Install and manage agent skills (preview)

GITHUB ACTIONS COMMANDS
cache: Manage GitHub Actions caches
run: View details about workflow runs
workflow: View details about GitHub Actions workflows

ALIAS COMMANDS
co: Alias for "pr checkout"

ADDITIONAL COMMANDS
agent-task: Work with agent tasks (preview)
alias: Create command shortcuts
api: Make an authenticated GitHub API request
attestation: Work with artifact attestations
completion: Generate shell completion scripts
config: Manage configuration for gh
copilot: Run the GitHub Copilot CLI (preview)
extension: Manage gh extensions
gpg-key: Manage GPG keys
label: Manage labels
licenses: View third-party license information
preview: Execute previews for gh features
ruleset: View info about repo rulesets
search: Search for repositories, issues, and pull requests
secret: Manage GitHub secrets
ssh-key: Manage SSH keys
status: Print information about relevant issues, pull requests, and notifications across repositories
variable: Manage GitHub Actions variables

HELP TOPICS
accessibility: Learn about GitHub CLI's accessibility experiences
actions: Learn about working with GitHub Actions
environment: Environment variables that can be used with gh
exit-codes: Exit codes used by gh
formatting: Formatting options for JSON data exported from gh
mintty: Information about using gh with MinTTY
reference: A comprehensive reference of all gh commands

FLAGS
--help Show help for command
--version Show gh version

EXAMPLES
$ gh issue create
$ gh repo clone cli/cli
$ gh pr checkout 321

LEARN MORE
Use gh <command> <subcommand> --help for more information about a command.
Read the manual at https://cli.github.com/manual
Learn about exit codes using gh help exit-codes
Learn about accessibility experiences using gh help accessibility, , ) support external theming via config files or TOML/JSON schemas. Adopting a similar approach would align Kimi CLI with user expectations.

I'''m happy to help implement this if the maintainers are open to it. Would love to hear your thoughts on the preferred approach (A, B, or C) or any alternative ideas.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions