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)
Index Only (No Trace)
Language Configuration
Enabling/Disabling Languages for Trace
Excluding Certain Extensions
Language-Specific Tips
Go
Trace accuracy: Excellent. Go's explicit syntax makes tracing very reliable.
JavaScript/TypeScript
Trace accuracy: Good. Some dynamic patterns may be missed.
Python
Trace accuracy: Good. Dynamic imports and decorators may be missed.
C/C++
Trace accuracy: Good. Macros and templates may affect accuracy.
Rust
Trace accuracy: Excellent. Rust's explicit syntax aids accurate tracing.
PHP
Trace accuracy: Good. Magic methods may not be fully traced.
Java
Trace accuracy: Good. Reflection-based calls may be missed.
C#
Trace accuracy: Good. Delegates and events may be partially traced.
Multi-Language Projects
For projects with multiple languages:
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
Adding Custom Extensions
If you have non-standard extensions, they'll be indexed but not traced:
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
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:


