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); alsoimageWaitArtandimageWaitCanvas, 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)