ChatCLI’s unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.
Since v1.125, every color in ChatCLI comes from a single source of truth: the ui/theme package. It defines a semantic palette (colors named by role, not by hue), detects the terminal’s color capability, and ships 12 ready-made themes (dark, light, grafite + 9 community palettes) that re-skin the entire UI — chat, /coder and /agent cards, borders, markdown, code blocks, and spinners — with no restart.
The theme is process-global state. Switching applies on the next render, no restart needed. Unlike CHATCLI_CODER_UI (the timeline style), which the renderer re-reads from the environment on every call.
/config ui # show the active theme + detected color profile/config ui theme # same thing (explicit form)/config ui theme dark # switch to the dark theme/config ui theme dracula # switch to any theme by name/config ui theme tokyo-night # hyphenated names work fine/config theme dracula # shorthand equivalent to /config ui theme dracula
Full autocomplete: type /config ui theme <TAB> (or /config theme <TAB>) and every theme appears: dark · light · grafite · dracula · nord · tokyo-night · solarized-dark · solarized-light · gruvbox · catppuccin-mocha · monokai · one-dark.
The status panel (/config ui) shows the active theme, the source of the value (environment variable vs. default), the detected color profile, and the list of themes with the active one marked by →.
There are 12 themes in total. Each strip shows the name and the palette’s real colors, in the order model · accent (reasoning) · ok · warn · error: — default, dark-background terminals — light-background terminals — sober graphite dark: calm blue accents, low-key chrome — high-contrast purple/pink/cyan — cool arctic, low saturation — modern night-blue — Solarized on its dark base — same hues on a light background — retro, warm, high-contrast — soft pastel (Mocha) — classic editor palette on charcoal — Atom’s balanced blue/gray
dark, light and grafite are ChatCLI’s calibrated variants; the other nine are adaptations of the classic community palettes mapped onto ChatCLI’s semantic roles (same structure, different colors). All of them degrade to 256 and 16 colors while keeping the roles distinguishable.
The switch applies the palette all at once because Colorize and the ansiColorToLip converter route through the active theme — there’s no call-site churn.
The REPL prompt is drawn by go-prompt, which owns its own render loop and never sees the ANSI strings the rest of the UI builds. Until v1.199 its colors were literals — the text you typed was hardcoded to white — so a light theme on a light terminal printed white on white. Every one of those colors now comes from the active palette:
Surface
Palette entry
prompt prefix, inline completion preview
Info
the text you type
TextStrong
suggestion list (fill / ink)
Border / TextStrong
selected suggestion (fill / ink)
Secondary / Background
description panel (fill / ink)
Background / Warning
scrollbar (thumb / track)
Muted / Background
Ink is always chosen against the fill it lands on, never against the terminal — Background is the theme’s own ground, so it is the readable ink on a saturated row under a dark and a light palette.
go-prompt copies these onto its renderer when the prompt is built and never re-reads them, so /config ui theme rebuilds the prompt on the spot. That is the one surface where a theme switch does more than wait for the next render.
Every built-in palette is held to a machine-checked floor, so “opinionated about hue” never becomes “unreadable”:
Body text (Text, TextStrong) clears 4.5:1 against the theme’s own ground; Muted — secondary text — clears 3:1.
On a 16-color terminal a light palette never reaches into the bright range (9–15, which is painted for a dark ground), and a dark palette never uses index 0.
Each dropdown fill/ink pair clears 3:1 and never collapses onto the same 16-color index.
Border is deliberately exempt from the contrast floor: Nord, Solarized, Catppuccin and One Dark all define their border tone as a near-ground fill on purpose, and raising it would replace the palette’s identity with ours.
Markdown is rendered by glamour with a StyleConfigderived from the palette (replacing the legacy glamour.WithStandardStyle("dark")), so markdown and code-block colors share the UI’s hues. Syntax highlighting via chroma and a language chip above each code block. The document is rendered whole (not block by block), so reference links, footnotes, and paragraph spacing all resolve correctly.
ChatCLI detects the terminal’s capability and degrades gracefully. In pipes, CI, or dumb terminals, output becomes clean plain text with no color codes.
Profile
Meaning
TrueColor
24-bit terminal
ANSI256
8-bit (256-color) terminal
ANSI
classic 16-color terminal (SGR 30–37 / 90–97)
ASCII
no color — NO_COLOR, dumb, pipe/redirect
Detection honors the usual signals (NO_COLOR, CLICOLOR_FORCE, TERM, COLORTERM). The dark theme keeps the ANSI16 = 10 index for green, so 16-color terminals are identical to legacy behavior.The startup banner uses the profile too. On a truecolor terminal its block letters are painted column by column with a left-to-right gradient: coral through orange to amber on the dark and light themes, and from the theme’s Primary to its Secondary on every other theme. A 256-color terminal gets the nearest palette entry per column. A 16-color terminal, NO_COLOR and piped output keep the single-color banner.
A runtime switch applies only to the current process. To pin a default across sessions, add to your .env:
CHATCLI_THEME=light
The mutator prints this hint right after each switch. ChatCLI never rewrites your .env on its own. See CHATCLI_THEME in the environment-variable reference.
Parallel change in v1.125: the chat reply envelope gained a footer with per-turn cost and context usage, and spinners were unified into a single themed braille spinner, shown only when a terminal is present.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"ChatCLI","description":"Official ChatCLI documentation — a multi-provider AI CLI with agent mode, gRPC server and Kubernetes operator.","colors":{"primary":"#0F766E","light":"#2DD4BF","dark":"#0D9488"},"logo":{"light":"https://mintcdn.com/encom/Rcdb5Pr5hpjwN46r/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Rcdb5Pr5hpjwN46r\u0026q=85\u0026s=965a0feb9bd2f65a11b3c486e2488101","dark":"https://mintcdn.com/encom/Rcdb5Pr5hpjwN46r/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=Rcdb5Pr5hpjwN46r\u0026q=85\u0026s=ac3f6607cdea0039d0b66b80f700e512","href":"/"},"favicon":"https://mintcdn.com/encom/Rcdb5Pr5hpjwN46r/images/favicon.svg?fit=max\u0026auto=format\u0026n=Rcdb5Pr5hpjwN46r\u0026q=85\u0026s=c774e29d1b243b7c3b4bf5e173fef299","api":{"openapi":"api-reference/openapi.json","playground":{"display":"interactive"}},"appearance":{"default":"dark","strict":false},"background":{"color":{"light":"#F7F7F5","dark":"#0E0F10"}},"navbar":{"links":[{"href":"/cookbook/agent-refactoring","label":"Cookbook"},{"href":"/releases","label":"Releases"},{"href":"https://github.com/diillson/chatcli","type":"github"}],"primary":{"type":"button","label":"Install","href":"/start/installation"}},"footer":{"socials":{"github":"https://github.com/diillson/chatcli","x":"https://x.com/diillson"},"links":[{"header":"Resources","items":[{"label":"Documentation","href":"/"},{"label":"Cookbook","href":"/cookbook/agent-refactoring"},{"label":"API Reference","href":"/reference/api/overview"}]},{"header":"Community","items":[{"label":"GitHub","href":"https://github.com/diillson/chatcli"},{"label":"Issues","href":"https://github.com/diillson/chatcli/issues"},{"label":"Discussions","href":"https://github.com/diillson/chatcli/discussions"},{"label":"Releases","href":"https://github.com/diillson/chatcli/releases"}]},{"header":"Distribution","items":[{"label":"ArtifactHub","href":"https://artifacthub.io/packages/search?ts_query_web=chatcli"},{"label":"Helm Charts","href":"https://artifacthub.io/packages/helm/chatcli/chatcli"},{"label":"Container Registry","href":"https://github.com/diillson/chatcli/pkgs/container/chatcli"}]}]},"search":{"prompt":"Search"},"seo":{"metatags":{"og:type":"website","og:site_name":"ChatCLI Documentation","twitter:card":"summary_large_image","twitter:site":"@diillson"}},"fonts":{"heading":{"family":"Geist","weight":600},"body":{"family":"Geist"}},"styling":{"eyebrows":"section","codeblocks":"system","latex":true},"integrations":{},"errors":{"404":{"redirect":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"pt-BR","footer":{"socials":{"github":"https://github.com/diillson/chatcli","x":"https://x.com/diillson"},"links":[{"header":"Recursos","items":[{"label":"Documentação","href":"/pt"},{"label":"Cookbook","href":"/pt/cookbook/agent-refactoring"},{"label":"API Reference","href":"/pt/reference/api/overview"}]},{"header":"Comunidade","items":[{"label":"GitHub","href":"https://github.com/diillson/chatcli"},{"label":"Issues","href":"https://github.com/diillson/chatcli/issues"},{"label":"Discussions","href":"https://github.com/diillson/chatcli/discussions"},{"label":"Releases","href":"https://github.com/diillson/chatcli/releases"}]},{"header":"Distribuição","items":[{"label":"ArtifactHub","href":"https://artifacthub.io/packages/search?ts_query_web=chatcli"},{"label":"Helm Charts","href":"https://artifacthub.io/packages/helm/chatcli/chatcli"},{"label":"Container Registry","href":"https://github.com/diillson/chatcli/pkgs/container/chatcli"}]}]},"navbar":{"links":[{"href":"/pt/cookbook/agent-refactoring","label":"Cookbook"},{"href":"/pt/releases","label":"Releases"},{"href":"https://github.com/diillson/chatcli","type":"github"}],"primary":{"type":"button","label":"Instalar","href":"/pt/start/installation"}},"href":"pt"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"encom","hasAudioNarration":false,"actualSubdomain":"encom","customDomains":["chatcli.edilsonfreitas.com"],"gitSource":{"type":"github","owner":"diillson","repo":"chatcli.ai","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad7d0ebd8a64fb93f78a90e","collectionId":"8cbbcbec-1722-4fa8-be01-aad6ba324d29","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad7d0ebd8a64fb93f78a90e"},"entitlements":{},"buildId":"6ad7d0ebd8a64fb93f78a90e","clientVersion":"0.0.3918","searchFilterCounts":[{"language":"en","tag":"Documentation","count":201},{"language":"pt-BR","tag":"Documentação","count":201},{"language":"en","tag":"Reference","count":55},{"language":"pt-BR","tag":"Referência","count":55},{"language":"en","tag":"REST API","count":50},{"language":"pt-BR","tag":"REST API","count":50},{"language":"en","tag":"Agents","count":20},{"language":"pt-BR","tag":"Agentes","count":20},{"language":"en","tag":"Cookbook","count":16},{"language":"pt-BR","tag":"Cookbook","count":16},{"language":"en","tag":"Context \u0026 memory","count":15},{"language":"en","tag":"Using ChatCLI","count":15},{"language":"pt-BR","tag":"Contexto e memória","count":15},{"language":"pt-BR","tag":"Usando o ChatCLI","count":15},{"language":"en","tag":"Kubernetes \u0026 AIOps","count":14},{"language":"pt-BR","tag":"Kubernetes e AIOps","count":14},{"language":"en","tag":"Channels \u0026 gateway","count":11},{"language":"en","tag":"Releases","count":11},{"language":"pt-BR","tag":"Canais e gateway","count":11},{"language":"pt-BR","tag":"Releases","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@keyframes cb-blink{50%{opacity:0}}@keyframes cc-nav-in{0%{opacity:0;transform:translateX(18px)}}@keyframes cc-nav-out{0%{opacity:0;transform:translateX(-18px)}}:root{--cc-accent:#0f766e;--cc-accent-strong:#115e59;--cc-accent-soft:rgb(13 148 136 / 0.08);--cc-accent-ring:rgb(13 148 136 / 0.32);--cc-glow:rgb(20 184 166 / 0.07);--cc-text:#17171a;--cc-text-2:#46464e;--cc-text-3:#6b6b74;--cc-surface:#ffffff;--cc-surface-2:#f1f0ed;--cc-code-bg:#f3f2ef;--cc-border:rgb(23 23 26 / 0.10);--cc-border-strong:rgb(23 23 26 / 0.18);--cc-shadow:0 1px 2px rgb(0 0 0 / 0.04), 0 8px 24px -12px rgb(0 0 0 / 0.10);--cc-radius:0.75rem;--cc-radius-sm:0.5rem;--cc-mono:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}html.dark{--cc-accent:#2dd4bf;--cc-accent-strong:#5eead4;--cc-accent-soft:rgb(45 212 191 / 0.12);--cc-accent-ring:rgb(45 212 191 / 0.40);--cc-glow:rgb(45 212 191 / 0.08);--cc-text:#ededed;--cc-text-2:#bcbcc4;--cc-text-3:#8e8e96;--cc-surface:#161719;--cc-surface-2:#1c1d20;--cc-code-bg:#121314;--cc-border:rgb(154 154 162 / 0.16);--cc-border-strong:rgb(154 154 162 / 0.28);--cc-shadow:0 1px 2px rgb(0 0 0 / 0.25), 0 12px 32px -16px rgb(0 0 0 / 0.6);--cc-live:#4ade80;--cc-live-soft:rgb(74 222 128 / 0.12)}::selection{background:var(--cc-accent-ring)}body::before{content:\"\";position:fixed;inset:0 0 auto auto;width:60vw;height:32rem;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 75% 0%,var(--cc-glow),transparent 65%)}#navbar{backdrop-filter:saturate(140%) blur(12px)}#navbar #search-bar-entry{border-color:var(--cc-border);background:var(--cc-surface);box-shadow:none}#sidebar-title,#topbar-cta-button a{font-weight:500}#sidebar-title{font-size:.75rem;letter-spacing:.01em;color:var(--cc-text-3)}#navbar #search-bar-entry,#sidebar #navigation-items a,#topbar-cta-button a{border-radius:var(--cc-radius-sm)}#sidebar #navigation-items a.text-primary,#sidebar #navigation-items a[class*=bg-primary]{background:var(--cc-accent-soft);color:var(--cc-accent);text-shadow:none;font-weight:500}.nav-tag-pill-text{font-family:var(--cc-mono);font-weight:500!important;letter-spacing:.02em}#header .eyebrow{color:var(--cc-accent);font-size:.8125rem;font-weight:500}#page-title{font-size:clamp(2rem,3.2vw,2.5rem);font-weight:600;letter-spacing:-.025em;line-height:1.15}#header .prose{color:var(--cc-text-2)}#page-context-menu button,#page-context-menu-button{border-radius:var(--cc-radius-sm)}#content{font-size:.975rem}#content h2,#content h3{letter-spacing:-.02em;font-weight:600}#content h3{letter-spacing:-.01em}#content a:not(.card):not([class*=cc-]){text-decoration-color:var(--cc-accent-ring);text-underline-offset:3px}#content a:not(.card):not([class*=cc-]):hover{text-decoration-color:var(--cc-accent)}.font-mono,code,kbd,pre{font-family:var(--cc-mono)!important}#content :not(pre)>code{font-size:.85em;padding:.1em .38em;border-radius:.375rem;border:1px solid var(--cc-border);background:var(--cc-surface-2)}.code-block,[data-component-part=code-block-root]{border-radius:var(--cc-radius)!important;border-color:var(--cc-border)!important}.callout,.code-block-background{border-radius:var(--cc-radius)!important}html.dark .code-block-background{background:var(--cc-code-bg)!important}#content table{font-size:.9rem}#content table thead th{font-size:.8125rem;font-weight:600;color:var(--cc-text-2);border-bottom:1px solid var(--cc-border-strong)}#content table td{border-color:var(--cc-border)}.callout{border:1px solid var(--cc-border)!important;background:var(--cc-surface)!important;box-shadow:var(--cc-shadow)}.callout>div:last-child,.callout>div:last-child *{color:var(--cc-text-2)}.callout>div:last-child code,.callout>div:last-child strong{color:var(--cc-text)!important}.callout[data-callout-type=warning]{border-left:3px solid #f59e0b!important}.callout[data-callout-type=danger]{border-left:3px solid #ef4444!important}.card{border-radius:var(--cc-radius)!important;border-color:var(--cc-border)!important;background:var(--cc-surface)!important;transition:border-color 160ms ease,transform 160ms ease}a.card:hover{border-color:var(--cc-accent-ring)!important}.card [data-component-part=card-icon]{display:grid;place-items:center;width:2.25rem;height:2.25rem;margin-bottom:.25rem;border-radius:var(--cc-radius-sm);border:1px solid var(--cc-border);background:var(--cc-surface-2)}.card [data-component-part=card-icon] svg{width:1rem!important;height:1rem!important;background-color:var(--cc-accent)!important}.steps [data-component-part=step-number]>div{background:var(--cc-surface)!important;box-shadow:0 0 0 1px var(--cc-accent-ring);color:var(--cc-accent)!important;font-family:var(--cc-mono)}[role=tablist] [data-state=active],[role=tablist] button[aria-selected=true]{color:var(--cc-accent)!important;border-color:var(--cc-accent)!important}#content-area:has([data-chatcli-banner]) #header,#content-area:has([data-chatcli-banner]) #header .eyebrow,#content-area:has([data-chatcli-banner]) #header .prose,#content-area:has([data-chatcli-banner]) #page-title{display:none}#content-area:has([data-chatcli-banner]) #content{margin-top:0}.chatcli-banner{margin:3rem 0 .75rem}.chatcli-banner-art{--cb-a:#0d9488;--cb-b:#0891b2;--cb-c:#2563eb;--cb-edge:rgb(23 23 26 / 0.28);--cb-glow:rgb(13 148 136 / 0.18);display:block;width:min(100%,30rem);height:auto;overflow:visible}html.dark .chatcli-banner-art{--cb-a:#2dd4bf;--cb-b:#22d3ee;--cb-c:#60a5fa;--cb-edge:rgb(237 237 237 / 0.22);--cb-glow:rgb(45 212 191 / 0.34)}.chatcli-banner .cb-fills rect{shape-rendering:crispEdges}.chatcli-banner .cb-fills{filter:drop-shadow(0 0 14px var(--cb-glow))}.chatcli-banner .cb-edges path{fill:none;stroke:var(--cb-edge);stroke-width:.55;stroke-linecap:square}.cb-prompt{margin:0 0 1.25rem;font-family:var(--cc-mono);font-size:.95rem;color:var(--cc-text-2)}.cb-prompt-sign{color:var(--cc-accent)}.cb-cursor{display:inline-block;width:.55em;height:1.1em;margin-left:.3em;vertical-align:-.18em;background:var(--cc-accent);animation:cb-blink 1.1s steps(1) infinite}@media (prefers-reduced-motion:reduce){.cb-cursor{animation:none}}.chatcli-banner-tagline{font-size:1.125rem;line-height:1.6;margin:0 0 2rem;max-width:44rem;color:var(--cc-text-2)}.chatcli-banner-tagline strong{color:var(--cc-text);font-weight:500}.cc-entry>div,a.cc-release{border:1px solid var(--cc-border);border-radius:var(--cc-radius);background:var(--cc-surface)}a.cc-release{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.1rem;margin:0 0 1.25rem;color:var(--cc-text-2);font-size:.875rem;text-decoration:none!important;border-bottom-width:1px;transition:border-color 160ms ease}a.cc-release:hover{border-color:var(--cc-accent-ring)}.cc-release-label{color:var(--cc-text-3);white-space:nowrap}.cc-release-version{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--cc-text);white-space:nowrap}.cc-release-version::before{content:\"\";width:.4rem;height:.4rem;border-radius:999px;background:var(--cc-live);box-shadow:0 0 0 3px var(--cc-live-soft)}.cc-release-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-release-cta{font-weight:500;color:var(--cc-text);white-space:nowrap}.cc-entry{margin:0 0 3rem}.cc-entry>div{gap:0!important;overflow:hidden}.cc-entry .card{margin:0!important;border:0!important;border-radius:0!important;background:0 0!important;height:100%}.cc-entry .card:hover{background:var(--cc-accent-soft)!important}@media (min-width:1024px){.cc-entry .card{border-left:1px solid var(--cc-border)!important}.cc-entry>div>.card:first-child,.cc-entry>div>:first-child .card{border-left:0!important}}@media (max-width:1023px){.cc-entry .card{border-top:1px solid var(--cc-border)!important}.cc-entry>div>.card:first-child,.cc-entry>div>:first-child .card{border-top:0!important}a.cc-release{flex-wrap:wrap}.cc-release-summary{flex-basis:100%;white-space:normal}}.cc-release-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0 0 1.5rem;font-size:.875rem;color:var(--cc-text-3)}.cc-release-meta a{color:var(--cc-text-2)!important}.cc-scope{display:inline-block;margin-right:.35rem;padding:.05rem .4rem;border-radius:.375rem;border:1px solid var(--cc-border);background:var(--cc-surface-2);font-family:var(--cc-mono);font-size:.78em;color:var(--cc-text-2);vertical-align:.08em}a.cc-scope{text-decoration:none!important;color:var(--cc-accent)!important}.cc-refs{font-size:.85em;color:var(--cc-text-3);white-space:nowrap}.cc-refs a{color:var(--cc-text-3)!important}html{--cc-live:#15803d;--cc-live-soft:rgb(21 128 61 / 0.10)}.nav-tag-pill-text[data-nav-tag=\"Mais recente\"],.nav-tag-pill-text[data-nav-tag=Latest],.nav-tag-pill-text[data-nav-tag^=v]{display:inline-flex;align-items:center;gap:.3rem;color:var(--cc-live)!important;background:var(--cc-live-soft)!important}.nav-tag-pill-text[data-nav-tag=\"Mais recente\"]::before,.nav-tag-pill-text[data-nav-tag=Latest]::before,.nav-tag-pill-text[data-nav-tag^=v]::before{content:\"\";width:.35rem;height:.35rem;border-radius:999px;background:currentColor}.cc-nav-back{display:flex;align-items:center;gap:.6rem;width:100%;margin:0 0 1rem;padding:.6rem .85rem;border:1px solid var(--cc-border);border-radius:var(--cc-radius-sm);background:var(--cc-surface);color:var(--cc-text);font-weight:600;text-align:left;cursor:pointer;transition:border-color 160ms ease,background 160ms ease}#navigation-items[data-cc-focus] [data-cc-focused]>button,.cc-nav-back[hidden]{display:none}.cc-nav-back:hover,a.cc-channel:hover{border-color:var(--cc-accent-ring)}.cc-nav-back svg{flex:none;color:var(--cc-text-3)}#navigation-items[data-cc-focus] ul.sidebar-group>li:not([data-cc-focused]),#navigation-items[data-cc-focus]>div:not(:has([data-cc-focused])){display:none}#navigation-items[data-cc-focus]>div:has([data-cc-focused]){margin-top:0}#navigation-items[data-cc-focus]>div:has([data-cc-focused])>:not(ul){display:none}#navigation-items[data-cc-focus] [data-cc-focused]>ul>li>a,#navigation-items[data-cc-focus] [data-cc-focused]>ul>li>button{padding-left:1rem!important}#navigation-items[data-cc-focus] [data-cc-focused]>ul>li>ul a,#navigation-items[data-cc-focus] [data-cc-focused]>ul>li>ul button{padding-left:1.75rem!important}#navigation-items.cc-nav-in{animation:cc-nav-in 220ms cubic-bezier(.23,1,.32,1)}#navigation-items.cc-nav-out{animation:cc-nav-out 220ms cubic-bezier(.23,1,.32,1)}@media (prefers-reduced-motion:reduce){#navigation-items.cc-nav-in,#navigation-items.cc-nav-out{animation:none}}.cc-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:1.25rem 0 2rem}@media (max-width:900px){.cc-channels{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.cc-channels{grid-template-columns:1fr}}a.cc-channel{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;border:1px solid var(--cc-border);border-radius:var(--cc-radius);background:var(--cc-surface);color:var(--cc-text)!important;font-weight:500;font-size:.95rem;text-decoration:none!important;transition:border-color 160ms ease,transform 160ms ease}.cc-channel-icon{display:grid;place-items:center;flex:none;width:1.6rem;height:1.6rem}.cc-channel-icon svg{width:1.45rem;height:1.45rem}.cc-channel-name{flex:1;min-width:0}.cc-channel-arrow{flex:none;width:1rem;height:1rem;color:var(--cc-text-3);transition:transform 160ms ease,color 160ms ease}a.cc-channel:hover .cc-channel-arrow{color:var(--cc-text);transform:translateX(2px)}.cc-ch-telegram{color:#26a5e4}.cc-ch-slack{color:#e01e5a}.cc-ch-discord{color:#5865f2}.cc-ch-whatsapp{color:#25d366}.cc-ch-webhook{color:var(--cc-accent)}.cc-ch-all{color:var(--cc-text-3)}html.dark .cc-ch-discord{color:#8991ff}#sidebar #navigation-items a,#sidebar #navigation-items button{font-size:.8125rem!important;line-height:1.35rem;padding-top:.3rem!important;padding-bottom:.3rem!important}#sidebar #navigation-items svg{width:.95rem;height:.95rem}.cc-nav-back{font-size:.8125rem}#table-of-contents,#table-of-contents a,#table-of-contents li{font-size:.8125rem!important;line-height:1.3rem}#table-of-contents a{padding-top:.2rem;padding-bottom:.2rem}#content-container:has([data-chatcli-banner]){max-width:min(100%,1440px)!important}#content-container:has([data-chatcli-banner]) #content-area{max-width:none!important}#navigation-items li[data-title]:not([id])>button>div:not(:has(svg)){flex:1 1 auto;min-width:0;text-align:left}body::after{content:\"\";position:absolute;top:0;right:0;z-index:0;width:min(78vw,1100px);height:440px;pointer-events:none;background:linear-gradient(225deg,#2dd4bf 0,#22d3ee 40%,#60a5fa 75%,transparent 100%);-webkit-mask:url(/images/hero-halftone.svg) right top/100% 100% no-repeat;mask:url(/images/hero-halftone.svg) right top/100% 100% no-repeat;opacity:.6}html:not(.dark) body::after{background:linear-gradient(225deg,#0d9488 0,#0891b2 40%,#2563eb 75%,transparent 100%);opacity:.38}@media (max-width:760px){body::after{width:100vw;height:280px;opacity:.4}html:not(.dark) body::after{opacity:.26}}#navigation-items li[data-title]:not([id])>button{position:relative}#navigation-items li[data-title]:not([id])>button>:last-child svg,#navigation-items li[data-title]:not([id])>button>svg:last-child{visibility:hidden}#navigation-items li[data-title]:not([id])>button::after{content:\"\";position:absolute;top:50%;right:.7rem;width:12px;height:12px;margin-top:-6px;background:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m6 3.5 4.5 4.5L6 12.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\") center/contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m6 3.5 4.5 4.5L6 12.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\") center/contain no-repeat;opacity:.42;pointer-events:none;transition:rotate 200ms cubic-bezier(.23,1,.32,1),opacity 160ms ease}#navigation-items li[data-title]:not([id])>button[aria-expanded=true]::after{rotate:90deg}#navigation-items li[data-title]:not([id])>button:hover::after{opacity:.75}@media (prefers-reduced-motion:reduce){#navigation-items li[data-title]:not([id])>button::after{transition:none}}"}],"page":{"pagePath":"usage/ui-theme","slug":"/usage/ui-theme","pageMetadata":{"title":"Theme System (Colors)","sidebarTitle":"Theme System","description":"ChatCLI's unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.","icon":"palette","href":"/usage/ui-theme"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"ChatCLI’s unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,OptimizedImage,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Since `,_jsx(_components.strong,{children:`v1.125`}),`, every color in ChatCLI comes from a single source of truth: the `,_jsx(_components.code,{children:`ui/theme`}),` package. It defines a `,_jsx(_components.strong,{children:`semantic palette`}),` (colors named by role, not by hue), detects the `,_jsx(_components.strong,{children:`terminal’s color capability`}),`, and ships `,_jsx(_components.strong,{children:`12 ready-made themes`}),` (`,_jsx(_components.code,{children:`dark`}),`, `,_jsx(_components.code,{children:`light`}),`, `,_jsx(_components.code,{children:`grafite`}),` + 9 community palettes) that re-skin the entire UI — chat, `,_jsx(_components.code,{children:`/coder`}),` and `,_jsx(_components.code,{children:`/agent`}),` cards, borders, markdown, code blocks, and spinners — with no restart.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The theme is `,_jsx(_components.strong,{children:`process-global state`}),`. Switching applies on the `,_jsx(_components.strong,{children:`next render`}),`, no restart needed. Unlike `,_jsx(_components.code,{children:`CHATCLI_CODER_UI`}),` (the timeline style), which the renderer re-reads from the environment on every call.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`switch-themes-at-runtime`,children:`Switch themes at runtime`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ui`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # show the active theme + detected color profile`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ui`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` theme`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # same thing (explicit form)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ui`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` theme`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dark`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # switch to the dark theme`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ui`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` theme`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dracula`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # switch to any theme by name`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ui`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` theme`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tokyo-night`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # hyphenated names work fine`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`/config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` theme`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dracula`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # shorthand equivalent to /config ui theme dracula`})]}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Full autocomplete: type `,_jsx(_components.code,{children:`/config ui theme \u003cTAB>`}),` (or `,_jsx(_components.code,{children:`/config theme \u003cTAB>`}),`) and every theme appears: `,_jsx(_components.code,{children:`dark · light · grafite · dracula · nord · tokyo-night · solarized-dark · solarized-light · gruvbox · catppuccin-mocha · monokai · one-dark`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`The status panel (`,_jsx(_components.code,{children:`/config ui`}),`) shows the active theme, the `,_jsx(_components.strong,{children:`source`}),` of the value (environment variable vs. default), the detected `,_jsx(_components.strong,{children:`color profile`}),`, and the list of themes with the active one marked by `,_jsx(_components.code,{children:`→`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`available-themes`,children:`Available themes`}),`\n`,_jsxs(_components.p,{children:[`There are `,_jsx(_components.strong,{children:`12 themes`}),` in total. Each strip shows the name and the palette’s `,_jsx(_components.strong,{children:`real colors`}),`, in the order `,_jsx(_components.strong,{children:`model · accent (reasoning) · ok · warn · error`}),`:`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=815f91edaaed571de10d41049e7ae6da`,alt:`dark theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=b1236c3c1f0c5bb107a45d5ac7def49d 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=98db1b84b1ea906739048c89225ede74 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=215548d893f609471e9c2cfa9baa3583 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=91222570d70984ba7b77de65e90ac071 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=1884e463a4c40b73fac5c6d3fd9f3ce6 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=dce119cd9225d1b8b014905aa9b8bca3 2500w`}),` — default, dark-background terminals`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=a00feadc08705d24c4211d92a52b2165`,alt:`light theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=7d5ae359298dde3c51345eb2206e9e2d 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c2d9415bf83bb63b3e507c5622f96e06 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=899bb4d73800ad1a5c0766cf01b5844d 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=f7e562c70ead09101686852673ab1c6c 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=06e50aa85e5036013ad49df8a00e8ddd 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=36989ccdf8e3f4f8b02a0123a185bb99 2500w`}),` — light-background terminals`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=f886d544235a737709c1673aaa8a8950`,alt:`grafite theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/grafite.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=280\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=b24e8bd03cc5c89870466e065609d467 280w, https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=560\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=58df5ca335d009efe17302650292379f 560w, https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=840\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=608bb3709cfb10d9c33e81ff49800de6 840w, https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=1a5fbca3e88e72969251db80f327e1d5 1100w, https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=314926434b4e073224a49e25f20ec320 1650w, https://mintcdn.com/encom/10veCW9LR_AsF92O/images/themes/grafite.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=10veCW9LR_AsF92O\u0026q=85\u0026s=d8689bc199846aec3a1de21ff08349be 2500w`}),` — sober graphite dark: calm blue accents, low-key chrome`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=415cbc3ebad4e8672681f7a3acee5cda`,alt:`dracula theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/dracula.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=df107590d592cb6dea097d8d5242ee08 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=9cd76b9a9ab9892c1834926bf9af4c20 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=6e0a6bc74e7261b25abd72ca978e4326 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=348f905d09820e50d7b17c41782b8b6d 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=881d5dafab0a7c7e7b4d48de79bed028 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/dracula.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=389b766e2716fdcfe7394f65c43f6fde 2500w`}),` — high-contrast purple/pink/cyan`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=5bb6bc1c2f16890f8d9b90a1bc69d958`,alt:`nord theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/nord.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=9cf36e904bbd8c164b8b70fdcd805aed 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=eb3018dd851a025f6309dd162925e5b5 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=fc3686e44ffcba9f86477f96f834fd8f 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=b81768344874862683ebdb0c52b0b39f 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=fc0684d7f4151b280a2b3bf542ed134a 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/nord.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=27a0898611997009a2e9e42c18d2481f 2500w`}),` — cool arctic, low saturation`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=78effb64f88e8f59da6a4494e23ce853`,alt:`tokyo-night theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/tokyo-night.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=fe6810f332a0944cc3e0a5aea0a2831e 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c19fd6c9ef44ef89253546460f049e41 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=03a03633ca60061bc8c124420b704388 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=985be7a23b7294fedbf03192c7d5b026 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=6cd385081800a85a13206e11e0cbf866 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/tokyo-night.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=900fc25654a249574fa7e479b57e0e68 2500w`}),` — modern night-blue`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=0d63cd2c30533298636cf692a44dee49`,alt:`solarized-dark theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/solarized-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=0e83e89909252862c87a7be977f1f3f9 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=bdcc4b0ea30d055a87284f50393501a2 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=48795fb6e9c3cbf586e7d59374dfd533 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=bbfade01f80c12b9c77c0b6023251bc6 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c5703f1c016ca39c718f7cc66014b34e 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=e9b0aa26772668bbe394e6e9971b56fa 2500w`}),` — Solarized on its dark base`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c80ffc90a7bb5f8336b9a7e2e8e44c71`,alt:`solarized-light theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/solarized-light.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=dec63d8fa9bac655c3c50059c408f86c 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=686169ff23a67b5fba279f914787e839 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=68b51b031594b0b4d834fa04ff6060bc 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=fc3a8a7779000eebeb22028d63785799 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=b9fd24d0bf5170cabc19835143d401e4 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/solarized-light.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=4322428eecf1de74d4a275f726486639 2500w`}),` — same hues on a light background`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=6b83325929fc354c6dc8762a1e360398`,alt:`gruvbox theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/gruvbox.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=2b2659e5f414e4de32b51effd3ea4e75 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=406f5f8caa28b7e234a4e3269c7fedfc 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=d72f1cfe24ea13ce57faa22b2722d108 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=47ff68efb001736924d2a53cf0cc46df 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=50801f49535eaf64d68d0db87c09efb6 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/gruvbox.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=d6590edc413495c0c53fc1ed9baf4ac4 2500w`}),` — retro, warm, high-contrast`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=f6f36a9c166e04ad7ec1f21a288f3f6f`,alt:`catppuccin-mocha theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/catppuccin-mocha.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=21d8a78778f2adfcc4bd72d9d8491fa0 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=11533b17d053dbd28de7ebf538614420 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=95e7c86fa9417f56720e9df33ad0dda8 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=a02c8866b32e0b2cf08fabb8dcf2b9c9 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=cc061505ef5b94158dfd72405696ba79 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/catppuccin-mocha.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=bfd3505dbe942d260d57ecfc7efc0fb3 2500w`}),` — soft pastel (Mocha)`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=e9c649b29429c286ebcb456301a96fd4`,alt:`monokai theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/monokai.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=fd89c2ee9c92b96042da30313baa0d20 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=a0195bb505954bb10903b8ebd0f79882 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=356715f1dab774819e23489068246781 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=46bb31f01f119c18721faecc53da618e 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=39176afa7c3dd3a48a486b110a7c718f 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/monokai.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=64acf648ffcbda5b6308e78dec07637e 2500w`}),` — classic editor palette on charcoal`]}),`\n`,_jsxs(_components.p,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=87f6d59d1d880c76d475f1dd3fdc2058`,alt:`one-dark theme`,\"data-og-width\":`420`,width:`420`,\"data-og-height\":`40`,height:`40`,\"data-path\":`images/themes/one-dark.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=280\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=bfa267b35123f63e2459dbba76c500a7 280w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=560\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c2cbf221e40db0e9039e9678493d0a9a 560w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=840\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=c68fd6c8fd0365f5405d251151ee397e 840w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=1adc808f199aa229955ce2434959aef9 1100w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=a651d0b86953d99f6a9205db039910d8 1650w, https://mintcdn.com/encom/jHEV2Aj5E_4oDf2A/images/themes/one-dark.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=jHEV2Aj5E_4oDf2A\u0026q=85\u0026s=d8252942eea4e74dccbae73e99349928 2500w`}),` — Atom’s balanced blue/gray`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`dark`}),`, `,_jsx(_components.code,{children:`light`}),` and `,_jsx(_components.code,{children:`grafite`}),` are ChatCLI’s calibrated variants; the other nine are adaptations of the classic community palettes mapped onto ChatCLI’s semantic roles (same structure, different colors). All of them degrade to 256 and 16 colors while keeping the roles distinguishable.`]})}),`\n`,_jsxs(_components.p,{children:[`The switch applies the palette `,_jsx(_components.strong,{children:`all at once`}),` because `,_jsx(_components.code,{children:`Colorize`}),` and the `,_jsx(_components.code,{children:`ansiColorToLip`}),` converter route through the active theme — there’s no call-site churn.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`semantic-palette`,children:`Semantic palette`}),`\n`,_jsxs(_components.p,{children:[`Colors are named by the `,_jsx(_components.strong,{children:`role`}),` they serve, not by hue. That’s what makes swapping the whole theme a matter of touching only the palette:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Group`}),_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Use`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Brand/Hierarchy`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Primary`})}),_jsx(_components.td,{children:`model name, primary actions`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Secondary`})}),_jsx(_components.td,{children:`multi-agent, batch, secondary badges`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Accent`})}),_jsx(_components.td,{children:`reasoning / cognitive emphasis`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Muted`})}),_jsx(_components.td,{children:`neutral borders, secondary text, defaults`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Semantic state`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Success`})}),_jsx(_components.td,{children:`tool success, enabled`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Warning`})}),_jsx(_components.td,{children:`warnings, disabled`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Danger`})}),_jsx(_components.td,{children:`errors, tool failure`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Info`})}),_jsx(_components.td,{children:`notes / explanations`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Structural`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Border`})}),_jsx(_components.td,{children:`default card border`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Text`}),` / `,_jsx(_components.code,{children:`TextStrong`})]}),_jsx(_components.td,{children:`body text / bold and headings`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Background`})}),_jsx(_components.td,{children:`code-block background`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-input-line-and-the-completion-dropdown`,children:`The input line and the completion dropdown`}),`\n`,_jsxs(_components.p,{children:[`The REPL prompt is drawn by `,_jsx(_components.code,{children:`go-prompt`}),`, which owns its own render loop and never sees the ANSI strings the rest of the UI builds. Until `,_jsx(_components.strong,{children:`v1.199`}),` its colors were literals — the text you typed was hardcoded to white — so a light theme on a light terminal printed `,_jsx(_components.strong,{children:`white on white`}),`. Every one of those colors now comes from the active palette:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Surface`}),_jsx(_components.th,{children:`Palette entry`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`prompt prefix, inline completion preview`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Info`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`the text you type`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`TextStrong`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`suggestion list (fill / ink)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Border`}),` / `,_jsx(_components.code,{children:`TextStrong`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`selected suggestion (fill / ink)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Secondary`}),` / `,_jsx(_components.code,{children:`Background`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`description panel (fill / ink)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Background`}),` / `,_jsx(_components.code,{children:`Warning`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`scrollbar (thumb / track)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Muted`}),` / `,_jsx(_components.code,{children:`Background`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Ink is always chosen against the `,_jsx(_components.strong,{children:`fill it lands on`}),`, never against the terminal — `,_jsx(_components.code,{children:`Background`}),` is the theme’s own ground, so it is the readable ink on a saturated row under a dark `,_jsx(_components.em,{children:`and`}),` a light palette.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`go-prompt`}),` copies these onto its renderer when the prompt is built and never re-reads them, so `,_jsx(_components.code,{children:`/config ui theme`}),` rebuilds the prompt on the spot. That is the one surface where a theme switch does more than wait for the next render.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`legibility-contract`,children:`Legibility contract`}),`\n`,_jsx(_components.p,{children:`Every built-in palette is held to a machine-checked floor, so “opinionated about hue” never becomes “unreadable”:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Body text`}),` (`,_jsx(_components.code,{children:`Text`}),`, `,_jsx(_components.code,{children:`TextStrong`}),`) clears `,_jsx(_components.strong,{children:`4.5:1`}),` against the theme’s own ground; `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`Muted`})}),` — secondary text — clears `,_jsx(_components.strong,{children:`3:1`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`On a `,_jsx(_components.strong,{children:`16-color`}),` terminal a light palette never reaches into the bright range (9–15, which is painted for a dark ground), and a dark palette never uses index 0.`]}),`\n`,_jsx(_components.li,{children:`Each dropdown fill/ink pair clears 3:1 and never collapses onto the same 16-color index.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Border`}),` is deliberately exempt from the contrast floor: Nord, Solarized, Catppuccin and One Dark all define their border tone as a near-ground fill on purpose, and raising it would replace the palette’s identity with ours.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`themed-markdown`,children:`Themed markdown`}),`\n`,_jsxs(_components.p,{children:[`Markdown is rendered by glamour with a `,_jsx(_components.code,{children:`StyleConfig`}),` `,_jsx(_components.strong,{children:`derived from the palette`}),` (replacing the legacy `,_jsx(_components.code,{children:`glamour.WithStandardStyle(\"dark\")`}),`), so markdown and code-block colors share the UI’s hues. Syntax highlighting via `,_jsx(_components.strong,{children:`chroma`}),` and a `,_jsx(_components.strong,{children:`language chip`}),` above each code block. The document is rendered `,_jsx(_components.strong,{children:`whole`}),` (not block by block), so reference links, footnotes, and paragraph spacing all resolve correctly.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`color-profile-and-graceful-degradation`,children:`Color profile and graceful degradation`}),`\n`,_jsxs(_components.p,{children:[`ChatCLI detects the terminal’s capability and degrades gracefully. In pipes, CI, or `,_jsx(_components.code,{children:`dumb`}),` terminals, output becomes `,_jsx(_components.strong,{children:`clean plain text with no color codes`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Profile`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TrueColor`})}),_jsx(_components.td,{children:`24-bit terminal`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ANSI256`})}),_jsx(_components.td,{children:`8-bit (256-color) terminal`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ANSI`})}),_jsx(_components.td,{children:`classic 16-color terminal (SGR 30–37 / 90–97)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ASCII`})}),_jsxs(_components.td,{children:[`no color — `,_jsx(_components.code,{children:`NO_COLOR`}),`, `,_jsx(_components.code,{children:`dumb`}),`, pipe/redirect`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Detection honors the usual signals (`,_jsx(_components.code,{children:`NO_COLOR`}),`, `,_jsx(_components.code,{children:`CLICOLOR_FORCE`}),`, `,_jsx(_components.code,{children:`TERM`}),`, `,_jsx(_components.code,{children:`COLORTERM`}),`). The `,_jsx(_components.code,{children:`dark`}),` theme keeps the `,_jsx(_components.strong,{children:`ANSI16 = 10`}),` index for green, so 16-color terminals are identical to legacy behavior.`]}),`\n`,_jsxs(_components.p,{children:[`The startup banner uses the profile too. On a truecolor terminal its block letters are painted column by column with a left-to-right gradient: coral through orange to amber on the `,_jsx(_components.code,{children:`dark`}),` and `,_jsx(_components.code,{children:`light`}),` themes, and from the theme’s Primary to its Secondary on every other theme. A 256-color terminal gets the nearest palette entry per column. A 16-color terminal, `,_jsx(_components.code,{children:`NO_COLOR`}),` and piped output keep the single-color banner.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`persistence`,children:`Persistence`}),`\n`,_jsxs(_components.p,{children:[`A runtime switch applies only to the `,_jsx(_components.strong,{children:`current process`}),`. To pin a default across sessions, add to your `,_jsx(_components.code,{children:`.env`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`CHATCLI_THEME`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`light`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The mutator prints this hint right after each switch. ChatCLI `,_jsxs(_components.strong,{children:[`never rewrites your `,_jsx(_components.code,{children:`.env`})]}),` on its own. See `,_jsx(_components.a,{href:`/reference/environment-variables`,children:_jsx(_components.code,{children:`CHATCLI_THEME`})}),` in the environment-variable reference.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Parallel change in v1.125: the chat reply envelope gained a `,_jsx(_components.strong,{children:`footer`}),` with per-turn cost and context usage, and spinners were unified into a single themed braille spinner, shown only when a terminal is present.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Theme System (Colors)","sidebarTitle":"Theme System","description":"ChatCLI's unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.","icon":"palette","href":"/usage/ui-theme"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Switch themes at runtime","slug":"switch-themes-at-runtime","depth":2,"children":[]},{"title":"Available themes","slug":"available-themes","depth":2,"children":[]},{"title":"Semantic palette","slug":"semantic-palette","depth":2,"children":[]},{"title":"The input line and the completion dropdown","slug":"the-input-line-and-the-completion-dropdown","depth":2,"children":[]},{"title":"Legibility contract","slug":"legibility-contract","depth":2,"children":[]},{"title":"Themed markdown","slug":"themed-markdown","depth":2,"children":[]},{"title":"Color profile and graceful degradation","slug":"color-profile-and-graceful-degradation","depth":2,"children":[]},{"title":"Persistence","slug":"persistence","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/encom/03414b2589eb02b8/flags.js","/_mintlify/custom/encom/f19b212850d023b6/sidebar-focus.js"],"subdomain":"encom","siteName":"ChatCLI","title":"Theme System (Colors) - ChatCLI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/usage/ui-theme","matchLevel":0},"pt-BR":{"href":"/pt/usage/ui-theme","matchLevel":1}}},"lastModified":"2026-10-09T21:28:53.521Z","originalFileLocation":"usage/ui-theme.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"ChatCLI\u0026#x27;s unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ChatCLI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Theme System (Colors) - ChatCLI\">\u003cmeta data-mint-head property=\"og:description\" content=\"ChatCLI\u0026#x27;s unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ChatCLI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://chatcli.edilsonfreitas.com/usage/ui-theme\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://encom.mintlify.app/_mintlify/api/og/v2?division=Using+ChatCLI\u0026amp;title=Theme+System+%28Colors%29\u0026amp;description=ChatCLI%27s+unified+color+palette%3A+12+themes+%28dark%2C+light%2C+grafite+%2B+9+community+palettes%29%2C+themed+markdown%2C+and+graceful+degradation+by+terminal+capability.\u0026amp;theme=731a6fec9091f5f0b8feb4c9\u0026amp;signature=a20394f9e276d3e0ed0d6d42969727ecec15e6b194fd6defd55afd209a72f35d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Theme System (Colors) - ChatCLI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"ChatCLI\u0026#x27;s unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://encom.mintlify.app/_mintlify/api/og/v2?division=Using+ChatCLI\u0026amp;title=Theme+System+%28Colors%29\u0026amp;description=ChatCLI%27s+unified+color+palette%3A+12+themes+%28dark%2C+light%2C+grafite+%2B+9+community+palettes%29%2C+themed+markdown%2C+and+graceful+degradation+by+terminal+capability.\u0026amp;theme=731a6fec9091f5f0b8feb4c9\u0026amp;signature=a20394f9e276d3e0ed0d6d42969727ecec15e6b194fd6defd55afd209a72f35d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/encom/ilreks3OQttPbvib/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ChatCLI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F766E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://chatcli.edilsonfreitas.com/usage/ui-theme\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/usage/ui-theme.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://chatcli.edilsonfreitas.com/usage/ui-theme\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://chatcli.edilsonfreitas.com/pt/usage/ui-theme\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://chatcli.edilsonfreitas.com/usage/ui-theme\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://chatcli.edilsonfreitas.com/#organization\",\"name\":\"ChatCLI\",\"url\":\"https://chatcli.edilsonfreitas.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/encom/Rcdb5Pr5hpjwN46r/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Rcdb5Pr5hpjwN46r\u0026q=85\u0026s=965a0feb9bd2f65a11b3c486e2488101\"}},{\"@type\":\"WebSite\",\"@id\":\"https://chatcli.edilsonfreitas.com#website\",\"name\":\"ChatCLI\",\"url\":\"https://chatcli.edilsonfreitas.com\",\"publisher\":{\"@id\":\"https://chatcli.edilsonfreitas.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme#webpage\",\"url\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme\",\"name\":\"Theme System (Colors)\",\"description\":\"ChatCLI's unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\",\"dateModified\":\"2026-10-09T21:28:53.521Z\",\"isPartOf\":{\"@id\":\"https://chatcli.edilsonfreitas.com#website\"},\"breadcrumb\":{\"@id\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https://chatcli.edilsonfreitas.com/usage/basic-usage\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using ChatCLI\",\"item\":\"https://chatcli.edilsonfreitas.com/usage/basic-usage\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Theme System (Colors)\",\"item\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme#article\",\"headline\":\"Theme System (Colors)\",\"name\":\"Theme System (Colors)\",\"description\":\"ChatCLI's unified color palette: 12 themes (dark, light, grafite + 9 community palettes), themed markdown, and graceful degradation by terminal capability.\",\"url\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme\",\"mainEntityOfPage\":{\"@id\":\"https://chatcli.edilsonfreitas.com/usage/ui-theme#webpage\"},\"dateModified\":\"2026-10-09T21:28:53.521Z\",\"publisher\":{\"@id\":\"https://chatcli.edilsonfreitas.com/#organization\"},\"isPartOf\":{\"@id\":\"https://chatcli.edilsonfreitas.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ChatCLI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ChatCLI","nav":{"global":null,"languages":[{"language":"en","default":true,"groups":[{"group":"Get started","pages":[{"title":"ChatCLI","sidebarTitle":"Overview","icon":"house","mode":"wide","href":""},{"title":"Quickstart","icon":"rocket","href":"/start/quickstart"},{"title":"Installation and Configuration","sidebarTitle":"Installation","icon":"download","href":"/start/installation"},{"title":"Deploy with Docker and Kubernetes","sidebarTitle":"Docker \u0026 Kubernetes","icon":"docker","href":"/start/docker-deployment"},{"title":"Auto-Update","sidebarTitle":"Auto-Update","icon":"arrows-rotate","href":"/start/auto-update"},{"title":"Configuration Migration","sidebarTitle":"Config Migration","icon":"arrows-rotate","href":"/start/config-migration"}]},{"group":"Documentation","pages":[{"group":"Using ChatCLI","icon":"terminal","pages":[{"title":"Basic Usage and Main Commands","sidebarTitle":"Basic Usage","icon":"terminal","href":"/usage/basic-usage"},{"title":"Adding Context (@ Commands)","sidebarTitle":"Context Commands","icon":"at","href":"/usage/context-commands"},{"title":"Agent Mode: Task Execution","sidebarTitle":"Agent Mode (/agent)","icon":"robot","href":"/usage/agent-mode"},{"title":"Coder Mode (/coder)","sidebarTitle":"Coder Mode (/coder)","icon":"code","href":"/usage/coder-mode"},{"title":"Non-Interactive Mode (One-Shot)","sidebarTitle":"One-Shot Mode","icon":"terminal","href":"/usage/non-interactive-mode"},{"title":"Conversation Control","sidebarTitle":"Conversation Control","icon":"clock-rotate-left","href":"/usage/conversation-control"},{"title":"Multiline Input","sidebarTitle":"Multiline Input","icon":"bars-staggered","href":"/usage/multiline-input"},{"title":"Real-Time Streaming","sidebarTitle":"Streaming","icon":"bolt","href":"/usage/streaming"},{"title":"Image Input (Vision)","sidebarTitle":"Image Input (Vision)","icon":"eye","href":"/usage/vision-input"},{"title":"PDF Input","sidebarTitle":"PDF Input","icon":"file-pdf","href":"/usage/pdf-input"},{"title":"Web UI","sidebarTitle":"Web UI","icon":"browser","href":"/usage/web-ui"},{"title":"Live Dashboard","sidebarTitle":"Live Dashboard","icon":"chart-network","href":"/usage/live-dashboard"},{"title":"Compact UI Mode","sidebarTitle":"Compact UI","description":"Minimalist display mode for coder mode: inline tool indicators, zero verbosity.","icon":"minimize","href":"/usage/compact-ui"},{"title":"Theme System (Colors)","sidebarTitle":"Theme System","icon":"palette","href":"/usage/ui-theme"},{"title":"Internationalization (i18n)","sidebarTitle":"Internationalization","description":"ChatCLI supports multiple languages with automatic detection and intelligent fallback.","icon":"language","href":"/usage/i18n"}]},{"group":"Coder","icon":"code","pages":[{"title":"Plugin @coder","sidebarTitle":"Plugin @coder","icon":"hammer","href":"/coder/coder-plugin"},{"title":"Atomic Tools (@read, @search, @tree, @todo)","sidebarTitle":"Atomic Tools","icon":"wand-magic-sparkles","href":"/coder/atomic-tools"},{"title":"Coder Mode Security (Governance)","sidebarTitle":"Coder Mode Security (Governance)","icon":"shield-halved","href":"/coder/coder-security"},{"title":"Enhanced Permissions System","sidebarTitle":"Permissions","icon":"shield-halved","href":"/coder/enhanced-permissions"},{"title":"Git Worktrees","sidebarTitle":"Git Worktrees","icon":"code-branch","href":"/coder/worktrees"},{"title":"File Staleness Detection","sidebarTitle":"File Staleness","icon":"eye","href":"/coder/file-staleness"},{"title":"JSON Recovery","sidebarTitle":"JSON Recovery","icon":"screwdriver-wrench","href":"/coder/json-recovery"},{"title":"LSP Diagnostics","sidebarTitle":"LSP Diagnostics","icon":"stethoscope","href":"/coder/lsp-diagnostics"},{"title":"Interactive Questions (ask_user)","sidebarTitle":"Interactive Questions","icon":"list-check","href":"/coder/interactive-ask"},{"title":"Live Agent Progress","sidebarTitle":"Live Progress","icon":"chart-bar","href":"/coder/agent-progress-ui"}]},{"group":"Agents","icon":"robot","pages":[{"title":"Native Tool Use (Structured API)","sidebarTitle":"Native Tool Use","icon":"wrench","href":"/agents/native-tool-use"},{"title":"Agentic AI and Plugin System","sidebarTitle":"Agentic AI \u0026 Plugins","icon":"puzzle-piece","href":"/agents/agentic-plugins"},{"title":"Customizable Agents (Personas)","sidebarTitle":"Customizable Agents","icon":"user-gear","href":"/agents/customizable-agents"},{"title":"Multi-Agent Orchestration","sidebarTitle":"Multi-Agent","icon":"users","href":"/agents/multi-agent-orchestration"},{"title":"Agent Squad","sidebarTitle":"Agent Squad","icon":"people-group","href":"/agents/agent-squad"},{"title":"Task Graph","sidebarTitle":"Task Graph","icon":"diagram-project","href":"/agents/task-graph"},{"title":"Subagent Delegation","sidebarTitle":"Subagent Delegate","icon":"diagram-project","href":"/agents/subagent-delegation"},{"title":"Mixture-of-Agents (MoA)","sidebarTitle":"Mixture-of-Agents","icon":"layer-group","href":"/agents/mixture-of-agents"},{"title":"Model Routing (@model)","sidebarTitle":"Model Routing","icon":"shuffle","href":"/agents/model-routing"},{"title":"Agent Park \u0026 Resume — Non-blocking suspension","sidebarTitle":"Park \u0026 Resume","icon":"circle-pause","href":"/agents/agent-park"},{"group":"Harness (7 patterns + evals)","icon":"wand-magic-sparkles","pages":[{"title":"Agent Harness/Quality Pipeline","sidebarTitle":"Overview","icon":"sparkles","href":"/agents/harness/overview"},{"title":"#1 ReAct — Reason + Act","sidebarTitle":"ReAct","icon":"rotate","href":"/agents/harness/react"},{"title":"#2 Plan-and-Solve / ReWOO","sidebarTitle":"Plan-and-Solve","icon":"list-check","href":"/agents/harness/plan-and-solve"},{"title":"#3 Reflexion — Learn from Failures","sidebarTitle":"Reflexion","icon":"lightbulb","href":"/agents/harness/reflexion"},{"title":"#4 RAG + HyDE — Semantic Retrieval","sidebarTitle":"RAG + HyDE","icon":"database","href":"/agents/harness/rag-hyde"},{"title":"#5 Self-Refine — Critique and Rewrite","sidebarTitle":"Self-Refine","icon":"wand-magic-sparkles","href":"/agents/harness/self-refine"},{"title":"#6 Chain-of-Verification (CoVe)","sidebarTitle":"CoVe","icon":"check-double","href":"/agents/harness/cove"},{"title":"#7 Cross-Provider Reasoning Backbone","sidebarTitle":"Reasoning Backbone","icon":"brain-circuit","href":"/agents/harness/reasoning-backbone"},{"title":"Configuration — Env, Slashes and /config","sidebarTitle":"Configuration","icon":"sliders","href":"/agents/harness/configuration"},{"title":"Evals: measuring ChatCLI","sidebarTitle":"Evals","icon":"flask","href":"/agents/harness/evals"}]}]},{"group":"Context \u0026 memory","icon":"layer-group","pages":[{"title":"LongMemEval: how well chatcli remembers","sidebarTitle":"LongMemEval results","icon":"chart-simple","href":"/context/longmemeval"},{"title":"Persistent Context Management","sidebarTitle":"Contexts (/context)","icon":"database","href":"/context/persistent-context"},{"title":"Knowledge Base (keyless RAG)","sidebarTitle":"Knowledge Base","icon":"book-open","href":"/context/knowledge-base"},{"title":"Bootstrap and Persistent Memory","sidebarTitle":"Bootstrap and Memory","icon":"memory","href":"/context/bootstrap-memory"},{"title":"Path-Specific Rules","sidebarTitle":"Path Rules","icon":"folder-tree","href":"/context/path-rules"},{"title":"Filtering with .chatignore","sidebarTitle":".chatignore","icon":"filter","href":"/context/chatignore"},{"group":"Sessions","icon":"clock-rotate-left","pages":[{"title":"Session Management","sidebarTitle":"Sessions","icon":"clock-rotate-left","href":"/context/session-management"},{"title":"Conversation Search (@session)","sidebarTitle":"Conversation Search","icon":"magnifying-glass","href":"/context/session-search"},{"title":"Session Workspace (Scratch Dir)","sidebarTitle":"Session Workspace","icon":"folder-tree","href":"/context/session-workspace"},{"title":"Trajectory Export (ShareGPT)","sidebarTitle":"Export Trajectory","icon":"file-export","href":"/context/trajectory-export"}]},{"group":"Token efficiency","icon":"gauge-high","pages":[{"title":"Token Efficiency","sidebarTitle":"Token Efficiency","icon":"gauge-high","href":"/context/token-efficiency"},{"title":"Context Compression (CCR)","sidebarTitle":"Context Compression","icon":"file-zipper","href":"/context/context-compression"},{"title":"Chat Prefix Curation","sidebarTitle":"Prefix Curation","icon":"scissors","href":"/context/prefix-curation"},{"title":"Tool Result Management","sidebarTitle":"Tool Results","icon":"database","href":"/context/tool-result-management"},{"title":"Context Recovery","sidebarTitle":"Context Recovery","icon":"life-ring","href":"/context/context-recovery"}]}]},{"group":"Models \u0026 providers","icon":"shuffle","pages":[{"title":"Supported AI Models","sidebarTitle":"Supported Models","icon":"microchip","href":"/providers/supported-models"},{"title":"OAuth Authentication","sidebarTitle":"OAuth Authentication","icon":"key","href":"/providers/oauth-authentication"},{"title":"AWS Bedrock","sidebarTitle":"AWS Bedrock","icon":"aws","href":"/providers/bedrock"},{"title":"Devin Provider — the local Devin CLI as an LLM transport","sidebarTitle":"Devin Provider","icon":"robot","href":"/providers/devin-provider"},{"title":"Provider Fallback","sidebarTitle":"Provider Fallback","icon":"rotate","href":"/providers/provider-fallback"},{"title":"Rate Limits — provider limit visibility","sidebarTitle":"Rate Limits","icon":"gauge-high","href":"/providers/rate-limits"},{"title":"Cost Tracking","sidebarTitle":"Cost Tracking","icon":"money-bill-trend-up","href":"/providers/cost-tracking"}]},{"group":"Tools","icon":"toolbox","pages":[{"title":"WebFetch \u0026 WebSearch","sidebarTitle":"Web Tools","icon":"globe","href":"/tools/web-tools"},{"title":"Browser Automation (@browser)","sidebarTitle":"Browser Automation","icon":"chrome","href":"/tools/browser-automation"},{"title":"API Explorer (@api-explorer)","sidebarTitle":"API Explorer","icon":"compass","href":"/tools/api-explorer"},{"title":"Git Forge (@forge)","sidebarTitle":"Git Forge","icon":"code-pull-request","href":"/tools/git-forge"},{"title":"Image Generation \u0026 Editing (@image)","sidebarTitle":"Image Generation \u0026 Editing","icon":"image","href":"/tools/image-generation"},{"title":"Diagrams (@diagram)","sidebarTitle":"Diagrams","icon":"diagram-project","href":"/tools/diagram"},{"title":"Interactive graph (@graphview)","sidebarTitle":"Interactive graph","icon":"circle-nodes","href":"/tools/graphview"},{"title":"Image Tags (@registry-tags)","sidebarTitle":"Registry Tags","icon":"tags","href":"/tools/registry-tags"},{"title":"Builtin Skills","sidebarTitle":"Builtin Skills","icon":"boxes-stacked","href":"/tools/builtin-skills"},{"title":"Scheduler (Chronos) — Durable scheduling","sidebarTitle":"Scheduler","icon":"clock","href":"/tools/scheduler"}]},{"group":"Extensions","icon":"plug","pages":[{"title":"Plugin System","sidebarTitle":"Plugin System","icon":"plug","href":"/extensions/plugin-system"},{"title":"Provider Plugins","sidebarTitle":"Provider Plugins","icon":"plug-circle-bolt","href":"/extensions/provider-plugins"},{"title":"MCP (Model Context Protocol)","sidebarTitle":"Connect MCP Servers","icon":"link","href":"/extensions/mcp-integration"},{"title":"Skill Registry","sidebarTitle":"Skill Registry","icon":"store","tag":"NEW","href":"/extensions/skill-registry"},{"title":"Skill Authoring (@skill)","sidebarTitle":"Skill Authoring","icon":"wand-magic-sparkles","href":"/extensions/skill-authoring"},{"title":"Slash Commands","sidebarTitle":"Slash Commands","icon":"terminal","tag":"NEW","href":"/extensions/slash-commands"},{"title":"Hooks System","sidebarTitle":"Hooks","icon":"webhook","href":"/extensions/hooks-system"}]},{"group":"Channels \u0026 gateway","icon":"comments","pages":[{"title":"Chat gateway","sidebarTitle":"Chat gateway","icon":"messages","href":"/gateway/chat-gateway"},{"title":"Telegram","icon":"telegram","href":"/gateway/telegram"},{"title":"Slack","icon":"slack","href":"/gateway/slack"},{"title":"Discord","icon":"discord","href":"/gateway/discord"},{"title":"WhatsApp","icon":"whatsapp","href":"/gateway/whatsapp"},{"title":"Webhook","icon":"webhook","href":"/gateway/webhook"},{"title":"Conversation Hub — conversation continuity across channels","sidebarTitle":"Conversation Hub","icon":"share-nodes","href":"/gateway/conversation-hub"},{"title":"MCP Channels","sidebarTitle":"MCP Channels","icon":"tower-broadcast","href":"/gateway/mcp-channels"},{"title":"Proactive Messaging (@send)","sidebarTitle":"Proactive Messaging","icon":"paper-plane","href":"/gateway/proactive-messaging"},{"title":"Text-to-Speech \u0026 Gateway Voice","sidebarTitle":"Text-to-Speech","icon":"volume-high","href":"/gateway/text-to-speech"},{"title":"Gateway Voice Replies","sidebarTitle":"Voice Replies","icon":"microphone","href":"/gateway/voice-replies"}]},{"group":"Server \u0026 IDE","icon":"server","pages":[{"title":"Server Mode (chatcli server)","sidebarTitle":"Server Mode","icon":"server","href":"/server/server-mode"},{"title":"Remote Connection (chatcli connect)","sidebarTitle":"Remote Connection","icon":"plug","href":"/server/remote-connect"},{"title":"MCP Server — ChatCLI as a server (and ACP)","sidebarTitle":"ChatCLI MCP Server","icon":"server","href":"/server/mcp-server"},{"title":"ACP — ChatCLI inside your IDE","sidebarTitle":"ACP (IDE Agent)","icon":"plug-circle-bolt","href":"/server/acp"}]},{"group":"Kubernetes \u0026 AIOps","icon":"dharmachakra","pages":[{"title":"Kubernetes Monitoring (K8s Watcher)","sidebarTitle":"K8s Watcher","icon":"binoculars","href":"/kubernetes/k8s-watcher"},{"title":"Kubernetes Operator (AIOps)","sidebarTitle":"K8s Operator","icon":"dharmachakra","href":"/kubernetes/k8s-operator"},{"title":"AIOps Platform (Deep-Dive)","sidebarTitle":"AIOps Platform","icon":"brain","href":"/kubernetes/aiops-platform"},{"title":"ArtifactHub","sidebarTitle":"ArtifactHub","icon":"cube","href":"/kubernetes/artifacthub"},{"group":"AIOps platform","icon":"siren-on","pages":[{"title":"Incident Lifecycle","sidebarTitle":"Lifecycle","icon":"arrows-spin","href":"/kubernetes/aiops/incident-lifecycle"},{"title":"Notifications and Escalation","sidebarTitle":"Notifications","icon":"bell","href":"/kubernetes/aiops/notifications"},{"title":"SLOs and SLAs","sidebarTitle":"SLOs and SLAs","icon":"gauge-high","href":"/kubernetes/aiops/slo-sla"},{"title":"Approval Workflow","sidebarTitle":"Approvals","icon":"shield-check","href":"/kubernetes/aiops/approval-workflow"},{"title":"AI-Powered Decision Engine","sidebarTitle":"Decision Engine","icon":"brain-circuit","href":"/kubernetes/aiops/decision-engine"},{"title":"Multi-Cluster Federation","sidebarTitle":"Multi-Cluster Federation","icon":"network-wired","href":"/kubernetes/aiops/federation"},{"title":"Chaos Engineering","sidebarTitle":"Chaos Engineering","icon":"explosion","href":"/kubernetes/aiops/chaos-engineering"},{"title":"Audit and Compliance","sidebarTitle":"Audit and Compliance","icon":"clipboard-check","href":"/kubernetes/aiops/audit-compliance"},{"title":"Capacity Planning and Cost Attribution","sidebarTitle":"Capacity \u0026 Costs","icon":"chart-line","href":"/kubernetes/aiops/capacity-cost"},{"title":"Web Dashboard and Grafana","sidebarTitle":"Dashboard \u0026 Grafana","icon":"chart-mixed","href":"/kubernetes/aiops/web-dashboard"}]}]},{"group":"Security","icon":"shield-halved","pages":[{"title":"Enterprise Security","sidebarTitle":"Security","icon":"shield-halved","href":"/security/overview"},{"title":"Encryption at Rest","sidebarTitle":"Encryption at Rest","icon":"lock","href":"/security/encryption-at-rest"},{"title":"Security Hardening Upgrade Guide","sidebarTitle":"Hardening upgrade","icon":"shield-exclamation","href":"/security/hardening-upgrade"},{"title":"Vulnerability Scan (@osv)","sidebarTitle":"Dependency Scan","icon":"shield-halved","href":"/security/dependency-scan"}]},{"group":"Cookbook","icon":"kitchen-set","pages":[{"title":"Recipe: Safe Refactoring with Agent Mode","sidebarTitle":"Refactoring with Agent","icon":"screwdriver-wrench","href":"/cookbook/agent-refactoring"},{"title":"Fix tests with /coder","sidebarTitle":"Fix tests with /coder","icon":"vial","href":"/cookbook/coder-fix-tests"},{"title":"Recipe: Catching a Regression with Evals","sidebarTitle":"Catching a Regression with Evals","icon":"flask","href":"/cookbook/eval-regression"},{"title":"Recipe: Debugging Error Logs with Pipes","sidebarTitle":"Debug Error Logs","icon":"bug","href":"/cookbook/debugging-logs-with-pipes"},{"title":"One-Shot, Pipes, and Automation","sidebarTitle":"One-Shot and Pipes","icon":"wand-magic-sparkles","href":"/cookbook/oneshot-pipelines"},{"title":"Recipe: K8s Monitoring with AI","sidebarTitle":"K8s Monitoring","icon":"chart-line","href":"/cookbook/k8s-monitoring"},{"title":"Recipe: Managing Multiple Projects with Contexts and Sessions","sidebarTitle":"Multi-Project Workflow","icon":"folder-tree","href":"/cookbook/multi-project-workflow"},{"title":"Recipe: Understanding a Code Project","sidebarTitle":"Understand a New Project","icon":"rocket","href":"/cookbook/onboarding-new-project"},{"title":"Recipe: Generating Release Notes with @git","sidebarTitle":"Generate Release Notes","icon":"scroll","href":"/cookbook/release-notes-automation"},{"title":"Recipe: Remote Server for Teams","sidebarTitle":"Team Server","icon":"network-wired","href":"/cookbook/remote-server-setup"},{"title":"AIOps: Complete Production Setup","sidebarTitle":"AIOps Production Setup","icon":"rocket","href":"/cookbook/aiops-production-setup"},{"title":"Recipe: Scaling Instances","sidebarTitle":"Scaling Instances","icon":"arrows-left-right","href":"/cookbook/scaling-instances"},{"title":"AIOps: Incident Response Guide","sidebarTitle":"Incident Response","icon":"siren-on","href":"/cookbook/aiops-incident-response"},{"title":"Production Security Hardening","sidebarTitle":"Security Hardening","icon":"lock","href":"/cookbook/security-hardening-production"},{"title":"Scheduler automation recipes","sidebarTitle":"Scheduler: automations","icon":"book-open","href":"/cookbook/scheduler-automations"},{"title":"Recipe: Cross-Layer Debugging with 3 Knowledge Bases","sidebarTitle":"Cross-Layer Debugging","icon":"diagram-project","href":"/cookbook/cross-layer-knowledge-debug"}]},{"group":"Reference","icon":"rectangle-list","pages":[{"title":"Complete Command Reference","sidebarTitle":"Command Reference","icon":"rectangle-list","href":"/reference/command-reference"},{"title":"Environment Variables","sidebarTitle":"Environment Variables","icon":"sliders","href":"/reference/environment-variables"},{"title":"Configuration Reference (.env)","sidebarTitle":"Configuration (.env)","icon":"gear","href":"/reference/configuration"},{"title":"MCP Configuration (mcp_servers.json)","sidebarTitle":"MCP Config","icon":"gear","href":"/reference/mcp-config"},{"title":"Architecture and Code Structure","sidebarTitle":"Architecture","icon":"sitemap","href":"/reference/architecture"},{"group":"REST API","icon":"code","pages":[{"group":"Introduction","icon":"compass","pages":[{"title":"API Overview","sidebarTitle":"Overview","icon":"compass","href":"/reference/api/overview"}]},{"group":"Incidents","icon":"siren-on","pages":[{"title":"List Incidents","openapi":"GET /incidents","icon":"list","href":"/reference/api/list-incidents"},{"title":"Get Incident","openapi":"GET /incidents/{name}","icon":"magnifying-glass","href":"/reference/api/get-incident"},{"title":"Acknowledge Incident","openapi":"POST /incidents/{name}/acknowledge","icon":"check","href":"/reference/api/acknowledge-incident"},{"title":"Resolve Incident","openapi":"POST /incidents/{name}/resolve","icon":"circle-check","href":"/reference/api/resolve-incident"},{"title":"Snooze Incident","openapi":"POST /incidents/{name}/snooze","icon":"clock","href":"/reference/api/snooze-incident"},{"title":"Get Incident Timeline","openapi":"GET /incidents/{name}/timeline","icon":"timeline","href":"/reference/api/get-timeline"},{"title":"Get Incident Remediation","openapi":"GET /incidents/{name}/remediation","icon":"wrench","href":"/reference/api/get-remediation"}]},{"group":"AI Insights","icon":"lightbulb","pages":[{"title":"List AI Insights","openapi":"GET /aiinsights","icon":"list","href":"/reference/api/list-aiinsights"},{"title":"Get AI Insight","openapi":"GET /aiinsights/{name}","icon":"lightbulb","href":"/reference/api/get-aiinsight"}]},{"group":"Remediations","icon":"wrench","pages":[{"title":"List Remediations","openapi":"GET /remediations","icon":"list","href":"/reference/api/list-remediations"},{"title":"Get Remediation Plan","openapi":"GET /remediations/{name}","icon":"wrench","href":"/reference/api/get-remediation-detail"}]},{"group":"Runbooks","icon":"book-open","pages":[{"title":"List Runbooks","openapi":"GET /runbooks","icon":"list","href":"/reference/api/list-runbooks"},{"title":"Get Runbook","openapi":"GET /runbooks/{name}","icon":"book-open","href":"/reference/api/get-runbook"},{"title":"Create Runbook","openapi":"POST /runbooks","icon":"plus","href":"/reference/api/create-runbook"},{"title":"Update Runbook","openapi":"PUT /runbooks/{name}","icon":"pen-to-square","href":"/reference/api/update-runbook"},{"title":"Delete Runbook","openapi":"DELETE /runbooks/{name}","icon":"trash","href":"/reference/api/delete-runbook"}]},{"group":"Approvals","icon":"circle-check","pages":[{"title":"List Approvals","openapi":"GET /approvals","icon":"list","href":"/reference/api/list-approvals"},{"title":"Get Approval","openapi":"GET /approvals/{name}","icon":"magnifying-glass","href":"/reference/api/get-approval"},{"title":"Approve Request","openapi":"POST /approvals/{name}/approve","icon":"circle-check","href":"/reference/api/approve"},{"title":"Reject Request","openapi":"POST /approvals/{name}/reject","icon":"circle-xmark","href":"/reference/api/reject"}]},{"group":"SLOs","icon":"gauge","pages":[{"title":"List SLOs","openapi":"GET /slos","icon":"list","href":"/reference/api/list-slos"},{"title":"Get SLO","openapi":"GET /slos/{name}","icon":"gauge","href":"/reference/api/get-slo"},{"title":"Get SLO Error Budget","openapi":"GET /slos/{name}/budget","icon":"coins","href":"/reference/api/get-slo-budget"}]},{"group":"PostMortems","icon":"magnifying-glass-chart","pages":[{"title":"List PostMortems","openapi":"GET /postmortems","icon":"list","href":"/reference/api/list-postmortems"},{"title":"Get PostMortem","openapi":"GET /postmortems/{name}","icon":"magnifying-glass","href":"/reference/api/get-postmortem"},{"title":"Review PostMortem","openapi":"POST /postmortems/{name}/review","icon":"user-pen","href":"/reference/api/review-postmortem"},{"title":"Developer Feedback","openapi":"POST /postmortems/{name}/feedback","icon":"comment","href":"/reference/api/feedback-postmortem"},{"title":"Acknowledge Human Action","openapi":"POST /postmortems/{name}/ack-human-action","icon":"user-check","href":"/reference/api/ack-human-action-postmortem"},{"title":"Close PostMortem","openapi":"POST /postmortems/{name}/close","icon":"lock","href":"/reference/api/close-postmortem"}]},{"group":"Analytics","icon":"chart-line","pages":[{"title":"Analytics Summary","openapi":"GET /analytics/summary","icon":"chart-line","href":"/reference/api/analytics-summary"},{"title":"Analytics MTTR","openapi":"GET /analytics/mttr","icon":"stopwatch","href":"/reference/api/analytics-mttr"},{"title":"Analytics MTTD","openapi":"GET /analytics/mttd","icon":"stopwatch","href":"/reference/api/analytics-mttd"},{"title":"Analytics Trends","openapi":"GET /analytics/trends","icon":"arrow-trend-up","href":"/reference/api/analytics-trends"},{"title":"Analytics Top Resources","openapi":"GET /analytics/top-resources","icon":"ranking-star","href":"/reference/api/analytics-top-resources"},{"title":"Analytics Remediation Stats","openapi":"GET /analytics/remediation-stats","icon":"chart-pie","href":"/reference/api/analytics-remediation-stats"},{"title":"Analytics Compliance","openapi":"GET /analytics/compliance","icon":"clipboard-check","href":"/reference/api/analytics-compliance"},{"title":"Analytics Capacity","openapi":"GET /analytics/capacity","icon":"server","href":"/reference/api/analytics-capacity"},{"title":"Analytics Cost","openapi":"GET /analytics/cost","icon":"coins","href":"/reference/api/analytics-cost"}]},{"group":"Clusters","icon":"diagram-project","pages":[{"title":"List Clusters","openapi":"GET /clusters","icon":"list","href":"/reference/api/list-clusters"},{"title":"Get Cluster","openapi":"GET /clusters/{name}","icon":"diagram-project","href":"/reference/api/get-cluster"},{"title":"List Policies","openapi":"GET /policies/{kind}","icon":"list-check","href":"/reference/api/list-policies"},{"title":"Get Policy","openapi":"GET /policies/{kind}/{name}","icon":"file-lines","href":"/reference/api/get-policy"},{"title":"Global Cluster Status","openapi":"GET /clusters/global-status","icon":"globe","href":"/reference/api/global-status"}]},{"group":"Federation","icon":"network-wired","pages":[{"title":"Federation Status","openapi":"GET /federation/status","icon":"network-wired","href":"/reference/api/federation-status"},{"title":"Federation Clusters","openapi":"GET /federation/clusters","icon":"list","href":"/reference/api/federation-clusters"},{"title":"Federation Correlations","openapi":"GET /federation/correlations","icon":"diagram-project","href":"/reference/api/federation-correlations"}]},{"group":"Audit","icon":"clipboard-check","pages":[{"title":"List Audit Events","openapi":"GET /audit","icon":"list","href":"/reference/api/list-audit"},{"title":"Export Audit","openapi":"GET /audit/export","icon":"file-export","href":"/reference/api/export-audit"}]},{"group":"Health","icon":"heart-pulse","pages":[{"title":"Health Endpoints","openapi":"GET /healthz","icon":"heart-pulse","href":"/reference/api/health-endpoints"}]}]}]},{"group":"Releases","icon":"rocket","tag":"v1.223.0","pages":[{"title":"Release notes","icon":"tag","href":"/releases"},{"title":"v1.223.0","tag":"Latest","href":"/releases/1.223.0"},{"title":"v1.222.0","href":"/releases/1.222.0"},{"title":"v1.221.3","href":"/releases/1.221.3"},{"title":"v1.221.2","href":"/releases/1.221.2"},{"title":"v1.221.1","href":"/releases/1.221.1"},{"title":"v1.221.0","href":"/releases/1.221.0"},{"title":"v1.220.0","href":"/releases/1.220.0"},{"title":"v1.219.0","href":"/releases/1.219.0"},{"title":"v1.218.0","href":"/releases/1.218.0"},{"title":"v1.217.0","href":"/releases/1.217.0"}]},{"group":"Help","icon":"life-ring","pages":[{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","icon":"life-ring","href":"/help/troubleshooting"},{"title":"Contributing to ChatCLI","sidebarTitle":"Contributing","icon":"code-pull-request","href":"/help/contributing"}]}]}]},{"language":"pt-BR","footer":{"socials":{"github":"https://github.com/diillson/chatcli","x":"https://x.com/diillson"},"links":[{"header":"Recursos","items":[{"label":"Documentação","href":"/pt"},{"label":"Cookbook","href":"/pt/cookbook/agent-refactoring"},{"label":"API Reference","href":"/pt/reference/api/overview"}]},{"header":"Comunidade","items":[{"label":"GitHub","href":"https://github.com/diillson/chatcli"},{"label":"Issues","href":"https://github.com/diillson/chatcli/issues"},{"label":"Discussions","href":"https://github.com/diillson/chatcli/discussions"},{"label":"Releases","href":"https://github.com/diillson/chatcli/releases"}]},{"header":"Distribuição","items":[{"label":"ArtifactHub","href":"https://artifacthub.io/packages/search?ts_query_web=chatcli"},{"label":"Helm Charts","href":"https://artifacthub.io/packages/helm/chatcli/chatcli"},{"label":"Container Registry","href":"https://github.com/diillson/chatcli/pkgs/container/chatcli"}]}]},"navbar":{"links":[{"href":"/pt/cookbook/agent-refactoring","label":"Cookbook"},{"href":"/pt/releases","label":"Releases"},{"href":"https://github.com/diillson/chatcli","type":"github"}],"primary":{"type":"button","label":"Instalar","href":"/pt/start/installation"}},"pages":[{"title":"pt-BR","href":"/pt/usage/ui-theme"}]}]},"title":"Theme System (Colors) - ChatCLI","buildId":"dpl_22zLaHtK6fmmSqApXTTP5tC7UBZn","deploymentId":"dpl_22zLaHtK6fmmSqApXTTP5tC7UBZn","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BxIiCHya.js","PlusIcon-Br4qdG7I.js","lightbox-handle-r17bVUz3.js"]}