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
dbstringMongoDB database name
collectionstringMongoDB 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.providerstringLLM provider: anthropic, openai, ollama
chat.modelstringLLM model name
chat.maxDocsnumber5Max documents per query
chat.maxTurnsnumber10Max conversation turns as context
chat.systemPromptstringSystem 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