Grepai Search Advanced

yoanbernabeu/grepai-skills/skills/search/grepai-search-advanced

作者 yoanbernabeu382d40261c0d41109c6e11872574ba0be9b064d0無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Advanced search options in GrepAI. Use this skill for JSON output, compact mode, and AI agent integration.

AI 產生的概覽

說明 GrepAI 的進階搜尋輸出選項(JSON、TOON、精簡模式),以及如何在指令碼與 AI 代理中使用它們。

功能
這個技能是 GrepAI 程式碼搜尋工具進階命令列選項的參考指南,涵蓋 JSON 輸出、TOON 輸出、精簡模式與結果數量限制。它列出每種格式的實際輸出結構、鍵名縮寫對照表、token 用量比較,以及用 jq、Python 和 Node.js 解析結果的範例。此外也記錄了 GrepAI 的 MCP 工具與其格式參數、錯誤回應和批次搜尋的寫法。
適用情境
當你需要以程式方式呼叫 GrepAI 搜尋、在 JSON 與 TOON 輸出之間做選擇,或在把搜尋結果交給 AI 代理時降低 token 用量,可以使用這個技能。它也適合將 GrepAI 接進指令碼、管線或採用 MCP 的代理工作流程。
執行需求
需要安裝 GrepAI 命令列工具並已建立搜尋索引;範例還會用到 jq、Python 或 Node.js 來解析。這個技能不含指令碼,只有說明與參考資料。

GrepAI Advanced Search Options

This skill covers advanced search options including JSON output, compact mode, and integration with AI agents.

When to Use This Skill

  • Integrating GrepAI with scripts or tools
  • Using GrepAI with AI agents (Claude, GPT)
  • Processing search results programmatically
  • Reducing token usage in AI contexts

Command-Line Options

OptionDescription
--limit NNumber of results (default: 10)
--json / -jJSON output format
--toon / -tTOON output format (~50% fewer tokens than JSON)
--compact / -cCompact output (no content, works with --json or --toon)

Note: --json and --toon are mutually exclusive.

JSON Output

Standard JSON

bash
grepai search "authentication" --json

Output:

json
{  "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}

Compact JSON (AI Optimized)

bash
grepai search "authentication" --json --compact

Output:

json
{  "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:

  • Abbreviated keys (s vs score, f vs file)
  • No content (just file locations)
  • ~80% fewer tokens for AI agents

TOON Output (v0.26.0+)

TOON (Token-Oriented Object Notation) is an even more compact format, optimized for AI agents.

Standard TOON

bash
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

Compact TOON (Best for AI)

bash
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

TOON vs JSON Comparison

FormatTokens (5 results)Best For
JSON~1,500Scripts, parsing
JSON compact~300AI agents
TOON~250AI agents
TOON compact~150Token-constrained AI

When to Use TOON

  • Use TOON when integrating with AI agents that support it
  • Use TOON compact for maximum token efficiency (~50% smaller than JSON compact)
  • Stick with JSON for traditional scripting (jq, programming languages)

Compact Format Reference

Full KeyCompact KeyDescription
queryqSearch query
resultsrResults array
scoresSimilarity score
filefFile path
start_line/end_linelLine range ("15-45")
totaltTotal results

Combining Options

bash
# 5 results in compact JSONgrepai search "error handling" --limit 5 --json --compact
# 20 results in full JSONgrepai search "database" --limit 20 --json

AI Agent Integration

For Claude/GPT Prompts

Use compact mode to minimize tokens:

bash
# Agent asks for contextgrepai search "payment processing" --json --compact --limit 5

Then provide results to the AI with file read tool for details.

Workflow Example

  1. Search for relevant code:
bash
grepai search "authentication middleware" --json --compact --limit 3
  1. Get response:
json
{  "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}
  1. Read specific files: AI reads src/auth/middleware.go:15-45 for full context.

Scripting with JSON

Bash + jq

bash
# Get just file pathsgrepai search "config" --json | jq -r '.results[].file'
# Filter by scoregrepai search "config" --json | jq '.results[] | select(.score > 0.8)'
# Count resultsgrepai search "config" --json | jq '.total'

Python

python
import subprocessimport 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']}")

Node.js

javascript
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}`);});

MCP Integration

GrepAI provides MCP tools with format selection (v0.26.0+):

bash
# Start MCP servergrepai mcp-serve

MCP tools support JSON (default) or TOON format:

MCP ToolParameters
grepai_searchquery, limit, compact, format
grepai_trace_callerssymbol, compact, format
grepai_trace_calleessymbol, compact, format
grepai_trace_graphsymbol, depth, format
grepai_index_statusformat

Format Parameter

json
{  "name": "grepai_search",  "arguments": {    "query": "authentication",    "format": "toon",    "compact": true  }}

Valid values: "json" (default) or "toon"

Token Optimization

Token Comparison

For a typical search with 5 results:

FormatApproximate Tokens
Human-readable~2,000
JSON full~1,500
JSON compact~300

When to Use Each Format

FormatUse Case
Human-readableManual inspection
JSON fullScripts needing content
JSON compactAI agents, token-limited contexts

Piping Results

To File

bash
grepai search "authentication" --json > results.json

To Another Tool

bash
# Open results in VS Codegrepai 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

Batch Searches

Run multiple searches:

bash
#!/bin/bashqueries=("authentication" "database" "logging" "error handling")
for q in "${queries[@]}"; do    echo "=== $q ==="    grepai search "$q" --json --compact --limit 3    echodone

Error Handling

JSON Error Response

When search fails:

json
{  "error": "Index not found. Run 'grepai watch' first.",  "code": "INDEX_NOT_FOUND"}

Checking for Errors in Scripts

bash
result=$(grepai search "query" --json)if echo "$result" | jq -e '.error' > /dev/null 2>&1; then    echo "Error: $(echo "$result" | jq -r '.error')"    exit 1fi

Best Practices

  1. Use compact for AI agents: 80% token savings
  2. Use full JSON for scripts: When you need content
  3. Use human-readable for debugging: Easier to read
  4. Limit results appropriately: Don't fetch more than needed
  5. Check for errors: Parse JSON response properly

Output Format

Advanced search output (JSON compact):

json
{  "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)

來源與署名

來源:yoanbernabeu/grepai-skills位於skills/search/grepai-search-advanced提交382d402

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架