Config

Likelio reads its settings from a single JSON file at startup. Anything you don't set falls back to the default. Theme and plot-theme IDs in the file resolve against the bundled themes plus any custom themes you've registered.

File locations

App config
~/.config/likelio/config.json
Active settings file. Created on first launch with defaults if missing.
App config (legacy)
~/.config/sigma/config.json
Read once on startup if the current path is empty; migrated forward, never written to.
User app themes
~/.config/likelio/themes/{id}.json
User-defined app themes. Set system_dark_theme / system_light_theme to the theme's name to activate.
User plot themes
~/.config/likelio/plot-themes/{id}.json
User-defined plot themes. Set plot_theme_id to activate.
Recent files cache
~/.config/likelio/recent.json
Recently-opened project paths. Trimmed and rotated automatically.

Top-level keys: config.json

Every key is optional — defaults are filled in by the loader. Unknown keys are ignored.

system_dark_theme
String
default: "default-dark"
App theme used when the OS reports dark mode.
system_light_theme
String
default: "default-light"
App theme used when the OS reports light mode.
plot_theme_id
String
default: "likelio_light"
Active plot composition.
plot_frame_id
String?
Override the frame layer of the active composition.
plot_palette_id
String?
Override the palette layer.
plot_typography_id
String?
Override the typography layer.
theme_overrides
object
default: {}
Per-key overrides merged on top of the resolved app theme.
allow_builtin_override
bool
default: true
If true, a custom theme with the same name as a built-in replaces the built-in.
keybindings
Keybindings
All keybinding bindings (see below).
keybinding_preset
enum
Preset name. The runtime source of truth is `keybindings`; this is metadata for the settings UI.
typography
Typography
Global font-size / font-family settings.
ai
AiConfig
Built-in MCP server settings (see below).
code_editor_vim_mode
bool
default: false
Use vim keybindings in the JS / SQL code editor.
spreadsheet_threshold
u64
default: 268435456 (256 MB)
Files at or below this size (bytes) load fully into memory. Larger files use a sliding window.
currency_locale
String?
Override the currency locale (e.g. "en-US", "de-DE"). Detected from the OS when null.
custom_themes
CustomThemes
User-defined app and plot themes embedded in the config file.

MCP server: ai

Settings for the built-in MCP server that exposes Likelio's sheets, queries, and plots to external AI clients (Claude Desktop, ChatGPT, Cursor, and anything else that speaks MCP).

mcp_enabled
bool
default: false
Run the built-in MCP HTTP server. When true, the server listens on mcp_port at all times.
mcp_port
u16
default: 31337
Port the standalone MCP server listens on.
mcp_clients
McpClientToggles
Per-client auto-registration toggles (see below).

Per-client toggles McpClientToggles

When a toggle is true, Likelio writes its MCP server entry into the corresponding client's config file on startup and on toggle change.

claude_code
bool
default: false
Auto-register Likelio's MCP server in Claude Code CLI (~/.claude.json).
claude_desktop
bool
default: false
Auto-register in Claude Desktop's claude_desktop_config.json (OS-specific path).
codex
bool
default: false
Auto-register in OpenAI Codex CLI (~/.codex/config.toml).
gemini
bool
default: false
Auto-register in Google Gemini CLI (~/.gemini/settings.json).
opencode
bool
default: false
Auto-register in OpenCode (~/.config/opencode/opencode.json).
kiro
bool
default: false
Auto-register in AWS Kiro CLI (~/.kiro/settings/mcp.json).

Keybindings

Every binding is an array of strings — each string is a fully-qualified key combo (e.g. "cmd+s", "ctrl+shift+n"). Multiple bindings on the same action all trigger it. To disable an action, set the array to [].

Global GlobalKeybindings

save
[String]
default: ["cmd+s", "ctrl+s"]
Save the current project.
save_as
[String]
default: ["cmd+shift+s", "ctrl+shift+s"]
Always show the Save As dialog.
undo
[String]
default: ["cmd+z", "ctrl+z"]
Undo the last action in the active tab.
redo
[String]
default: ["cmd+shift+z", "ctrl+y"]
Redo the last undone action.
copy
[String]
default: ["cmd+c", "ctrl+c"]
Copy the selection.
cut
[String]
default: ["cmd+x", "ctrl+x"]
Cut the selection.
paste
[String]
default: ["cmd+v", "ctrl+v"]
Paste from the clipboard.
new_tab
[String]
default: ["cmd+t", "ctrl+t"]
Open a new empty tab.
close_tab
[String]
default: ["cmd+w", "ctrl+w"]
Close the active tab.
next_tab
[String]
Move focus to the next tab.
prev_tab
[String]
Move focus to the previous tab.
toggle_ai_panel
[String]
Toggle the AI / chat panel.
toggle_file_tree
[String]
Toggle the file-tree side panel.
open
[String]
default: ["cmd+o", "ctrl+o"]
Open a project from disk.
new
[String]
default: ["cmd+shift+n", "ctrl+shift+n"]
Create a new blank project.
next_pane
[String]
default: ["ctrl+alt+right"]
Move focus to the next pane (split view).
prev_pane
[String]
default: ["ctrl+alt+left"]
Move focus to the previous pane.

Spreadsheet table TableKeybindings

goto_sheet_start
[String]
default: ["ctrl+home"]
Jump to A1.
goto_row_start
[String]
default: ["home"]
Jump to column A of the current row.
select_to_sheet_start
[String]
default: ["ctrl+shift+home"]
Extend selection to A1.
edit_cell
[String]
default: ["f2", "enter"]
Begin editing the active cell.
delete_cell
[String]
Clear the cell value.
fill_down
[String]
Fill formula or value down the selection.
insert_row
[String]
Insert a row at the cursor.
insert_col
[String]
Insert a column at the cursor.

Code editor EditorKeybindings

format_buffer
[String]
Run the formatter on the current buffer.
run_macro
[String]
Execute the active macro.

Report view ReportKeybindings

next_page
[String]
Page forward in the report preview.
prev_page
[String]
Page backward.