Skip to main content

.vai.json Schema

The .vai.json file stores project-level configuration. Created by vai init, it's read automatically by all vai commands.

Full Schema

{
"model": "voyage-4-large",
"db": "myapp",
"collection": "knowledge",
"field": "embedding",
"inputType": "document",
"dimensions": 1024,
"index": "vector_index",
"chunk": {
"strategy": "recursive",
"size": 512,
"overlap": 50
},
"chat": {
"mode": "pipeline",
"systemPrompt": "You are a helpful assistant...",
"maxContextDocs": 5,
"maxConversationTurns": 20
}
}

Fields

Core Settings

FieldTypeDefaultDescription
modelstringvoyage-4-largeDefault embedding model
dbstringvaiMongoDB database name
collectionstringembeddingsMongoDB collection name
fieldstringembeddingEmbedding field name in documents
inputTypestringdocumentDefault input type for embedding
dimensionsnumber1024Output dimensions
indexstringvector_indexVector search index name

Chunk Settings

FieldTypeDefaultDescription
chunk.strategystringrecursiveChunking strategy: fixed, sentence, paragraph, recursive, markdown
chunk.sizenumber512Target chunk size in characters
chunk.overlapnumber50Overlap between chunks in characters

Chat Settings

FieldTypeDefaultDescription
chat.modestringpipelineChat mode: pipeline or agent
chat.systemPromptstringCustom system prompt for chat
chat.maxContextDocsnumber5Max documents retrieved per turn
chat.maxConversationTurnsnumber20Max turns before truncation

Resolution Order

vai resolves settings in this order (first wins):

  1. CLI flags (--model, --db, etc.)
  2. .vai.json (project config)
  3. Environment variables (VOYAGE_API_KEY, MONGODB_URI, VAI_DB, VAI_COLLECTION)
  4. ~/.vai/config.json (global config)
  5. Built-in defaults

File Location

.vai.json is searched starting from the current directory upward to the filesystem root. The first one found is used.

# Create with interactive wizard
vai init

# Create with defaults
vai init --yes

# Show the resolved config
cat .vai.json

Further Reading