Grepai Ignore Patterns

yoanbernabeu/grepai-skills/skills/configuration/grepai-ignore-patterns

by yoanbernabeu382d40261c0d41109c6e11872574ba0be9b064d0No licenseListed Oct 9, 2026Updated Oct 9, 2026

Configure ignore patterns in GrepAI. Use this skill when excluding files and directories from indexing.

Instructions onlySoftware Development
AI-generated overview

Configures GrepAI ignore patterns to exclude files and directories from code indexing.

What it does
This skill explains how to configure ignore patterns for GrepAI indexing through .grepai/config.yaml, which is also automatically supplemented by .gitignore. It documents pattern syntax for directories, files, paths and globs, lists default patterns, and provides ready-made configurations for JavaScript, Go, Python, Rust, Java/Kotlin and monorepo projects. It also covers excluding tests, generated code and documentation, verifying index status, troubleshooting common problems, and re-indexing after changes.
When to use it
Use it when you need to keep test files, vendored or generated code, build outputs or documentation out of GrepAI search results. It also fits when reducing index size, customizing which files GrepAI indexes, or fixing patterns that are not taking effect.
Requirements
Requires GrepAI to be installed and a project with a .grepai configuration; the skill is instructions only and ships no scripts.

GrepAI Ignore Patterns

This skill covers how to configure ignore patterns to exclude files and directories from GrepAI indexing.

When to Use This Skill

  • Excluding test files from search results
  • Ignoring generated or vendored code
  • Reducing index size by excluding unnecessary files
  • Customizing which files GrepAI indexes

How Ignore Patterns Work

GrepAI uses two sources for ignore patterns:

  1. .grepai/config.yaml - Custom patterns you define
  2. .gitignore - Automatically respected

Configuration Location

yaml
# .grepai/config.yamlignore:  - pattern1  - pattern2

Pattern Syntax

Directory Patterns

yaml
ignore:  # Exact directory name (matches anywhere)  - node_modules  - vendor  - __pycache__
  # With trailing slash (explicit directory)  - dist/  - build/  - coverage/

File Patterns

yaml
ignore:  # Exact filename  - package-lock.json  - yarn.lock
  # Wildcard patterns  - "*.min.js"  - "*.min.css"  - "*.map"  - "*.lock"

Path Patterns

yaml
ignore:  # Paths containing substring  - /tests/  - /spec/  - /__tests__/
  # Specific paths  - src/generated/  - api/swagger/

Glob Patterns

yaml
ignore:  # Double star (recursive)  - "**/test/**"  - "**/mock/**"
  # Single star (single level)  - "*.test.js"  - "*.spec.ts"  - "*_test.go"

Default Ignore Patterns

GrepAI's default configuration includes:

yaml
ignore:  # Version control  - .git  - .svn  - .hg
  # GrepAI itself  - .grepai
  # Package managers  - node_modules  - vendor  - .npm  - .yarn
  # Build outputs  - target  - dist  - build  - out
  # Cache directories  - __pycache__  - .pytest_cache  - .mypy_cache  - .cache
  # Framework outputs  - .next  - .nuxt  - .output

Common Ignore Configurations

JavaScript/TypeScript Project

yaml
ignore:  - node_modules  - dist  - build  - coverage  - .nyc_output  - "*.min.js"  - "*.bundle.js"  - "*.map"  - package-lock.json  - yarn.lock  - pnpm-lock.yaml

Go Project

yaml
ignore:  - vendor  - bin  - "*.pb.go"       # Protobuf generated  - "*_mock.go"     # Mocks  - "mocks/"  - go.sum

Python Project

yaml
ignore:  - __pycache__  - .pytest_cache  - .mypy_cache  - .venv  - venv  - env  - "*.pyc"  - "*.pyo"  - .eggs  - "*.egg-info"  - dist  - build

Rust Project

yaml
ignore:  - target  - Cargo.lock  - "*.rlib"

Java/Kotlin Project

yaml
ignore:  - target  - build  - .gradle  - "*.class"  - "*.jar"  - "*.war"

Monorepo

yaml
ignore:  # Common  - node_modules  - dist  - build  - coverage
  # Specific packages to exclude  - packages/legacy/  - packages/deprecated/
  # Generated  - "**/generated/**"  - "**/__generated__/**"

Excluding Test Files

To focus search on production code:

yaml
ignore:  # Test directories  - tests/  - test/  - __tests__/  - spec/
  # Test files by pattern  - "*.test.js"  - "*.test.ts"  - "*.spec.js"  - "*.spec.ts"  - "*_test.go"  - "test_*.py"  - "*_test.py"

Alternative: Use search boosting instead to penalize (not exclude) tests:

yaml
search:  boost:    penalties:      - pattern: /tests/        factor: 0.5      - pattern: _test.        factor: 0.5

Excluding Generated Code

yaml
ignore:  # Generated markers  - "**/generated/**"  - "*.generated.*"  - "*.gen.*"
  # Specific generators  - "*.pb.go"           # Protobuf  - "*.graphql.ts"      # GraphQL codegen  - "*.d.ts"            # TypeScript declarations  - "swagger_*.go"      # Swagger  - "openapi_*.ts"      # OpenAPI

Excluding Documentation

yaml
ignore:  - docs/  - documentation/  - "*.md"  - "*.mdx"  - "*.rst"

Verifying Ignore Patterns

Check what's being indexed:

bash
# Check index statusgrepai status
# Output shows file count# If too high, add more ignore patterns

Common Issues

❌ Problem: Index is too large ✅ Solution: Add more ignore patterns for dependencies and generated files

❌ Problem: Search returns vendor/test code ✅ Solution: Either ignore or use boosting penalties

❌ Problem: Pattern not working ✅ Solution: Check syntax - use quotes for patterns with special characters:

yaml
ignore:  - "*.min.js"  # Correct  - *.min.js    # May cause YAML parsing issues

❌ Problem: Need to include previously ignored files ✅ Solution: Remove from ignore list and re-run grepai watch

Best Practices

  1. Start with defaults: Add patterns as needed
  2. Exclude dependencies: Always ignore node_modules, vendor, etc.
  3. Exclude build outputs: dist, build, target
  4. Exclude lock files: Large, not useful for search
  5. Consider boosting vs ignoring: Penalize instead of exclude for test files
  6. Quote special characters: "*.min.js" not *.min.js

Re-indexing After Changes

After modifying ignore patterns:

bash
# Stop existing daemongrepai watch --stop
# Clear index and restartrm .grepai/index.gobgrepai watch

Output Format

After configuring ignore patterns:

✅ Ignore Patterns Configured
   Patterns: 15 configured
   Categories:   - Directories: node_modules, vendor, dist, build   - File types: *.min.js, *.map, *.lock   - Paths: /tests/, /docs/
   Also respecting: .gitignore
   Run 'grepai watch' to re-index with new patterns.

Source and attribution

Source:yoanbernabeu/grepai-skillsinskills/configuration/grepai-ignore-patternsat commit382d402

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal