Skip to main content

EditVolt Settings

Everything EditVolt-specific lives in one window: which model answers you, what the agent is allowed to do, what it remembers, and the rules, skills, subagents, hooks, commands and MCP servers it works under.

Opening Settings

HowWhat happens
⌘, (macOS) / Ctrl+,Opens EditVolt Settings. This binding deliberately overrides the editor's own settings.json binding.
Command Palette → EditVolt: Open SettingsSame, and accepts a section id (EditVolt: Open Settings Section).
Menu bar → EditVolt → EditVolt Settings…Same. On macOS it is also under the app's Settings menu.

With a folder open, Settings opens in its own 1024×720 window so it never takes an editor tab from your project. In an empty window it opens as a normal tab instead.

The left rail is fixed: a search box, then five groups. Entries with an are links that jump somewhere else in the app rather than rendering a page here.

GroupEntries
EditVoltAccount · AI Models · Hugging Face · Memory & Context · Activity Log
CapabilitiesCustomization Studio · EditVolt Packs
WorkspaceWorkspace Understanding · Remote Development · Privacy & Data
GeneralPreferences · Editor Settings
HelpMarketplace · Help & Docs

The search box filters the rail by section name and by the settings inside each section — typing sandbox leaves Preferences, the section that owns Sandbox enabled.

Searching the settings rail

Account

Sign in to EditVolt with GitHub or Google. Log in opens your browser; the token comes back to the IDE over 127.0.0.1. Signing in is optional — chat, agent mode and completions all work signed-out with the on-device models.

Account section

AI Models — connecting a model

This is the landing section. Providers are split into Connected (usable now) and Available to connect, each card showing a status pill, an enable switch, a Connect / Configure disclosure, and the capabilities that provider supports — Chat, Completions, Reasoning, Tools, Vision.

AI Models

The two fields at the top

FieldWhat it does
Default providerWhich connected provider new chats use. Picking one immediately stamps a Default badge on that card.
Default modelWhich model of that provider to use. It is filled in for you when you pick a provider, and lists that provider's models.

To connect a cloud provider

  1. Find the card — Claude API, Gemini, or OpenAI (any OpenAI-compatible endpoint works, including a custom base URL).
  2. Click Connect, paste your API key, and save. Keys go to the OS keychain — never to settings.json, and nothing is sent anywhere except that provider.
  3. Flip the card's switch to ENABLED. A provider can be connected but switched off; only enabled providers appear in the chat model picker.
  4. Set it as Default provider if you want it to be the one new chats use.

Claude Code CLI and Ollama are detected rather than keyed. An installed but signed-out CLI sits under Available to connect as Installed — not signed in, with a Sign in button that runs claude auth login for you; the card flips to Signed in on its own once the browser OAuth finishes. Ollama is picked up when it is serving on 127.0.0.1:11434. Every card also has Test, which proves the provider answers before you rely on it.

Connecting the Claude Code CLI

On-device AI

EditVolt ships local models, so chat and agent mode work with no account and no key. Configure on the On-device AI card opens the full local panel:

On-device AI configuration

  • Chat model — pick a bundled model (Gemma 4 E2B / E4B / 12B, Nemotron Nano 12B). The panel warns when a model wants more RAM than the machine has.
  • Import a model folder… — point at a folder of GGUFs you already have.
  • Installed models — every local model with Load & select, Reveal, Delete.
  • Prepare model warms the weights; Test connection proves the local server answers.

Installed local models

Tab-completion models are chosen separately, in Preferences → Editor.

Hugging Face

A five-tab surface for everything Hugging Face.

TabWhat it is for
CloudSign in with an HF token; run models through HF Inference instead of locally.
Hub downloadsSearch the Hub, review a model's licence and size, and download it for on-device use.
DownloadedWhat is on disk: size, quantisation, and the action to expose a model in the model picker.
Train & publishFine-tune from local data and push the result back to the Hub.
MCP & SkillsHub-hosted MCP servers and skills, installed into .editvolt/.

Hugging Face — Cloud

Hugging Face — Hub downloads

Hugging Face — Downloaded

