Skip to main content

Project Config

The .vai.json file stores project-level defaults so you don't need to repeat flags on every command. Create one with:

vai init

This launches an interactive wizard. For a non-interactive setup with sensible defaults:

vai init --yes

Schema​

{
"model": "voyage-4-large",
"db": "myapp",
"collection": "knowledge",
"field": "embedding",
"dimensions": 1024,
"chunk": {
"strategy": "recursive",
"size": 512,
"overlap": 50
},
"chat": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"maxDocs": 5,
"maxTurns": 10,
"systemPrompt": "You are a helpful assistant.",
"history": true
}
}

Fields​

FieldTypeDefaultDescription
modelstringvoyage-4-largeVoyage AI embedding model
dbstring—MongoDB database name
collectionstring—MongoDB collection name
fieldstringembeddingField name for storing vectors
dimensionsnumber1024Embedding dimensions
chunk.strategystringrecursiveChunking strategy: fixed, sentence, paragraph, recursive, markdown
chunk.sizenumber512Target chunk size in characters
chunk.overlapnumber50Overlap between adjacent chunks
chat.providerstring—LLM provider: anthropic, openai, ollama
chat.modelstring—LLM model name
chat.maxDocsnumber5Max documents per query
chat.maxTurnsnumber10Max conversation turns as context
chat.systemPromptstring—System prompt for the LLM
chat.historybooleantruePersist chat history to MongoDB

Override Precedence​

CLI flags always take priority over .vai.json:

# Uses .vai.json defaults
vai query "how does auth work?"

# Overrides model and collection for this command only
vai query "how does auth work?" --model voyage-4 --collection archive

Next Steps​