home / skills / yoanbernabeu / grepai-skills / grepai-init
This skill initializes GrepAI in a project by creating .grepai with default config and indices, then guides setup.
npx playbooks add skill yoanbernabeu/grepai-skills --skill grepai-initReview the files below or copy the command above to add this skill to your agents.
---
name: grepai-init
description: Initialize GrepAI in a project. Use this skill when setting up GrepAI for the first time in a codebase.
---
# 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
```bash
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`:
```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` | `http://localhost:11434` | 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
```yaml
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
```
### Change Storage Backend
```yaml
store:
backend: postgres
postgres:
dsn: postgres://user:pass@localhost:5432/grepai
```
### Add Custom Ignore Patterns
```yaml
ignore:
- .git
- .grepai
- node_modules
- "*.min.js"
- "*.bundle.js"
- coverage/
- .nyc_output/
```
## Init in Monorepos
For monorepos, init at the root:
```bash
cd /path/to/monorepo
grepai init
```
Or use workspaces for separate indices:
```bash
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:
```bash
# 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:
```bash
# 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:
```bash
rm -rf .grepai && grepai init
```
❌ **Problem:** Config created but Ollama not running
✅ **Solution:** Start Ollama before running `grepai watch`:
```bash
ollama serve
```
❌ **Problem:** Wrong directory initialized
✅ **Solution:** Remove `.grepai` and init in correct directory
## Best Practices
1. **Init at project root:** Where your main code lives
2. **Add `.grepai/` to `.gitignore`:** Index is machine-specific
3. **Customize ignore patterns:** Exclude generated/vendored code
4. **Review config after init:** Adjust for your stack
## Example .gitignore Addition
```gitignore
# 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:
1. Ensure Ollama is running: ollama serve
2. Start indexing: grepai watch
```
This skill initializes GrepAI in a project by creating the initial configuration and directory structure needed to start indexing and tracing code. It walks you through the default config, how to customize providers and storage, and what to do after initialization. Use it to set up GrepAI quickly and safely in new repositories or monorepos.
Running the init command creates a .grepai directory containing config.yaml and placeholders for the vector and symbol stores. The generated config sets defaults for the embedder (Ollama), local storage (gob), chunking, watch debounce, trace languages, and ignore patterns. After init, you typically start Ollama (if using the default embedder) and run grepai watch to build the index.
What does grepai init create?
It creates a .grepai directory with config.yaml and placeholders for the index (index.gob) and symbol store (symbols.gob) which are populated when you run grepai watch.
I already have .grepai in the repo. How do I reinitialize?
Remove the existing directory (rm -rf .grepai) and run grepai init again. Warning: this deletes your index and symbols, so you must re-run grepai watch.
How do I change the embedding provider?
Edit .grepai/config.yaml to set embedder.provider and model, adding provider-specific credentials like an API key or endpoint.