Hugging Face — Train and publish

Hugging Face — MCP and Skills

Memory & Context

Long-lived notes the assistant can reuse across chats, plus the status of the workspace semantic index. Everything here is local.

Memory & Context

ControlSettingDefault
Use saved notes in chatproduct.memory.recall.enabledon
Offer to save facts from chatproduct.memory.autoCaptureoff
Workspace semantic index (read-only status)
+ Add notewrites to the local memory store

Saved notes render as cards with a scope / type badge and a Delete action.

Notes are workspace-scoped: they land in <workspace>/.editvolt/memory.db, so they travel with the project and never leave the machine.

Activity Log →

Opens the Audit panel in the main window: every action this session, filterable by lane (orchestrator, subagent, tool, fs, memory, model downloads), with the outbound counter that backs the telemetry-zero claim.

Customization Studio

One surface for the six things that shape how the AI behaves in this repo. Each tab shows a live count, and everything is a plain file under .editvolt/ that you can commit.

Customization Studio — Rules

TabLives inWhat it does
Rules.editvolt/rules/<name>/RULE.mdStanding guidance injected into the prompt.
Skills.editvolt/skills/<name>/SKILL.mdRepeatable multi-step workflows.
Subagents.editvolt/subagents/<name>/SUBAGENT.mdSpecialised delegates, also reachable via /delegate.
Hooks.editvolt/hooks/<name>/HOOK.mdActions that fire on agent events.
MCP Servers.editvolt/permissions.json + MCP configExternal tools and data.
Commands.editvolt/commands/<name>/COMMAND.mdYour own slash commands.

Include third-party Plugins, Skills, and other configs (product.customization.includeForeign, on by default) imports what you already have from Cursor, Claude and Copilot, including AGENTS.md files and .cursorignore.

Creating one — the same flow for all six

Click + New on any tab. An inline form appears with the target file path shown live underneath, so you always know what is about to be written:

New command form

  1. Name — becomes the folder slug (release-notes.editvolt/commands/release-notes/COMMAND.md).
  2. Description / body — for a rule, the rule text; for a command, what it should do.
  3. Activation — when it applies: Every message, Matching files (a glob), When relevant, or On demand.
  4. Done writes the file, or Create with Agent hands your description to the agent and lets it draft the file for you.

The caret next to + New adds Import from GitHub/GitLab for pulling in a shared customization repo.

Once saved, the item appears in the list with its activation on the right, and the tab count goes up:

Commands after creating one

Clicking a row opens its Markdown file in a tab beside Settings — that file is the source of truth, so editing it by hand is fully supported:

A rule&#39;s RULE.md

Hover a row for its actions:

Row actions

  • Disable — keeps the file but takes the item out of the prompt.
  • Edit — opens the underlying Markdown file.
  • Test — a dry run: tells you whether the rule would apply to the active file, or for a hook, exactly what it would inject or ask to run.
  • Delete — asks first, then removes the item's folder from .editvolt/.

Rules

Standing constraints — "no literal secrets in source", "validate at trust boundaries". Scope each one to Every message, a file glob, When relevant, or On demand.

Skills

Skills

Reusable procedures the model can call, or that you invoke with @Skills.

Subagents

Subagents

Focused delegates — a security reviewer, a docs editor — that the main agent hands work to. Ships with three seeded examples.

Hooks

A hook fires on an agent lifecycle event and either injects text into the turn or runs a shell command.

New hook

FieldOptions
NameFolder slug.
Injected textThe text to inject. Leave empty for a shell hook.
EventpreToolUse, postToolUse, postToolUseFailure, userPromptSubmit, beforeSubmitPrompt, beforeShellExecution, afterShellExecution, beforeReadFile, afterFileEdit, sessionStart, sessionEnd, beforeTabFileRead, afterTabFileEdit, workspaceOpen, preCompact, subagentStop
Actioninject or shell

Hook events

Saved hooks list with the event they fire on:

Hooks list

