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-init

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.4 KB
---
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
```

Overview

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.

How this skill works

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.

When to use it

  • When setting up GrepAI for the first time in a codebase
  • Before running grepai watch to build your project's index
  • When onboarding a new repository or creating a monorepo root index
  • When you want a starter config to customize for embeddings or storage
  • When you need to reset the GrepAI configuration and start fresh

Best practices

  • Run init at the repository root where the main source lives
  • Add .grepai/ to your .gitignore because the index is machine-specific
  • Review and update embedder and store settings to match your environment
  • Customize ignore patterns to exclude vendored or build artifacts
  • If using Ollama, ensure ollama serve is running before indexing

Example use cases

  • Initialize GrepAI in a new project and then run grepai watch to build a local index
  • Set up a monorepo root so a single index covers multiple packages
  • Switch embedder to OpenAI by editing .grepai/config.yaml after init
  • Change storage backend to Postgres for centralized indices in CI or team environments
  • Reset an old configuration by deleting .grepai and re-running grepai init

FAQ

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.