Reference
Configuration files
Vector's settings are JSON files named vector.json, or vector.jsonc, which may
carry comments. Some of the desktop app's Settings, such as a custom provider or a subagent switch, save
to one of these files for you (see below for which), and the keys this page lists are ones you can write
yourself. Start a file with
"$schema": "https://vectordev.ai/config.json" for completion and checks in your editor.
Where Vector reads them
- A repository
vector.jsonorvector.jsoncin the folder you work in and in each folder above it up to the repository's root, and the same names in the repository's.vectorfolders. Keys that could run code or send your work elsewhere apply once you trust the repository; see Before you trust a repository.- Every repository, in the desktop app
- The desktop app has two config folders of its own. Its Settings save to
vector.jsonc, or tovector.jsonwhen only that one exists, in~/Library/Application Support/ai.vector.app/xdg-config/vector/on macOS,%APPDATA%\ai.vector.app\xdg-config\vector\on Windows and~/.config/ai.vector.app/xdg-config/vector/on Linux (invectorunderXDG_CONFIG_HOMEinstead, when the app was started with that variable set). Avector.jsonorvector.jsoncyou write in its own config folder,~/Library/Application Support/ai.vector.app/config/vector/on macOS,%APPDATA%\ai.vector.app\config\vector\on Windows and~/.config/ai.vector.app/config/vector/on Linux, is read after the one Settings save to, so where both set a key, yours wins. - Every repository, in the terminal
- The terminal reads
~/.config/vector/vector.json(%USERPROFILE%\.config\vector\vector.jsonon Windows) instead, so a setting there does not reach the desktop app. - Both
~/.vector/vector.json(%USERPROFILE%\.vector\vector.jsonon Windows) is read by the desktop app and the terminal alike.
Vector merges every file it reads. Objects such as provider, mcp,
agent and command combine entry by entry, so each file can add entries of its own,
and the instructions of every file add up. A company can also set a policy that overrides your
own and a repository's settings and can lock keys; see For companies.
Values from the environment and from files
Anywhere in a settings file, {env:NAME} becomes the value of the environment variable
NAME, or nothing when it is not set, and {file:path} becomes the contents of
that file, trimmed. A relative path starts from the settings file's folder, and one starting with
~/ from your home folder. A {file:} that names a missing file is an error in that
settings file. Use them to keep keys and long prompts out of the file:
{
"provider": {
"gateway": {
"options": {
"baseURL": "https://llm.example.com/v1",
"apiKey": "{env:GATEWAY_API_KEY}"
}
}
},
"agent": {
"sql-review": {
"description": "Reviews SQL migrations",
"mode": "subagent",
"prompt": "{file:./prompts/sql-review.md}"
}
}
}
In a repository you have not trusted, Vector leaves both as written and reads neither. MCP servers can
also name a credential from Vector's own store with {vault:NAME}; see
MCP servers in vector.json.
Before you trust a repository
Until you trust a repository, Vector ignores the keys in its settings that could run code or send your work
somewhere else: provider, model, mcp, plugin,
agent, command, instructions, skills,
formatter, lsp and shell among them. It still applies what only
narrows Vector, such as deny rules and disabled_providers. See
Repository trust.
Keys and where they are described
- provider
- Custom providers and models that are not in the catalog.
- enabled_providers and disabled_providers
- Allow and block providers.
- plugin
- Plugins.
- agent and default_agent
- Custom agents.
- command
- Custom commands.
- skills
skills.pathsandskills.urls, under Skills.- instructions
- Instruction files.
- formatter and lsp
- Formatters and language servers.
- compaction
- Context and compaction.
- permission
- Permissions.
- local
- Vector Local, read only from your own settings and your company's policy.