Skip to content

Settings

File → Settings (F12) opens the file in the editor: ~/.config/ycode/settings.json, or %APPDATA%\ycode\settings.json on Windows, or wherever YARA_CONFIG_DIR points. Every key is optional, and the file is written afresh — with a comment over each key — whenever the editor saves a setting. // comments are allowed.

Key Default What it is
theme "Dark Modern" The theme, built in or a VS Code JSON in themes/ beside the file
agent "claude" The command that runs in the AGENT pane: claude, codex, cursor-agent, a path, with arguments
agent_side "left" Which side the agent sits on; "Move Panes to the Other Side" in the palette swaps it
agent_width 42 The agent pane's share of the width, in percent; dragging the seam between the panes sets it
sidebar_width 30 The FILES tree, in columns; its own seam drags it too
show_sidebar false Whether FILES is open at start
narrow_width 80 Under this many columns — a phone over SSH, a narrow split — the panes take turns: the one with the keyboard fills the body and F6 brings up the next; 0 keeps them side by side at any width
shell "" The shell Ctrl+T runs under the agent; empty means $SHELL
terminal_height 40 That terminal's share of the agent pane's height, in percent; dragging its top border sets it
timeline_ticks 12 Edits on the strip before it windows around the current one
cursor_blink_ms 500 One step of the editor caret's blink; 0 keeps it on
blame true Whether the editor says, at the end of the line under the mouse, who last committed it and when
refresh_ms 500 How often the folders are looked at
base_branch "" What CHANGES measures against; empty means the main working copy's branch
worktrees_dir "" Where a task's worktrees go; empty means <repo>-worktrees beside each repository
ignore_folders [".", "node_modules", "target", "dist", "build", "vendor", "venv"] Folders nobody works in: left out of the tree, Go to File, search and the watching. "." stands for every hidden folder
search_exclude [] What Search Project leaves out on top of those, in VS Code's glob spelling
usage_slash {"claude": "/usage", "cursor-agent": "/usage", "codex": "/status"} What F8 types at each agent, by program name
usage_commands {} A command per agent that prints its usage as JSON — see Agent usage
agent_keys ["Ctrl+R", "Ctrl+N", "Ctrl+Z", "Ctrl+W", "Ctrl+Y", "Ctrl+C"] Bound chords the agent keeps anyway; the paste key always pastes
keys {} Rebindings, command id to chord — see Key bindings
recent_workspaces [] Workspaces opened before, each its folders. Kept by the editor

Local settings

File → Local Settings opens .ycode/settings.json in the workspace's main folder, writing an empty one first if there is none. Any key from the table above set there wins over the global file while that folder is open — one project runs codex, another keeps a wider agent pane — and a map, keys or usage_slash, merges entry by entry. The editor never writes a key the folder's file pins into the global file: a seam dragged there is saved for every other folder, a theme the folder pins stays the folder's.

A file that cannot be read is reported in the status bar and never written over: the mistake is yours to fix, and the editor runs on the defaults until you do. A chord that cannot be read keeps its default, and is written back as it was — a save is not the moment to lose your line.