Skip to content
Install

docs/customize-keys.md

Customize keys

Every /customize row is a terminal profile key you can set from a file or a package.

Every row of the /customize page is a key of the terminal settings (<data dir>/tui/profile.json). Each key is also the name customize_ui and api.settings.get/set take, and the name a profile's activate.tuiProfile may carry (a profile may not set the keys that start things or touch the clipboard, see customize). The page groups them in the sections below; the label is what the page calls the row. Allowed values, types and defaults of this version: mendcode control-plane tui schema; the values now: mendcode control-plane terminal settings.

A test holds this list to the page: a row added to /customize without a line here fails it.

What each key changes on screen, in a user's words, is PROFILE_KEY_HELP (packages/protocol/src/tui-key-help.ts; a test holds it to every key). The model searches it with customize_ui {"action":"keys","query":"top bar"}, which returns the matching keys with their type, allowed values, default and current value and asks for no approval; without a query it lists every key name. mendcode docs screen-parts maps every part of the screen, top to bottom, to its keys.

Rows that remove a part outright: showTopbar (the row above the session), panelHeader (the right panel's first row), sidebarHeader (the session list's title row), showStatus (the footer under the prompt), showTasks (running sub-agents and background commands over the prompt), homeHeader (the home screen's first row: folder, product, version), homePanel (the session list or actions under the home logo), showPlaceholder (the empty prompt's example text; placeholderText replaces it). assistantName is the text of the assistant's label; set, the label shows whatever assistantLabel says (your own label is username with showUsername).

Rows that also have a command of their own (the user types it; it opens the row or toggles it, and where it takes an argument that value is applied): /view, /vim, /multiline, /accessible, /prompt-mode, /prompt-chrome, /presentation, /message-rendering, /submit-scroll, /timestamps, /thinking, /scrollbar, /jump-to-latest, /mascot, /comments, /activity, /username, /terminal-title, /tips, /sticky-prompt and /raw.

