Complete configuration reference for GrepAI. Use this skill when you need to understand all available configuration options.
GrepAI Configuration Reference
This skill provides a complete reference for all GrepAI configuration options in .grepai/config.yaml.
When to Use This Skill
- Understanding all available configuration options
- Optimizing GrepAI for your specific use case
- Troubleshooting configuration issues
- Setting up advanced configurations
Configuration File Location
/your/project/.grepai/config.yaml
Complete Configuration Schema
version: 1
# ═══════════════════════════════════════════════════════════════
# EMBEDDER CONFIGURATION
# Converts code text into vector embeddings
# ═══════════════════════════════════════════════════════════════
embedder:
# Provider: ollama | openai | lmstudio
provider: ollama
# Model name (depends on provider)
# Ollama: nomic-embed-text, bge-m3, mxbai-embed-large
# OpenAI: text-embedding-3-small, text-embedding-3-large
# LM Studio: nomic-embed-text-v1.5, bge-small-en-v1.5
model: nomic-embed-text
# API endpoint URL
# Ollama default: http://localhost:11434
# LM Studio default: http://localhost:1234
# OpenAI: uses official API
endpoint: http://localhost:11434
# Vector dimensions (auto-detected if omitted)
# nomic-embed-text: 768
# text-embedding-3-small: 1536
# text-embedding-3-large: 3072
dimensions: 768
# API key (for OpenAI, supports env vars)
api_key: ${OPENAI_API_KEY}
# Parallel requests (OpenAI only, for speed)
parallelism: 4
# ═══════════════════════════════════════════════════════════════
# STORE CONFIGURATION
# Where vector embeddings are stored
# ═══════════════════════════════════════════════════════════════
store:
# Backend: gob | postgres | qdrant
backend: gob
# PostgreSQL configuration (when backend: postgres)
postgres:
dsn: postgres://user:password@localhost:5432/grepai
# Qdrant configuration (when backend: qdrant)
qdrant:
endpoint: localhost
port: 6334
use_tls: false
api_key: your-qdrant-api-key # Optional
# ═══════════════════════════════════════════════════════════════
# CHUNKING CONFIGURATION
# How code files are split for embedding
# ═══════════════════════════════════════════════════════════════
chunking:
# Tokens per chunk (smaller = more precise, larger = more context)
# Recommended: 256-1024
size: 512
# Overlap between chunks (preserves context at boundaries)
# Recommended: 10-20% of size
overlap: 50
# ═══════════════════════════════════════════════════════════════
# WATCH CONFIGURATION
# File watching daemon settings
# ═══════════════════════════════════════════════════════════════
watch:
# Debounce delay in milliseconds
# Groups rapid file changes together
debounce_ms: 500
# ═══════════════════════════════════════════════════════════════
# TRACE CONFIGURATION
# Call graph analysis settings
# ═══════════════════════════════════════════════════════════════
trace:
# Extraction mode: fast | precise
# fast: Uses regex, no dependencies, faster
# precise: Uses tree-sitter AST parsing, more accurate
mode: fast
# Languages to analyze for call graphs
enabled_languages:
- .go
- .js
- .ts
- .jsx
- .tsx
- .py
- .php
- .c
- .h
- .cpp
- .hpp
- .cc
- .cxx
- .rs
- .zig
- .cs
- .pas
- .dpr
# Patterns to exclude from trace analysis
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
- "*.test.js"
# ═══════════════════════════════════════════════════════════════
# SEARCH CONFIGURATION
# Search result scoring and ranking
# ═══════════════════════════════════════════════════════════════
search:
# Score boosting configuration
boost:
enabled: true
# Reduce scores for certain paths
penalties:
- pattern: /tests/
factor: 0.5
- pattern: _test.
factor: 0.5
- pattern: .spec.
factor: 0.5
- pattern: /docs/
factor: 0.6
- pattern: /vendor/
factor: 0.3
- pattern: /node_modules/
factor: 0.3
# Increase scores for certain paths
bonuses:
- pattern: /src/
factor: 1.1
- pattern: /lib/
factor: 1.1
- pattern: /core/
factor: 1.2
- pattern: /app/
factor: 1.1
# Hybrid search (vector + keyword)
hybrid:
enabled: false
k: 60 # BM25 parameter
# ═══════════════════════════════════════════════════════════════
# IGNORE CONFIGURATION
# Files and directories to exclude from indexing
# ═══════════════════════════════════════════════════════════════
ignore:
# Directories
- .git
- .grepai
- .svn
- .hg
- node_modules
- vendor
- target
- __pycache__
- .pytest_cache
- dist
- build
- out
- .next
- .nuxt
# Files
- "*.min.js"
- "*.min.css"
- "*.bundle.js"
- "*.map"
- "*.lock"
- package-lock.json
- yarn.lock
- pnpm-lock.yaml
- go.sum
# Generated
- "*.generated.*"
- "*.pb.go"
- "*.d.ts"
Configuration by Use Case
Small Personal Project
version: 1
embedder:
provider: ollama
model: nomic-embed-text
store:
backend: gob
chunking:
size: 512
overlap: 50
Large Codebase
version: 1
embedder:
provider: ollama
model: bge-m3 # Larger model
parallelism: 4
store:
backend: postgres # Scalable storage
postgres:
dsn: postgres://user:pass@localhost:5432/grepai
chunking:
size: 768 # Larger chunks
overlap: 100
Team Environment
version: 1
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
parallelism: 8
store:
backend: qdrant
qdrant:
endpoint: qdrant.internal.company.com
port: 6334
use_tls: true
Maximum Privacy
version: 1
embedder:
provider: ollama
model: nomic-embed-text
endpoint: http://localhost:11434
store:
backend: gob # Local file only
Environment Variables
GrepAI supports environment variable substitution:
embedder:
api_key: ${OPENAI_API_KEY}
store:
postgres:
dsn: ${DATABASE_URL}
Set in your shell:
export OPENAI_API_KEY="sk-..."
export DATABASE_URL="postgres://..."
Validating Configuration
Check your config is valid:
grepai status
If there are config errors, they'll be displayed.
Configuration Precedence
.grepai/config.yamlin current directory- Workspace configuration (if using workspaces)
- Default values
Best Practices
- Start simple: Use defaults, optimize later
- Match chunking to code style: Larger chunks for verbose code
- Use boosting: Penalize test/vendor, boost src/lib
- Secure API keys: Use environment variables, never commit
- Exclude noise: Ignore generated files, dependencies
Output Format
Valid configuration status:
✅ GrepAI Configuration Valid
Embedder: ollama (nomic-embed-text)
Storage: gob (.grepai/index.gob)
Chunking: 512 tokens, 50 overlap
Trace mode: fast
Languages: 18 enabled
Ignore patterns: 12 configured
Boosting: enabled
You Might Also Like
Related Skills

verify
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
facebook
test
Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.
facebook
feature-flags
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
facebook
extract-errors
Use when adding new error messages to React, or seeing "unknown error code" warnings.
facebook