Skip to content

Settings ​

Every key in ~/.config/pomelo/settings.json, with its default. Most are edited in the Settings window (,), on the page each section below is named after; Edit in settings.json at the top of the window opens the file itself. A missing key keeps its default, and keys this version does not know are written back untouched, so a file from a newer version survives.

Nested keys are written with dots here: completions.lsp is {"completions": {"lsp": true}} in the file.

The keys under Kept by the app record how you left the window; they change as you use it and rarely need editing by hand.

Appearance ​

KeyDefaultDescription
theme"One Dark"The theme shown when theme_selection is "static".
theme_selection"static""static" always shows theme; "dynamic" picks theme_light or theme_dark by theme_mode.
theme_mode"system"With dynamic selection: "light", "dark" or "system" (follow the macOS appearance).
theme_light"One Light"The theme used when light mode is active.
theme_dark"One Dark"The theme used when dark mode is active.
theme_overrides{}Per theme name, color tokens laid over that theme: {"One Dark": {"editor.background": "#1e2127"}}.
buffer_font_family".PomeloMono"Font family used for the code editor.
buffer_font_size15.0Text size of the code editor.
buffer_font_weight400.0Font weight for the code editor (100-900).
buffer_line_height"comfortable"Line height for the code editor: "comfortable" (1.618), "standard" (1.3), a number or {"custom": n}.
buffer_font_features{}OpenType features for the code editor, by tag.
buffer_font_fallbacks[]Families tried, in order, for characters the editor font lacks.
ui_font".PomeloSans"Font family used for interface text.
ui_font_size16.0Font size for UI elements.
ui_font_weight400.0Font weight for UI elements (100-900).
ui_font_features{}OpenType features for UI text, by tag: {"calt": false, "ss01": true}.
ui_font_fallbacks[]Families tried, in order, for characters the UI font lacks.
agent_font_size12.0Text size of the agent's tabs, apart from terminals.
terminal_font_family".PomeloMono"Font family used for terminals.
terminal_font_size15.0Text size of terminals (the agent's tabs have agent_font_size).
terminal_font_weight400.0Font weight for terminals (100-900).
terminal_line_height"standard"Line height for terminals, in the same forms as buffer_line_height.
terminal_font_features{}OpenType features for terminals, by tag.
terminal_font_fallbacks[]Families tried, in order, for characters the terminal font lacks.
multi_cursor_modifier"alt"The key held to add a cursor with a click: "alt", or "cmd_or_ctrl" (Alt-click then goes to the definition).
cursor_blinktrueWhether the cursor blinks in the editor.
cursor_animation.enabledfalseThe cursor glides to where it moves instead of jumping.
cursor_shape"bar""bar", "block", "underline" or "hollow".
hide_mouse"on_typing_and_action"When the pointer hides until the mouse moves: "never", "on_typing" or "on_typing_and_action".
reduce_motion"off""on" holds loading shimmers, pulsing placeholders and the cursor's glide still.

Window & Layout ​

KeyDefaultDescription
func_hidden[]Which status bar buttons are hidden, in the order Files, Services, Git, Database.
terminal_hiddenfalseThe terminal button is hidden from the status bar.
agent_hiddenfalseThe agent button is hidden from the status bar.
show_diagnosticstrueShow the error/warning count in the status bar.
show_cursor_positiontrueShow the line and column of the cursor in the status bar.
show_languagetrueShow the active language of the editor in the status bar.
global_lsp_settings.buttontrueShow the language server button in the status bar.
show_branchtrueShow the active workspace's branch in the title bar.
show_session_nametrueShow the current session name in the title bar.

General ​

KeyDefaultDescription
restore_on_startup"last_session""last_session" reopens each workspace's tabs from last time; "none" starts without them.
auto_updatetrueThe installed app checks for a newer release. Nothing installs until you restart.

Editor ​

KeyDefaultDescription
soft_wrapfalseNewly opened files wrap long lines at the editor's width.
split_difftrueDiffs open side by side when the pane is wide enough, else in one column.
external_editor""The app "Open in External Editor" uses; empty picks the first one installed.

Languages & Tools ​

KeyDefaultDescription
enable_language_servertrueLanguage servers start for the languages they serve; off, none does.
language_servers["..."]Which servers a language uses, in order: a name turns one on, !name turns it off, ... stands for the rest of its defaults.
completions.lsptrueLanguage servers are asked for completions.
completions.lsp_fetch_timeout_ms0How long to wait for a server's completions, in milliseconds; 0 waits for them.
go_to_definition_scroll_strategy"center"Where a definition lands in view: "center", "minimum", "top" or "preserve".
diagnostics_max_severity"all"The least severe diagnostic shown: "off", "error", "warning", "info", "hint" or "all".
diagnostics.inline.enabledfalseNew editors show each line's diagnostic at its end.
diagnostics.inline.padding4Columns between a line's end and its diagnostic.
diagnostics.inline.min_column0The column inline diagnostics line up at, when the line is shorter.
file_types{}Language names to the file names, extensions or * globs that are that language, over detection: {"JSON": ["*.jsonc"]}.
languages{}Per language name, settings over the shared ones: enable_language_server, language_servers and completions (lsp, lsp_fetch_timeout_ms). Unset keys keep the shared value.

Terminal ​

KeyDefaultDescription
terminal_shell""The shell new terminals run, with its arguments; empty runs your login shell.
terminal_scrollback10000Lines of history each new terminal keeps.

Keymap ​

KeyDefaultDescription
vim_modefalseModal (vim) editing in the editor: Normal and Insert modes, motions and counts.

Agent ​

KeyDefaultDescription
agent_command"claude"The AI CLI the Agent button opens in a workspace; claude also gets pom's MCP server and prompt.
agent_open_in"dock"Where agents open: "dock" in the agent dock, "center" as a tab next to the code.
agent_tab_close"hide"Closing an agent's tab: "hide" leaves the agent running, "stop" ends it.

Notifications ​

KeyDefaultDescription
notify_claudetrueBanners and sounds when a workspace's Claude starts, finishes, needs input or compacts. Needs macOS notification permission.
notify_when_focusedfalseAlso alert for the workspace on screen in the focused window.
sound_working""The macOS sound played when an agent starts working; empty plays nothing.
sound_finished"Glass"The macOS sound played when an agent finishes; empty plays nothing.
sound_needs_input"Ping"The macOS sound played when an agent needs your input; empty plays nothing.
sound_compacting""The macOS sound played when an agent compacts its context; empty plays nothing.

Dev Services ​

KeyDefaultDescription
dev_proxy_enabledtrueRun the dev proxy while a project is open.
dev_proxy_port8767The dev proxy's port: a service opens at <service>.<repo>.<ticket or branch>.localhost:<port>. Restart running services after changing it.
webhook_enabledtrueRun the webhook relay while a project is open.
webhook_port8766The webhook relay's port: point an external webhook at localhost:<port>/<repo>/<service>.
modules_store_enabledtrueA new workspace whose lockfile matches a stored one takes its node_modules instead of installing.
modules_fallback"hardlink"Where a copy-on-write clone is impossible: "hardlink", "copy" or "install" (skip the store).
modules_size_limit_gb20GB the node_modules store keeps at most; the least recently used copies go first.
modules_unused_days14Days a stored copy is kept without a workspace taking it (0 keeps them until the size limit).

Integrations ​

KeyDefaultDescription
jira_only_minefalseThe new-workspace ticket picker lists only Jira tickets assigned to you.
group_workspacesfalseThe WORKSPACES list is grouped under its tickets' statuses.

Kept by the app ​

KeyDefaultDescription
onboard_with_aitrueNew projects are finished by the coding agent; off, you review the drafted pom.yml yourself.
jira_board0The Jira board the ticket picker opened on last (0: none yet).
sidebar_side"left"The dock the sidebar lives in: "left", "right" or "bottom".
agent_side"right"The dock the agent lives in.
terminal_side"bottom"The dock the terminal lives in.
func_sides[]The dock each status bar button lives in, in the order of func_hidden.
left_dock_width260.0Width of the left dock, in points.
right_dock_width300.0Width of the right dock, in points.
left_dock_collapsedfalseThe left dock is closed.
right_dock_collapsedtrueThe right dock is closed.
bottom_dock_collapsedfalseThe bottom dock is closed.
panels_collapsedfalseThe left panel column (Files, Services, ...) is closed.