Look settings that live in the daemon, not in the profile: projectThemes maps a project's absolute directory to a theme name and wins over the profile's theme and the global theme there (/theme in that project updates it); MENDCODE_REDUCED_MOTION=1 (or screen-reader mode, accessibility) stops the animated spinner and ticking animations in the compaction card.

  • Look: theme (Theme), glyphs (Glyphs), sessionAccent (Session accent), diffView (Diff view), toolDesign (Tool design); Markdown: tableStyle (Table style), headingStyle (Heading style), markdownCopyHints (Copy hints), markdownRtl (Right-to-left), markdownColors (Markdown colors)
  • Home: Logo: logoKind (Logo kind), logoText (Logo text), customAscii (Logo art), logoFont (Logo font), productName (Product name), tagline (Tagline), homeMascot (Mascot), mascotMotion (Mascot motion), mascotSize (Mascot size); Layout: homeLayout (Welcome layout), homeInput (Input position), homePanel (Home panel), homeRightPanel (Split panel), density (Density), homeHeader (Home header), homeTips (Tips), homeFooter (Home footer), showPlaceholder (Prompt example), placeholderText (Example text)
  • Prompt & footer: Prompt: promptChrome (Prompt chrome), promptBorder (Prompt border), promptGlyphs (Border glyphs), promptLead (Prompt lead), promptStatus (Status line), attachmentChips (Attachments); Footer: showStatus (Footer), footerPreset (Footer preset), footerRows (Footer rows), footerText (Footer text JSON), footerIcons (Footer icons), statusSeparator (Separator), showAgent (Agent label), showModel (Model), showProvider (Provider), showEffort (Reasoning effort), showPermission (Permissions), showCommandHint (Commands hint), showAgentHint (Agents hint), footerToday (Footer today); Segments: statusLeft (Left segments), statusRight (Right segments), statusColors (Segment colors JSON); Quota: footerQuota (Footer quota), quotaView (Quota shows), quotaColor (Quota colour), quotaRefresh (Quota refresh)
  • Chat: Messages: presentation (Chat presentation), messageRenderer (Message renderer), messageLayout (Message layout), userIcon (User icon), userLabel (User label), userLead (User lead), userTint (User tint), showUsername (Show username), username (Username), assistantIcon (Assistant icon), assistantLabel (Assistant label), assistantName (Assistant name), assistantLead (Assistant lead), messageMeta (Message meta), timestamps (Timestamps); Tools: reasoning (Reasoning), toolLayout (Tool layout), toolOutput (Tool output), toolDensity (Tool density), codeMapCard (Code map card), transcriptImages (Transcript images); Scrolling: submitScroll (Submit scroll), scrollbar (Scrollbar), scrollbarGlyphs (Scrollbar glyphs), jumpHint (Jump to latest), jumpText (Jump text), stickyPrompt (Pinned prompt)
  • Activity: Status: activityPlacement (Activity status), showActivity (Activity text), activityParts (Activity parts), showElapsed (Elapsed time), showTokens (Activity tokens), showInterruptHint (Interrupt hint), showStalled (Stalled hint), showActivityModel (Activity model), doneSymbol (Completion symbol); Notices: usageNotices (Limit notices), cacheNotices (Cache notices), confirmNotices (Confirmations); Mascot: activityMascot (Activity mascot), activityStates (Mascot states JSON), activityMessages (Activity text JSON), pet (Pet), petSize (Pet size); Image wait: imageWait (Wait canvas), imageWaitPreset (Wait art), imageWaitSpeed (Frame time, ms), imageWaitColor (Wait colour), imageWaitMeta (Model and size); also imageWaitArt and imageWaitCanvas, set in the file (web and image tools); Compaction: limitCheckpoint (Pre-limit checkpoint), compactionPanel (Compaction panel), compactionStyle (Compaction card), compactionProgress (Stage progress), compactionScratchpad (Scratchpad)
  • Top & side: Top bar: showTopbar (Top bar), topbarStats (Top bar stats), showSessionTitle (Session title), showProject (Project location), contextBar (Context bar), contextStyle (Context style), showDiffLines (Diff lines), showDiffFiles (Changed files); Sidebar & panel: sidebar (Sidebar), sidebarSide (Sidebar side), sidebarHeader (Sidebar header), sidebarWidth (Right bar width), panelNarrow (Panel when narrow), panelHeader (Panel header), showTasks (Running tasks), dockJobs (Dock jobs); Window title: terminalTitle (Window title), titleTemplate (Title template), titleActivity (Title activity)
  • Input & keys: Typing: vimMode (Vim mode), multiline (Enter adds a line), shortcutOverlay (? shortcut overlay), pasteSummary (Paste summaries), pasteSummaryMinChars (Paste threshold), pasteBurst (Paste burst detection), draftRetentionDays (Draft retention, days); Esc: escBacktrack (Esc Esc backtrack), escRetract (Esc takes back unanswered), queueRestore (Interrupt restores queue); Mouse & keys: copyOnSelect (Copy on select), rightClickPaste (Right-click paste), wheelLines (Wheel lines), altLabel (Alt key label), keyProtocol (Key reports), optionKeys (Option characters); Files & links: hyperlinks (Hyperlinks), fileOpener (File opener), pathClick (Click on a path), viewerNumbers (Viewer line numbers), viewerWrap (Viewer wrap), viewerFocus (Viewer takes focus)
  • Comments: comments (Comments), commentKey (Comment key), commentHint (Comment hint), commentHintSeconds (Hint seconds), commentChips (Comment chips), commentChipStyle (Chip style), commentCollapse (Collapse at), commentMax (Most comments), commentMarks (Margin marks), commentMarkGlyph (Mark glyph), commentReplyKeys (Reply keys), commentFolded (Fold sent), commentSentLayout (Sent layout), commentTemplate (Message template), commentEntry (Comment template)
  • Notifications: turnBell (Bell), turnNotify (Desktop notice), notifyWhen (Notify when), activitySound (Activity sound), autoRecap (Recap on return), idleReturn (Idle prompt), resumePrompts (Resume prompts)
  • Advanced: Extensions: extensions (UI modules), exportLook (Export look); Views: views (Views), viewScaffold (New view file); Slash menu: slashMenu (Menu layout), slashCommands (Edit commands); Capabilities: promptContext (Prompt context), capabilityCatalogue (Capabilities), graphIndex (Code graph index); Terminal: images (Images), altScreen (Alternate screen), accessible (Screen reader), processMode (Processes), usageClock (Usage clock), reset (Reset to defaults)