Back to Kilocode

JetBrains ↔ VS Code Settings Parity: Easy Wins

docs/jetbrains-vscode-settings-parity.md

7.4.134.7 KB
Original Source

JetBrains ↔ VS Code Settings Parity: Easy Wins

How parity works here

Both clients edit the same shared kilo.json through the CLI. So any setting whose behavior lives entirely in the CLI is an "easy win" for JetBrains: the CLI already does the work, JetBrains just needs a UI row that writes the config key. No CLI changes, no new feature.

Structural gap: today JetBrains only has Models / Providers / Agent Behavior / Profile settings pages. There is no General / Display / Experimental / Context / Checkpoints page. The lift for most easy wins is:

  1. Add a new Configurable page (using existing settings/base/ primitives — BaseSettingsUi, SettingsRow, SettingsToggle, SettingsListPanel), register it in kilo.jetbrains.frontend.xml.
  2. Extend the buildConfigPatch allowlist in KiloCliDataParser.kt (currently only model, small_model, subagent_model, subagent_variant, default_agent) and add boolean/number JSON serialization — it currently only emits strings.
  3. Add localized labels to KiloBundle.properties.

No CLI/SDK change and no new runtime feature.

Excluded from "easy"

ExcludedReason
Agent Behavior, Auto-ApproveSkipped by request
Indexing, SandboxingImply enabling new features
Browser AutomationPlaywright feature not present in JetBrains
Autocomplete (provider/model/toggles)No autocomplete feature (flags exist only as migration stubs)
Agent Manager (auto-branch, prefix)VS Code-only feature
Notification/attention soundsClient must implement sound playback
maxCost alertClient must render the alert UI
Commit message (commit_message.prompt, languageCommitMessage)No commit-message generation feature in JetBrains
language, fontSize, diff.renderMarkdown, agentWorkStyleVS Code-webview/onboarding-specific

Tier 1 — Genuinely easy (CLI does all the work; just add UI + config key)

SettingConfig keyTypeSuggested page
Hide prompt-training modelshide_prompt_training_modelsboolModels
Enable checkpointssnapshotboolnew "Checkpoints"
Auto-compactioncompaction.autoboolnew "Context"
Compaction threshold %compaction.threshold_percentnumberContext
Prune on compactioncompaction.pruneboolContext
Watcher ignore patternswatcher.ignorestring[]Context (list editor)
Display usernameusernamestringnew "Display/General"
Share modeshareenum (manual/auto/disabled)new "Experimental"
Remote control on startupremote_controlboolExperimental
Formatter integrationformatterboolExperimental
LSP integrationlspboolExperimental
Batch toolexperimental.batch_toolboolExperimental
Native notebook toolsexperimental.native_notebook_toolsboolExperimental
Continue loop on denyexperimental.continue_loop_on_denyboolExperimental
SWE pruner (+ model)experimental.swe_pruner, ..._modelbool + stringExperimental
MCP timeoutexperimental.mcp_timeoutnumberExperimental
Per-tool togglestools.<name>boolExperimental

Claude Code compatibility: lives under "Agent Behavior" in VS Code, but in JetBrains the entire backend (KiloClaudeCompatSettings + RPC getter/setter + spawn-env wiring) already exists with no UI. Exposing it is the single lowest-effort item — just a checkbox bound to the existing RPC, no config plumbing.

⚠️ Hold back experimental.codebase_search (leans on indexing) and experimental.image_generation (adds a tool) — arguably "enabling a feature."

Tier 2 — Config is easy, but honoring it needs JetBrains rendering work

SettingConfig keyExtra work
Auto-collapse reasoningauto_collapse_reasoningReasoning-card default collapse
Terminal command displayterminal_command_display (expanded/collapsed)Tool-card default state
Code edit displaycode_edit_display (expanded/collapsed)Edit-card default state

Recommendation

Add a new "General/Display" page + "Experimental" page driven entirely by CLI config, seeded with Tier 1 behavioral settings, plus wire the already-built Claude Code compat toggle. This closes most of the non-feature gap with:

  • zero CLI/SDK changes,
  • one allowlist extension in KiloCliDataParser.buildConfigPatch (add keys + boolean/number serialization),
  • reuse of existing settings/base/ UI primitives and test patterns (FakeAppRpcApi frontend test + MockCliServer backend body assertion).

Do Tier 2 (reasoning/terminal/edit display defaults) after Tier 1, since it touches the session-rendering layer rather than being pure config.