GrepAI Init
This skill covers the grepai init command and project initialization.
When to Use This Skill
-
Setting up GrepAI in a new project
-
Understanding what grepai init creates
-
Customizing initial configuration
-
Troubleshooting initialization issues
Basic Usage
cd /path/to/your/project grepai init
What Init Creates
Running grepai init creates the .grepai/ directory with:
.grepai/ ├── config.yaml # Configuration file ├── index.gob # Vector index (created by watch) └── symbols.gob # Symbol index for trace (created by watch)
Default Configuration
The generated config.yaml :
version: 1
embedder: provider: ollama model: nomic-embed-text endpoint: http://localhost:11434
store: backend: gob
chunking: size: 512 overlap: 50
watch: debounce_ms: 500
trace: mode: fast enabled_languages: - .go - .js - .ts - .jsx - .tsx - .py - .php - .c - .h - .cpp - .hpp - .cc - .cxx - .rs - .zig - .cs - .pas - .dpr
ignore:
- .git
- .grepai
- node_modules
- vendor
- target
- pycache
- dist
- build
Understanding Default Settings
Embedder Settings
Setting Default Purpose
provider
ollama
Local embedding generation
model
nomic-embed-text
768-dimension model
endpoint
Ollama API URL
Store Settings
Setting Default Purpose
backend
gob
Local file storage
Chunking Settings
Setting Default Purpose
size
512
Tokens per chunk
overlap
50
Overlap for context
Watch Settings
Setting Default Purpose
debounce_ms
500
Wait time before re-indexing
Ignore Patterns
Default patterns exclude:
-
Version control: .git
-
GrepAI data: .grepai
-
Dependencies: node_modules , vendor
-
Build outputs: target , dist , build
-
Cache: pycache
Customizing After Init
Edit .grepai/config.yaml to customize:
Change Embedding Provider
embedder: provider: openai model: text-embedding-3-small api_key: ${OPENAI_API_KEY}
Change Storage Backend
store: backend: postgres postgres: dsn: postgres://user:pass@localhost:5432/grepai
Add Custom Ignore Patterns
ignore:
- .git
- .grepai
- node_modules
- "*.min.js"
- "*.bundle.js"
- coverage/
- .nyc_output/
Init in Monorepos
For monorepos, init at the root:
cd /path/to/monorepo grepai init
Or use workspaces for separate indices:
grepai workspace create my-workspace grepai workspace add my-workspace /path/to/project1 grepai workspace add my-workspace /path/to/project2
Re-Initialization
If you need to reset:
Remove existing config
rm -rf .grepai
Re-initialize
grepai init
Warning: This deletes your index. You'll need to re-run grepai watch .
Verifying Initialization
After init, verify with:
Check config exists
cat .grepai/config.yaml
Check status (will show no index yet)
grepai status
Common Issues
❌ Problem: .grepai already exists ✅ Solution: Delete it first or edit existing config:
rm -rf .grepai && grepai init
❌ Problem: Config created but Ollama not running ✅ Solution: Start Ollama before running grepai watch :
ollama serve
❌ Problem: Wrong directory initialized ✅ Solution: Remove .grepai and init in correct directory
Best Practices
-
Init at project root: Where your main code lives
-
Add .grepai/ to .gitignore : Index is machine-specific
-
Customize ignore patterns: Exclude generated/vendored code
-
Review config after init: Adjust for your stack
Example .gitignore Addition
GrepAI
.grepai/
Output Format
After successful initialization:
✅ GrepAI Initialized
Config: .grepai/config.yaml
Default settings:
- Embedder: Ollama (nomic-embed-text)
- Storage: GOB (local file)
- Chunking: 512 tokens, 50 overlap
Next steps:
- Ensure Ollama is running: ollama serve
- Start indexing: grepai watch