Esc

    Open Settings from the gear at the bottom of the Projects sidebar, or rexa: open settings in the command palette. Settings opens as a tab. ⌘ F searches every page at once.

    Pages

    Page Covers
    General Appearance and theme, sound, the settings file, floating terminal.
    Agents Launch and resume commands, the new-tab picker, comments.
    Git Diffs, sync and background fetch.
    Editor Editor display and behavior, markdown.
    Terminal Padding, copy on select, environment variables, run actions.
    Files The file tree.
    Language servers One switch per server.

    settings.json

    Every setting lives in ~/.config/rexa/settings.json. Rexa applies edits to the file as soon as you save it. A key you leave out uses its default, and keys Rexa does not know are kept when it rewrites the file.

    General → File has Open settings.json and Reset to defaults. Reset asks first.

    ~/.config/rexa/settings.json
    {
      "font_size": 14,
      "theme": { "name": "One Dark" },
      "editor": { "vim": true, "tab_size": 2 },
      "git": { "autofetch": true },
      "terminal": { "copy_on_select": true }
    }

    Appearance

    font_sizenumberdefault: 13.5

    Text size for the whole app, 8 to 32. ⌘ = and ⌘ - step it by 0.5.

    font_familystringdefault: 'JetBrains Mono'

    Any installed monospaced font.

    font_weightnumberdefault: 400

    100 to 900.

    theme.namestringdefault: 'Deep Space'

    Theme to use. See Themes and extensions.

    theme.pathstring

    A Zed theme JSON file or theme extension folder.

    theme.overridesobject

    Zed theme color keys applied on top of the theme.

    focus_markerbooleandefault: true

    Mark the region that has the keyboard.

    status_bar.hiddenstring[]

    Status bar items to hide, by id, such as rexa.resource.

    status_bar.orderstring[]

    Status bar item order, by id.

    Sound

    sound.enabledbooleandefault: true

    Chime when an agent needs you.

    sound.chimestringdefault: 'attention'

    attention, glass, submarine, tink, or a path to a sound file.

    Agents and launching

    agents.<id>.launch_commandstring

    Command that starts the agent. Ids: claude, codex, cursor, opencode, pi.

    agents.<id>.resume_commandstring

    Command that resumes a session. {session_id} is replaced.

    launch.defaultstringdefault: 'console'

    What ⌘ T opens: console, browser, or an agent id.

    launch.orderstring[]

    Order of rows in the ⌘ N picker.

    launch.hiddenstring[]

    Rows hidden from the picker.

    comments.target_ringbooleandefault: false

    Highlight the target terminal when sending comments.

    Editor

    editor.vimbooleandefault: false

    Vim mode.

    editor.tab_sizenumberdefault: 4

    Spaces per indent.

    editor.soft_wrapbooleandefault: false

    Wrap long lines in code.

    editor.markdown_soft_wrapbooleandefault: true

    Wrap long lines in markdown source.

    editor.line_numbersbooleandefault: true

    Line numbers.

    editor.indent_guidesbooleandefault: true

    Indent guides.

    editor.highlight_active_linebooleandefault: true

    Highlight the cursor’s line.

    editor.render_whitespacebooleandefault: false

    Show spaces and tabs.

    editor.syntaxbooleandefault: true

    Syntax highlighting.

    editor.multi_cursor_modifier'alt' | 'cmd'default: 'alt'

    Modifier that adds a cursor on click.

    editor.inline_blamebooleandefault: true

    Blame for the cursor’s line.

    editor.which_keybooleandefault: false

    Show what can follow a partly typed chord.

    editor.gutter_widthnumberdefault: 64

    Gutter width in pixels.

    markdown.outlinebooleandefault: false

    Outline beside markdown previews.

    markdown.diagram_scalenumberdefault: 1.0

    Mermaid diagram size, 0.75 to 2.0.

    Terminal

    terminal.paddingnumberdefault: 0

    Space around the terminal grid, 0 to 32 pixels.

    terminal.copy_on_selectbooleandefault: false

    Copy a selection without ⌘ C.

    terminal.envobject

    Variables exported into every new terminal, run and agent.

    run.mode'background' | 'reuse' | 'new'default: 'background'

    Where actions send their output.

    floating.widthnumberdefault: 520

    Floating terminal width.

    floating.heightnumberdefault: 320

    Floating terminal height.

    floating.positionstringdefault: 'bottom-right'

    One of nine anchors, such as top-left or center.

    floating.offsetXnumberdefault: 8

    Horizontal distance from the anchor.

    floating.offsetYnumberdefault: 24

    Vertical distance from the anchor.

    Git

    git.status_view'grouped' | 'list' | 'tree'default: 'grouped'

    Layout of the Changes list.

    git.diff_layout_tab'split' | 'inline'default: 'split'

    Layout for new diffs.

    git.focus_first_changebooleandefault: true

    Open diffs at the first change.

    git.collapse_unchangedbooleandefault: false

    Hide unchanged regions in diffs.

    git.confirm_syncbooleandefault: true

    Ask before Sync.

    git.rebase_when_syncbooleandefault: false

    Rebase instead of merge when pulling.

    git.autofetchbooleandefault: false

    Fetch in the background.

    git.autofetch_periodnumberdefault: 180

    Seconds between fetches, at least 30.

    git.remote_statusbooleandefault: true

    Ahead/behind counts and pull request state in the sidebar.

    Files

    files.respect_gitignorebooleandefault: true

    Hide ignored files.

    files.git_statusbooleandefault: true

    Git status letters.

    files.auto_foldbooleandefault: true

    Fold single-child folder chains.

    files.indent_guidesbooleandefault: true

    Indent guides.

    files.sticky_headersbooleandefault: false

    Pin parent folders while scrolling.

    files.search_nested_worktreesbooleandefault: false

    Include nested worktrees in quick open.

    Language servers

    lsp.enabled_serversstring[]

    Servers to run. JSON runs by default.

    lsp.disabled_serversstring[]

    Servers to keep off.

    lsp.serversobject

    Custom servers, or replacements for built-in ones by name.

    lsp.toolchainsobject

    Toolchain per language, such as { "node": "20.11.0" }.

    lsp.builtinbooleandefault: true

    Use the built-in server list.

    See Language servers.

    Resources

    resources.<kind> sets warning and critical budgets for the resource monitor.