Shell hooks are gated twice: product.hooks.shellEnabled is off by default, and each command still asks for consent the first time, showing you the exact command. The master switch is product.hooks.enabled, and product.hooks.showInChat renders an inline marker whenever a hook fires. Hooks written by hand into .editvolt/hooks.json are honoured too — both sources are merged at runtime.

MCP Servers

MCP servers

Add a Model Context Protocol server to give the agent extra tools. Each server row offers Start, Stop and Output, and every MCP tool asks for consent the first time it runs; approving with Remember writes it to the mcp allowlist in .editvolt/permissions.json. Project-scoped servers are deliberately ignored inside agent-created managed workspaces, so an agent can never grant itself a launchable binary.

Add MCP server first asks where to write the config:

Where should this MCP server be configured?

  • Project (.editvolt/mcp.json) — shared with everyone who clones the repo. Requires a trust decision from each person before any server it declares actually starts.
  • Global (~/.editvolt/mcp.json) — this machine only, for personal servers you don't want to commit.

Either choice opens the config file with a starter template — it's a plain JSON file you edit directly, listing each server under mcpServers by name:

A newly created mcp.json with an example server

See Customization → MCP servers for the full field reference (stdio vs. HTTP servers, inputs for secrets).

EditVolt Packs

Curated bundles of skills, rules, subagents, MCP servers and hooks, browsable without leaving Settings: categories on the left, search, and Get on each pack. Install to chooses between This project (.editvolt/ in the repo) and Personal (your user profile). Catalog sources are managed further down the same page.

EditVolt Packs

Workspace Understanding

What EditVolt already knows about this project.

Workspace Understanding

ControlWhat it does
Detected platformsPlatform packs recognised in this workspace.
Workspace embeddingsIndex state, chunk count, and the embedding model (all-MiniLM-L6-v2, 384 dims), all local.
Rebuild index / Import files… / Clear index / Clear all projects…Index maintenance.
Don't index these pathsExtra excludes on top of .gitignore (product.context.indexExcludePatterns). Add folder… / Add file…; rebuild to apply.

Remote Development

Two links into the canonical editor settings for Dev Containers (engines, Kubernetes, port forwarding, dotfiles, Features, remote extensions) and WSL (the authenticated EditVolt server listen address). Values are stored once and shared by both surfaces.

Remote Development

Privacy & Data

Privacy &amp; Data

  • Telemetry-zero — EditVolt emits no telemetry of its own. The card is explicit about the exception: the Claude Code CLI provider spawns Anthropic's CLI, which sends its own product telemetry.
  • Keep secrets out of AI context (product.privacy.ignoreFile, on) — excludes .env, keys, .ssh/.aws, secrets* and anything in .editvoltignore from both indexing and chat context. Attaching one is blocked with a notice.
  • This session — actions recorded and outbound count, with Open Audit Dock.

Preferences

Behaviour toggles, each mapping to one setting and taking effect immediately.

Approvals & Execution

Approvals &amp; Execution

ControlSettingDefault
Sandbox enabledchat.agent.sandbox.enabledon — isolates approved shell commands (macOS Seatbelt / Linux Landlock)
File-Deletion Protectionproduct.commands.protectFileDeletionon — rm, unlink … always ask, even under Run Everything
Allow unsandboxed commandschat.agent.sandbox.allowUnsandboxedCommandson — the agent may ask to leave the sandbox
Auto-approve unsandboxed commandschat.agent.sandbox.allowAutoApproveoff — when on, skips the leave-sandbox consent card
Command approvalproduct.commands.runModeauto-review — allowlisted runs immediately, other shell runs sandboxed, otherwise asks. Also allowlist and run-everything. Gates MCP tools and Fetch / web search too.
Network accessproduct.commands.sandboxNetworkModesandbox.json + Defaults — adds built-in package-manager domains. Also sandbox.json Only and Allow All.

Allowlists & Auto-review instructions

Allowlists

Pick which document you are Editing (this project, or your global one — the resolved path is shown), then fill in, one entry per line:

  • Terminal allowlist — command prefixes that may run without asking (git status, npm test).
  • MCP allowlistserver:tool keys or bridged tool names.
  • Fetch host allowlist — hostnames for fetch/download (example.com matches api.example.com).
  • Auto-review allow / block instructions — natural-language hints for the classifier.

Save allowlists writes the file; Open raw JSON edits .editvolt/permissions.json directly. A save replaces only the document you loaded — permissions still take effect as global plus the project's own.

Applying Changes

Applying Changes

ControlSettingDefault
Show review bar after editsproduct.edits.inlinePreviewon
Format on applyproduct.edits.formatOnApplyon
Soft apply (preview before keep)product.edits.softApplyoff
Shadow worktreeproduct.chat.shadowWorktreeoff — runs agent edits in a separate git worktree
Confirm when editing a previous messageproduct.chat.editResend.confirmon

Notifications

ControlSettingDefault
EditVolt announcementsproduct.announcements.enabledon

Chat

ControlSettingDefault
Workspace toolsproduct.tools.enabledon
Stream responsesproduct.modes.streamingon
Stop on first errorproduct.modes.stopOnFirstErroroff
Parallel read-only toolsproduct.chat.parallelToolCallson
Wake on background command failureproduct.chat.wakeOnBackgroundExit
Design: auto-run safe commandsproduct.design.autoRunSafeCommandson
Output styleproduct.assistant.outputStyledefault · concise · explanatory · structured
Max file read size (bytes)product.tools.maxReadFileBytes16 KB – 1 MB
Agent iteration depthproduct.agent.maxToolRounds1–10 tool round-trips per turn

Editor

ControlSetting
Inline completionsproduct.completions.enabled
Tab predictionsproduct.completions.tabPredictions.enabled
Tab to next problemproduct.completions.nextEdit.enabled
Stream inline completionsproduct.completions.streaming.enabled
Next-edit propagation (default off)product.completions.propagation.enabled
Completion source — Local / Cloud / Autoproduct.completions.source
Tab prediction source — Auto / Local only / Cloudproduct.completions.tabPredictions.cloud
Completion debounce (ms, min 80)product.completions.debounceMs
Propagation min similarity (0–1)product.completions.propagation.minScore

Workspace index

ControlSetting
Auto-search the workspaceproduct.context.autoSearch
Index at startupproduct.context.proactiveIndex
Index embedding acceleration — Auto / CPU only / Prefer GPUproduct.context.indexAcceleration
Auto-reindex interval (days; 7 = weekly, 0 = off)product.context.indexReconcileIntervalDays

Editor Settings → · Marketplace → · Help & Docs →

  • Editor Settings opens the standard editor settings UI (fonts, keybindings, language settings, everything not EditVolt-specific).
  • Marketplace opens the Extensions view (Open VSX).
  • Help & Docs opens the documentation in your browser.

Changing the colour theme

The Settings window follows the editor theme; it has no theme picker of its own. Change the theme in Editor Settings (or ⌘K ⌘TPreferences: Color Theme), and Settings repaints with it:

Settings in a dark theme

Customization Studio in a light theme

Fixed since the first draft of this page

These were open when this page was first written and are fixed in the current build; the screenshots above are all re-shot from the fixed build.

AreaWhat changed
Memory & Context → + Add noteNotes were rejected by the local memory host and the failure was swallowed. Notes now persist to <workspace>/.editvolt/memory.db, and a failed write raises a visible error.
Auto-approve unsandboxed commandsShipped on despite its "Default off" copy. Now off by default on every OS.
Help & DocsPointed at a dead GitHub URL; now opens the documentation site from product.json.
Naming"Assistant" and a literal PRODUCT placeholder appeared in Settings copy and in the Audit panel; both now read EditVolt, and seeded customizations are named editvolt-default-*.
SearchMatched section names only; now matches the settings inside each section.
Section scrollingSections opened at the previous section's scroll offset; they now open at the top.
Capability chipsThe last chip's label was clipped; the row now wraps.
Dark themeTwo scrollbar gutters stayed white; they now follow the theme.
Studio rowsActions were right-click only; disable / edit / test / delete now appear on hover.
Provider groupingAn installed-but-signed-out Claude Code CLI was listed as Connected; it now sits under Available to connect, and the default-provider dropdown only offers enabled providers.