Settings
Kodik settings live in two places:
- Kodik’s built-in Settings editor — most options: profile, agents, autocomplete, models, indexing, MCP, anonymizer, and more.
settings.json(standard VS Code settings) — a handful of specialized parameters described at the end of this page.
Opening settings
Section titled “Opening settings”Click the gear Settings button in the title bar and pick Kodik Settings — the same menu also gives you the editor settings, manage actions (Command Palette, Keyboard Shortcuts, and so on), and GitHub sign-in. Alternatively, run the kodik.openSettings command. When the Settings editor is active, press Ctrl+F to move focus to the search bar. Search covers settings across every section, including Harness tools and custom-provider management, and selecting a result opens its section and focuses the matching control. Individual model names use the dedicated search inside Models.
The compact sidebar keeps primary settings first, then groups extension points under Customization and external services under Integrations. Related options share cards: General is split into Interface, Privacy, and Danger zone, while Agents uses Assistant and Summarization.
Kodik remembers the active Settings section when the workbench reloads. Opening Kodik Settings again without choosing a specific destination also returns to the section you were already using.
Hover a control to see its compact workbench tooltip. Disabled controls can still explain why an action is unavailable—for example, plugin-provided assets direct you to uninstall the plugin instead of deleting the item from Settings.
Storage identities
Section titled “Storage identities”Installed Kodik uses .kodik for its runtime profile and global home. A source development build keeps the Kodik branding but uses the separate .kodik-dev runtime, global asset, extension, argv, session, sub-agent configuration, and CLI identity by default. On its first launch after this cutover, Kodik moves the former code-oss-dev runtime as one profile so User, Local State, settings, sessions, and encrypted-secret context stay together. If the destination already contains data, the old profile is incomplete or in use, or an interrupted migration has conflicting owners, startup stops and preserves both locations for inspection.
Portable production keeps its runtime under <portable>/user-data, global assets and CLI under <portable>/.kodik, extensions under <portable>/extensions, and startup arguments in <portable>/argv.json. Portable development uses the corresponding user-data-dev, .kodik-dev, extensions-dev, and argv-dev.json owners. It does not fall back to the host home. Operating-system keyrings and registered tunnel services remain host facilities; moving portable media therefore requires signing in again or explicitly transferring a service from the original machine.
Lowercase global assets
Section titled “Lowercase global assets”Kodik migrates six global asset categories into lowercase folders in the active global home: skills, commands, rules, memories, hooks, and plugins. Production normally uses ~/.kodik; development uses ~/.kodik-dev; and a portable installation uses the matching home on its media. New path-based agent files use lowercase .kodik/agents, but old Markdown agents are not moved or imported; current profiles use sub-agents.json or an installed plugin.
On the first launch with this layout, Kodik inventories former uppercase global categories without following links and completes their handoff before the first workbench window opens. A same-home move is silent. If source names are ambiguous by the destination filesystem’s case or Unicode rules, Kodik asks which source to preserve. A portable or other cross-home copy is staged and verified; Kodik asks before proceeding when filesystem metadata cannot be preserved exactly. Existing lowercase content is always authoritative, exact duplicates deduplicate, and conflicts or retained originals remain inspectable under .kodik/.migration/global-assets-v1/.
The committed migration manifest permanently marks the cutover. Kodik does not repeatedly show a hydration dialog, does not automatically delete retained evidence, and does not read uppercase folders created after cutover. Move any such later content into the documented lowercase folder manually.
Code OSS workspace compatibility
Section titled “Code OSS workspace compatibility”Kodik keeps .vscode externally owned and reads only a closed set of Code OSS workspace resources from it: settings.json, tasks.json, launch.json, extensions.json, the extensions/ directory, and mcp.json. The matching .kodik JSON resource is canonical. A readable canonical file wins as a whole file; only an absent canonical file permits .vscode. If the canonical file is malformed or unreadable, Kodik reports that problem instead of silently using .vscode.
Native editor actions may continue updating the active .vscode settings, tasks, launch, extension-recommendation, or snippet files. New Kodik-owned configuration defaults to .kodik, and Kodik Settings never rewrites a compatibility file. Other .vscode children remain native or extension-owned and do not become Kodik storage.
Settings sections
Section titled “Settings sections”Account
Section titled “Account”The signed-in user’s profile, current plan and its status, credit balance, usage history broken down by model and session, trial information, and the referral program. See Account & usage for details.
General
Section titled “General”General Kodik behavior:
- Interface language — UI language (invokes the standard VS Code locale command). Russian is built into the application and used by default; the chosen language applies after a restart to chat messages, tool and status cards, session navigation, model controls, and the rest of the Kodik interface.
- AI response language — the default language the AI assistant replies in.
- Notifications — enable and configure system notifications.
- Enable chat animations — controls chat motion globally, including Framer Motion effects, expanding and collapsing transitions, loading keyframes, anchored-turn scrolling, and paced streamed-text reveal. The option is on by default; turn it off for a static chat experience.
- Reset to defaults — resets all Kodik settings to their default values.
Harness
Section titled “Harness”The single user-facing policy for what Kodik sends to the model. Pick Plan, Code, Ask, Debug, Educator, or Orchestrator, then use the one switch on each visible tool to change only that mode. Harness shows only structurally supported tools and summarizes the rest as not offered. Tool action accordions are read-only summaries of the effective schema; they do not add separate action switches. Orchestrator exposes only its fixed coordination tools; sub-agent access is configured per profile in Sub Agents and then intersected with the remaining runtime policies.
The Sub-agents in this mode list controls which configured profiles the selected parent mode may delegate to. This does not change a sub-agent’s definition: every profile keeps its own instructions, model, reasoning effort, and tools. A profile disabled globally in Sub Agents remains visible in Harness but cannot be selected until it is enabled there.
The live budget combines active tool-schema and system-prompt tokens and shows how much the selected mode saves versus its default. The Settings preview is not tied to an open chat: on the Orchestrator tab it budgets an empty Team Workspace summary, while real Orchestrator turns use the current chat’s records. Disabling every tool, Generate plans in Plan mode, or Protected content guidance is allowed; Harness applies the choice immediately and shows an inline warning.
System-prompt rows expand to the exact resolved text sent on the next turn. Optional sections are mode-scoped. Agents rules, user rules, memory, skills, sub-agent profiles, MCP servers, and optional Environment values also have per-source checkboxes; these suppress prompt text without disabling or deleting the source feature. Working directory and Shell stay required.
Connected MCP tools appear after built-ins in the same list in every mode with one mode switch, a server marker, schema-token estimate, and Manage MCP link. MCP Settings still owns setup, authentication, server state, and MCP-owned tool configuration.
Agents
Section titled “Agents”Agent tools and behavior:
- Follow-up suggestions — whether Kodik suggests a likely next message after the assistant replies.
- File change display — whether edited files, including notebooks, open in the editor and whether file changes stay expanded in chat.
- Reasoning display — whether reasoning messages expand automatically while they stream. They collapse when the stream finishes; panels you open manually stay open. The option is off initially.
- New-turn anchoring — whether each sent message smoothly moves near the top of the transcript so its response can grow below it. The option is off initially, and manually scrolling cancels the movement and releases the anchor.
- Summarization triggers — when the agent should compact long conversations.
- Session memory — whether the
memorytool can save temporary task notes inside the current chat session and include them after compaction.
Auto Approve
Section titled “Auto Approve”When the agent can act without asking:
- Auto-approve — the main switch and per-tool permissions for actions the agent can run without explicit approval. Auto-approve controls for disabled tools are inactive. See Auto-approve.
- Autopilot — full autonomous mode for the agent.
- Blocked commands — a list of command patterns the agent will never execute (for example,
rm *,sudo rm *,git clean*). - Command patterns — custom patterns for auto-allowing specific commands.
Autocomplete
Section titled “Autocomplete”Inline completion settings:
- Enable autocomplete — global on/off switch.
- Debounce delay — how long to wait after typing stops before sending a request.
- Model source — which model powers autocomplete: the Kodik default, a local Ollama model, or one of your custom (bring-your-own-key) providers. Ollama choices come from the current endpoint, so the dropdown itself is the availability indicator rather than a separate status message beneath it. Changing the selection does not remove other models returned by the running endpoint.
- Ignored files — glob patterns for files where autocomplete is suppressed.
- Completions in imports and strings — enable suggestions inside import statements and string literals.
The kodik.autocompleteDisableLineRegex and kodik.autocompleteDisableFileRegex parameters (see the settings.json section below) provide fine-grained control via regular expressions. See Autocomplete for more detail.
Models
Section titled “Models”Manage available models:
- Enable / disable models — control which Kodik cloud models appear in the model picker.
- Provider and capability marks — identify each known model family at a glance in both this list and the chat model picker. Image and Brain glyphs appear only when the live model catalog declares those capabilities; unknown or private model families remain unbadged rather than receiving a guessed vendor.
- Summarization threshold — the context length at which automatic conversation compaction is triggered. The default is 90% of the model window, lowered when the provider advertises a maximum reply that needs more room; Kodik does not invent an output reserve for a custom model that reports only its context window. The displayed value is the exact effective runtime default, and a per-model override survives restarts.
Indexing
Section titled “Indexing”Codebase indexing controls:
- Sync — start indexing. If an active run was paused, Sync continues from its saved completed-file progress and reconciles changes made during the pause.
- Delete index — fully clear the local index and stop indexing until you run Sync again.
- Pause — stop the current indexing run, save its completed-file progress, and temporarily suspend automatic sync.
- Ignore .gitignore — do not exclude paths listed in
.gitignore. - Ignore .kodikignore — do not exclude paths listed in
.kodikignore.
The index is stored locally as SQLite in Kodik user-data workspace storage, outside the project folder. See Codebase indexing for more detail.
Ollama
Section titled “Ollama”Manage the local Ollama endpoint:
- Installation and running status.
- Connectivity check for the local server.
- Model selection for use in the agent.
- Download recommended models (Gemma 4 E4B, Qwen3 8B, Devstral 24B, Qwen3 Coder 30B, and others).
See Local models for more detail.
Commit message generation and Git behavior:
- Commit message prompt — extra instructions appended to the built-in commit message prompt (
kodik.commitMessage.instructions). - Pull request instructions — additions to the PR title and description generation prompt (
kodik.pullRequest.instructions). - Commit attribution — whether to add a Kodik
Co-authored-bytrailer to commits the agent creates and to every commit made from Source Control (kodik.git.commitAttribution). - PR attribution — whether to mark agent-created pull requests as made with Kodik (
kodik.git.prAttribution). - Branch prefix — prefix for new branches the agent creates; defaults to
kodik/when left empty. Kodik accepts Git-ref-style prefixes and falls back tokodik/for unsupported values (kodik.git.branchPrefix). - Auto-delete worktrees — automatically delete old agent worktrees (
kodik.git.autoDeleteWorktrees, default:true). - Worktree keep limit — how many worktrees to keep before pruning older ones (
kodik.git.worktreeKeepLimit, default:15). - Source-control status — show a live source-control summary (branch, ahead/behind, uncommitted changes, open pull request, CI, conflicts) in the chat footer. It refreshes on repository changes, when the window regains focus, and from the footer’s Refresh action; branch switching rejects unsupported branch names before running git (
kodik.git.statusAutoRefresh, default:true). - Source-control refresh interval — how often, in milliseconds, to refresh the GitHub portion (pull request and CI) while a pull request is open (
kodik.git.statusRefreshIntervalMs, default:300000).
See AI commit messages for more detail.
Anonymizer
Section titled “Anonymizer”Sensitive data protection settings:
- Enable anonymizer — activate masking of sensitive content before it is sent to the model.
- Sensitive file list — view and remove manually marked sensitive regions.
See Anonymizer for more detail.
Skills
Section titled “Skills”List of installed skills discovered from the global and workspace skill directories. Individual skills can be enabled or disabled here.
Commands
Section titled “Commands”List of installed custom slash-commands discovered from supported workspace command directories.
List of installed rules files discovered from the global and workspace rules directories. Individual files can be enabled or disabled here.
Sub Agents
Section titled “Sub Agents”- Maximum concurrent sub-agents — sets the per-chat sub-agent ceiling from 1 to 16 (4 by default). The parent model sees the configured limit and live active/available count; when every slot is occupied, Chat shows Limit reached and the rejected tool result tells the model to wait before delegating again.
- Profiles — inspect the specialized sub-agents any parent mode can delegate to through
sub_agent, grouped as Default, Workspace, Global, then Plugins. Default, workspace, and global profiles can edit their identity, instructions, exact provider-qualified model, optional reasoning effort, tool list, skill discovery, and enabled state. Plugin definitions are read-only and never auto-discover skills, but can be enabled or disabled; Open configuration opens their plugin-owned source. - Per-mode availability — disabling a profile here removes it from every parent mode. To keep it enabled but hide it from only Code, Plan, Ask, Debug, Educator, or Orchestrator, use that mode’s Sub-agents in this mode list in Harness.
- Availability — profile rows are checked against the current Kodik catalog, Ollama endpoint, Custom Providers, reasoning capabilities, and tool support. All models returned by a running Ollama endpoint remain available when a profile’s model changes. An error marker identifies profiles that cannot run.
- Scope — the first user edit creates
~/.kodik/sub-agents.json. An optional.kodik/sub-agents.jsoncompletely replaces the user layer for that workspace. Settings can create, reset, remove, or open the selected configuration without deleting source defaults. - No legacy import — standalone Markdown profiles are not migrated or imported. Create current profiles here so Kodik stores them in
sub-agents.json.
See Sub-agent profiles and models and Sub-agents.
Hooks are shell commands that run at key points in the AI coding workflow: tool calls, prompt submissions, session start and stop, and more. Hooks can block, modify, or simply observe what happens.
Memory
Section titled “Memory”View and manage long-term memories Kodik has saved for the current workspace and globally. Secrets are automatically stripped from memory content before it is persisted. See Memory for more detail.
MCP Servers
Section titled “MCP Servers”List of installed MCP servers with options to enable, disable, or remove them. See the MCP section for more detail.
settings.json reference
Section titled “settings.json reference”The following parameters are set in settings.json, not in the built-in editor.
Autocomplete
Section titled “Autocomplete”| Setting | Type | Default | Description |
|---|---|---|---|
kodik.autocompleteDisableLineRegex | string[] | [] | Array of regular expressions. If the text of a line up to the cursor matches any pattern, autocomplete is suppressed on that line. |
kodik.autocompleteDisableFileRegex | string[] | [] | Array of regular expressions. If the file path matches any pattern, autocomplete is suppressed in that file. |
Project documentation (AGENTS.md)
Section titled “Project documentation (AGENTS.md)”| Setting | Type | Default | Description |
|---|---|---|---|
kodik.project_doc_max_bytes | number | 32768 | Maximum total bytes of AGENTS.md instruction files to load. Set to 0 to disable AGENTS.md discovery entirely. |
kodik.project_doc_fallback_filenames | string[] | [] | Additional instruction filenames checked in each directory when AGENTS.md is absent. AGENTS.override.md and AGENTS.md always take precedence. |
kodik.project_root_markers | string[] | [".git"] | Marker filenames used to find the project root when searching for AGENTS.md. An empty list limits the search to the current working directory. |
Commit messages and Git
Section titled “Commit messages and Git”| Setting | Type | Default | Description |
|---|---|---|---|
kodik.commitMessage.instructions | string | "" | Extra guidance appended to the built-in commit message generation prompt. Supports the {language} token. |
kodik.pullRequest.instructions | string | "" | Extra guidance for pull request title and description generation. |
kodik.git.commitAttribution | boolean | false | Add a Kodik attribution trailer to commits the agent creates and to every Source Control commit. |
kodik.git.prAttribution | boolean | false | Mark pull requests created by the agent as made with Kodik. |
kodik.git.branchPrefix | string | "" | Prefix for new branches the agent creates. Defaults to kodik/ when left empty or unsupported. |
kodik.git.autoDeleteWorktrees | boolean | true | Automatically delete old agent worktrees. |
kodik.git.worktreeKeepLimit | number | 15 | Number of agent worktrees to keep before older ones are pruned automatically. Minimum: 1. |
kodik.git.statusAutoRefresh | boolean | true | Show a live source-control status summary in the chat input (branch, ahead/behind, changes, PR, CI, conflicts). |
kodik.git.statusRefreshIntervalMs | number | 300000 | How often (ms) to refresh the GitHub portion of the status while a pull request is open. Minimum: 60000. |
See AI commit messages for more detail.