~/.config/v3code/globalYour personal defaults for every project. Holds v3code.json, plus agent/, command/, and skill/ folders.
Where V3Code Terminal reads its settings from, how project and global config combine, and every option worth knowing.
Everything is configurable from a JSON file, and nothing has to be. V3Code Terminal runs with sensible defaults — configuration is for when you want a specific model, tighter permissions, or your own agents and commands.
Two levels, and they merge. Global settings apply everywhere; project settings apply to one repository and win where they overlap.
~/.config/v3code/globalYour personal defaults for every project. Holds v3code.json, plus agent/, command/, and skill/ folders.
.v3code/ in your projectprojectSettings for this repository, usually committed so your team shares them. Same layout as the global folder.
A v3code.json or v3code.jsonc file at the root of your project works too. Files are searched from your current directory upward, stopping at the worktree root, so a config in a subfolder can refine the one above it.
To see exactly what V3Code resolved — after every file and override merged:
v3code debug configv3code debug paths{ "$schema": "https://v3code.dev/config.json", "model": "anthropic/claude-sonnet-4-5", "small_model": "anthropic/claude-haiku-4-5", "default_agent": "build", "instructions": ["./docs/conventions.md"], "permission": { "edit": "ask", "bash": { "*": "ask", "git status*": "allow", "rm *": "deny", }, },}.jsonc files — and .json files here — accept comments and trailing commas.
| Option | What it does |
|---|---|
model |
The default model, as provider/model. |
small_model |
A cheaper model for small internal jobs like session titles. |
default_agent |
Which agent a new session starts in. |
agent |
Override any built-in agent — plan, build, general, explore, and the internal title, summary, compaction. |
provider |
Per-provider settings and custom endpoints. |
disabled_providers / enabled_providers |
Narrow which providers appear at all. |
| Option | What it does |
|---|---|
permission |
Approval rules per tool and pattern. See Permissions. |
instructions |
Extra instruction files to load, by path or glob. |
command |
Custom slash commands defined inline. |
skills |
Extra skill folders (paths) and skill URLs (urls). |
mcp |
MCP servers, local or remote. See MCP servers. |
plugin |
Plugins to load. |
snapshot |
Whether file snapshots are taken, enabling revert. |
share |
manual, auto, or disabled for session sharing. |
autoupdate |
true, false, or "notify". |
| Option | What it does |
|---|---|
shell |
The shell used for the terminal and the bash tool. |
formatter |
Formatters to run on edited files. |
lsp |
Language server configuration. |
watcher.ignore |
Paths the file watcher should skip. |
logLevel |
How much detail goes into the logs. |
username |
The name the agent calls you. |
tool_output.max_lines / max_bytes |
Cap how much tool output enters the context. |
When a session approaches the model’s context limit, V3Code condenses the earlier part instead of failing.
| Option | Default | What it does |
|---|---|---|
compaction.auto |
true |
Compact automatically when context fills. |
compaction.prune |
false |
Drop old tool outputs. |
compaction.tail_turns |
2 |
Recent user turns kept word-for-word. |
compaction.preserve_recent_tokens |
— | Token ceiling on what’s kept verbatim. |
compaction.reserved |
— | Buffer left free so compaction itself can run. |
Beyond instructions, V3Code picks up instruction files automatically — the same AGENTS.md convention the editor uses.
It reads a global AGENTS.md from your config directory (or ~/.claude/CLAUDE.md), then looks for a project file: AGENTS.md, then CLAUDE.md, then the deprecated CONTEXT.md.
Entries in instructions may be relative paths, absolute paths, globs, ~/ paths, or https:// URLs.
Drop a markdown file into a command/ folder and it becomes a slash command. .v3code/command/review.md becomes /review; a file in a subfolder becomes a namespaced name.
---description: Review staged changes before committing---
Run `git diff --staged`, then review the changes for defects,missing error handling, and anything touching auth or user input.Commands can also be declared inline under command in v3code.json.
V3Code follows the XDG layout, so nothing lands in surprising places:
| Location | Contents |
|---|---|
~/.config/v3code/ |
Configuration, agents, commands, skills |
~/.local/share/v3code/ |
Sessions, logs, plans, repositories |
~/.cache/v3code/ |
Downloaded skills, binaries |
~/.v3code/semanticdb/ |
The local semantic index |
Run v3code debug paths to print the resolved locations on your machine.
Permissions & privacy covers the permission block in depth, Agents & subagents covers agent files, and Skills & instructions covers skill discovery.