grepai-languages▌
yoanbernabeu/grepai-skills · updated Apr 8, 2026
This skill covers the programming languages supported by GrepAI for indexing and call graph analysis.
GrepAI Supported Languages
This skill covers the programming languages supported by GrepAI for indexing and call graph analysis.
When to Use This Skill
- Checking if your language is supported
- Configuring language-specific settings
- Understanding trace capabilities per language
- Troubleshooting language-related issues
Supported Languages Overview
GrepAI supports indexing for all text-based files, but has enhanced support for specific programming languages.
Full Support (Index + Trace)
| Language | Extensions | Index | Trace |
|---|---|---|---|
| Go | .go |
✅ | ✅ |
| JavaScript | .js, .jsx |
✅ | ✅ |
| TypeScript | .ts, .tsx |
✅ | ✅ |
| Python | .py |
✅ | ✅ |
| PHP | .php |
✅ | ✅ |
| C | .c, .h |
✅ | ✅ |
| C++ | .cpp, .hpp, .cc, .cxx, .hh |
✅ | ✅ |
| Rust | .rs |
✅ | ✅ |
| Zig | .zig |
✅ | ✅ |
| C# | .cs |
✅ | ✅ |
| Java | .java |
✅ | ✅ |
| Pascal/Delphi | .pas, .dpr |
✅ | ✅ |
Index Only (No Trace)
| Language | Extensions | Index | Trace |
|---|---|---|---|
| Ruby | .rb |
✅ | ❌ |
| Swift | .swift |
✅ | ❌ |
| Kotlin | .kt, .kts |
✅ | ❌ |
| Scala | .scala |
✅ | ❌ |
| Lua | .lua |
✅ | ❌ |
| Shell | .sh, .bash, .zsh |
✅ | ❌ |
| SQL | .sql |
✅ | ❌ |
| HTML | .html, .htm |
✅ | ❌ |
| CSS | .css, .scss, .less |
✅ | ❌ |
| Markdown | .md, .mdx |
✅ | ❌ |
| YAML | .yaml, .yml |
✅ | ❌ |
| JSON | .json |
✅ | ❌ |
| TOML | .toml |
✅ | ❌ |
| XML | .xml |
✅ | ❌ |
Language Configuration
Enabling/Disabling Languages for Trace
# .grepai/config.yaml
trace:
enabled_languages:
- .go
- .js
- .ts
- .jsx
- .tsx
- .py
- .php
- .rs
- .c
- .cpp
- .cs
- .java
Excluding Certain Extensions
trace:
enabled_languages:
- .go
# Exclude JavaScript intentionally
# - .js
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
Language-Specific Tips
Go
trace:
enabled_languages:
- .go
exclude_patterns:
- "*_test.go"
- "mock_*.go"
- "*_mock.go"
Trace accuracy: Excellent. Go's explicit syntax makes tracing very reliable.
JavaScript/TypeScript
trace:
enabled_languages:
- .js
- .jsx
- .ts
- .tsx
exclude_patterns:
- "*.test.js"
- "*.spec.ts"
- "*.d.ts" # Type declarations
Trace accuracy: Good. Some dynamic patterns may be missed.
Python
trace:
enabled_languages:
- .py
exclude_patterns:
- "test_*.py"
- "*_test.py"
- "conftest.py"
Trace accuracy: Good. Dynamic imports and decorators may be missed.
C/C++
trace:
enabled_languages:
- .c
- .h
- .cpp
- .hpp
- .cc
- .cxx
exclude_patterns:
- "*_test.cpp"
Trace accuracy: Good. Macros and templates may affect accuracy.
Rust
trace:
enabled_languages:
- .rs
exclude_patterns:
- "**/tests/**"
- "**/benches/**"
Trace accuracy: Excellent. Rust's explicit syntax aids accurate tracing.
PHP
trace:
enabled_languages:
- .php
exclude_patterns:
- "*Test.php"
- "**/tests/**"
Trace accuracy: Good. Magic methods may not be fully traced.
Java
trace:
enabled_languages:
- .java
exclude_patterns:
- "*Test.java"
- "**/test/**"
Trace accuracy: Good. Reflection-based calls may be missed.
C#
trace:
enabled_languages:
- .cs
exclude_patterns:
- "*Tests.cs"
- "**/Tests/**"
Trace accuracy: Good. Delegates and events may be partially traced.
Multi-Language Projects
For projects with multiple languages:
trace:
enabled_languages:
# Backend (Go)
- .go
# Frontend (TypeScript)
- .ts
- .tsx
# Shared (SQL, etc.)
- .sql # Index only
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
Index vs Trace Explained
Index (Semantic Search)
- Works on any text file
- Code is chunked and embedded
- Enables semantic search
- No language-specific parsing required
Trace (Call Graphs)
- Requires language-specific parsing
- Extracts function definitions and calls
- Builds caller/callee relationships
- Uses regex (fast) or tree-sitter (precise)
Trace Modes by Language
| Language | Fast Mode | Precise Mode |
|---|---|---|
| Go | ✅ | ✅ |
| JavaScript | ✅ | ✅ |
| TypeScript | ✅ | ✅ |
| Python | ✅ | ✅ |
| PHP | ✅ | ✅ |
| C/C++ | ✅ | ✅ |
| Rust | ✅ | ✅ |
| Zig | ✅ | ✅ |
| C# | ✅ | ✅ |
| Java | ✅ | ✅ |
| Pascal | ✅ | ⚠️ Limited |
Adding Custom Extensions
If you have non-standard extensions, they'll be indexed but not traced:
# Custom extension files will be indexed
ignore:
# Only add patterns for files you DON'T want indexed
- "*.generated.go"
File Type Detection
GrepAI uses file extensions for detection. It does NOT use:
- Shebangs (
#!/usr/bin/env python) - File content analysis
- .editorconfig
Unsupported Languages (Index Works, No Trace)
These languages can be indexed for semantic search but don't have trace support:
- Ruby
- Swift
- Kotlin
- Scala
- Elixir
- Clojure
- Haskell
- OCaml
- F#
- Erlang
- R
- Julia
- Perl
- Groovy
Workaround: Use semantic search to find code, then manually trace.
Best Practices
- Enable only needed languages: Faster trace building
- Exclude test files: Cleaner trace results
- Use precise mode for accuracy: When trace results seem incomplete
- Match your tech stack: Configure based on your actual languages
Checking Language Support
# Check what's being indexed
grepai status
# Will show file counts by type
Common Issues
❌ Problem: Files not being indexed ✅ Solution: Check file isn't in ignore patterns
❌ Problem: Trace missing for language
✅ Solution: Ensure language is in enabled_languages
❌ Problem: Wrong language detected ✅ Solution: GrepAI uses extensions only; rename files if needed
Output Format
Language support summary:
📚 GrepAI Language Support
Full Support (Index + Trace):
- Go (.go)
- JavaScript (.js, .jsx)
- TypeScript (.ts, .tsx)
- Python (.py)
- PHP (.php)
- C/C++ (.c, .cpp, .h, .hpp)
- Rust (.rs)
- Zig (.zig)
- C# (.cs)
- Java (.java)
- Pascal (.pas, .dpr)
Index Only (No Trace):
- Ruby, Swift, Kotlin, Scala
- Shell scripts, SQL, HTML, CSS
- Config files (YAML, JSON, TOML)
- Documentation (Markdown)
Your config enables trace for:
- .go, .js, .ts, .py
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★35 reviews- ★★★★★Michael Kapoor· Dec 24, 2024
grepai-languages has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Chaitanya Patil· Dec 8, 2024
grepai-languages is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Piyush G· Nov 27, 2024
grepai-languages fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Harper Iyer· Nov 15, 2024
Solid pick for teams standardizing on skills: grepai-languages is focused, and the summary matches what you get after install.
- ★★★★★Shikha Mishra· Oct 18, 2024
grepai-languages has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Chen Singh· Oct 10, 2024
Keeps context tight: grepai-languages is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Harper Robinson· Oct 6, 2024
grepai-languages is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Anaya Li· Sep 17, 2024
grepai-languages reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Kwame Iyer· Sep 17, 2024
grepai-languages is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Charlotte Thompson· Sep 9, 2024
I recommend grepai-languages for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 35