mit einem Klick
grepai-search-advanced
// Advanced search options in GrepAI. Use this skill for JSON output, compact mode, and AI agent integration.
// Advanced search options in GrepAI. Use this skill for JSON output, compact mode, and AI agent integration.
Reference for all GrepAI MCP tools. Use this skill to understand available MCP tools and their parameters.
Find function callees with GrepAI trace. Use this skill to discover what functions a specific function calls.
Find function callers with GrepAI trace. Use this skill to discover what code calls a specific function.
Build complete call graphs with GrepAI trace. Use this skill for recursive dependency analysis.
Supported programming languages in GrepAI. Use this skill to understand which languages can be indexed and traced.
Troubleshooting guide for GrepAI. Use this skill to diagnose and fix common issues.
| name | grepai-search-advanced |
| description | Advanced search options in GrepAI. Use this skill for JSON output, compact mode, and AI agent integration. |
This skill covers advanced search options including JSON output, compact mode, and integration with AI agents.
| Option | Description |
|---|---|
--limit N | Number of results (default: 10) |
--json / -j | JSON output format |
--toon / -t | TOON output format (~50% fewer tokens than JSON) |
--compact / -c | Compact output (no content, works with --json or --toon) |
Note:
--jsonand--toonare mutually exclusive.
grepai search "authentication" --json
Output:
{
"query": "authentication",
"results": [
{
"score": 0.89,
"file": "src/auth/middleware.go",
"start_line": 15,
"end_line": 45,
"content": "func AuthMiddleware() gin.HandlerFunc {\n return func(c *gin.Context) {\n token := c.GetHeader(\"Authorization\")\n if token == \"\" {\n c.AbortWithStatus(401)\n return\n }\n claims, err := ValidateToken(token)\n ...\n }\n}"
},
{
"score": 0.82,
"file": "src/auth/jwt.go",
"start_line": 23,
"end_line": 55,
"content": "func ValidateToken(tokenString string) (*Claims, error) {\n ..."
}
],
"total": 2
}
grepai search "authentication" --json --compact
Output:
{
"q": "authentication",
"r": [
{
"s": 0.89,
"f": "src/auth/middleware.go",
"l": "15-45"
},
{
"s": 0.82,
"f": "src/auth/jwt.go",
"l": "23-55"
}
],
"t": 2
}
Key differences:
s vs score, f vs file)TOON (Token-Oriented Object Notation) is an even more compact format, optimized for AI agents.
grepai search "authentication" --toon
Output:
[2]{content,end_line,file_path,score,start_line}:
"func AuthMiddleware()...",45,src/auth/middleware.go,0.89,15
"func ValidateToken()...",55,src/auth/jwt.go,0.82,23
grepai search "authentication" --toon --compact
Output:
[2]{end_line,file_path,score,start_line}:
45,src/auth/middleware.go,0.89,15
55,src/auth/jwt.go,0.82,23
| Format | Tokens (5 results) | Best For |
|---|---|---|
| JSON | ~1,500 | Scripts, parsing |
| JSON compact | ~300 | AI agents |
| TOON | ~250 | AI agents |
| TOON compact | ~150 | Token-constrained AI |
| Full Key | Compact Key | Description |
|---|---|---|
query | q | Search query |
results | r | Results array |
score | s | Similarity score |
file | f | File path |
start_line/end_line | l | Line range ("15-45") |
total | t | Total results |
# 5 results in compact JSON
grepai search "error handling" --limit 5 --json --compact
# 20 results in full JSON
grepai search "database" --limit 20 --json
Use compact mode to minimize tokens:
# Agent asks for context
grepai search "payment processing" --json --compact --limit 5
Then provide results to the AI with file read tool for details.
grepai search "authentication middleware" --json --compact --limit 3
{
"q": "authentication middleware",
"r": [
{"s": 0.92, "f": "src/auth/middleware.go", "l": "15-45"},
{"s": 0.85, "f": "src/auth/jwt.go", "l": "23-55"},
{"s": 0.78, "f": "src/handlers/auth.go", "l": "10-40"}
],
"t": 3
}
src/auth/middleware.go:15-45 for full context.# Get just file paths
grepai search "config" --json | jq -r '.results[].file'
# Filter by score
grepai search "config" --json | jq '.results[] | select(.score > 0.8)'
# Count results
grepai search "config" --json | jq '.total'
import subprocess
import json
result = subprocess.run(
['grepai', 'search', 'authentication', '--json'],
capture_output=True,
text=True
)
data = json.loads(result.stdout)
for r in data['results']:
print(f"{r['score']:.2f} | {r['file']}:{r['start_line']}")
const { execSync } = require('child_process');
const output = execSync('grepai search "authentication" --json');
const data = JSON.parse(output);
data.results.forEach(r => {
console.log(`${r.score.toFixed(2)} | ${r.file}:${r.start_line}`);
});
GrepAI provides MCP tools with format selection (v0.26.0+):
# Start MCP server
grepai mcp-serve
MCP tools support JSON (default) or TOON format:
| MCP Tool | Parameters |
|---|---|
grepai_search | query, limit, compact, format |
grepai_trace_callers | symbol, compact, format |
grepai_trace_callees | symbol, compact, format |
grepai_trace_graph | symbol, depth, format |
grepai_index_status | format |
{
"name": "grepai_search",
"arguments": {
"query": "authentication",
"format": "toon",
"compact": true
}
}
Valid values: "json" (default) or "toon"
For a typical search with 5 results:
| Format | Approximate Tokens |
|---|---|
| Human-readable | ~2,000 |
| JSON full | ~1,500 |
| JSON compact | ~300 |
| Format | Use Case |
|---|---|
| Human-readable | Manual inspection |
| JSON full | Scripts needing content |
| JSON compact | AI agents, token-limited contexts |
grepai search "authentication" --json > results.json
# Open results in VS Code
grepai search "config" --json | jq -r '.results[0].file' | xargs code
# Copy first result path to clipboard (macOS)
grepai search "config" --json | jq -r '.results[0].file' | pbcopy
Run multiple searches:
#!/bin/bash
queries=("authentication" "database" "logging" "error handling")
for q in "${queries[@]}"; do
echo "=== $q ==="
grepai search "$q" --json --compact --limit 3
echo
done
When search fails:
{
"error": "Index not found. Run 'grepai watch' first.",
"code": "INDEX_NOT_FOUND"
}
result=$(grepai search "query" --json)
if echo "$result" | jq -e '.error' > /dev/null 2>&1; then
echo "Error: $(echo "$result" | jq -r '.error')"
exit 1
fi
Advanced search output (JSON compact):
{
"q": "authentication middleware",
"r": [
{"s": 0.92, "f": "src/auth/middleware.go", "l": "15-45"},
{"s": 0.85, "f": "src/auth/jwt.go", "l": "23-55"},
{"s": 0.78, "f": "src/handlers/auth.go", "l": "10-40"}
],
"t": 3
}
Token estimate: ~80 tokens (vs ~800 for full content)