grepai-trace-graph▌
yoanbernabeu/grepai-skills · updated Apr 8, 2026
This skill covers using grepai trace graph to build complete call graphs showing all dependencies recursively.
GrepAI Trace Graph
This skill covers using grepai trace graph to build complete call graphs showing all dependencies recursively.
When to Use This Skill
- Mapping complete function dependencies
- Understanding complex code flows
- Impact analysis for major refactoring
- Visualizing application architecture
What is Trace Graph?
grepai trace graph builds a recursive dependency tree:
main
├── initialize
│ ├── loadConfig
│ │ └── parseYAML
│ └── connectDB
│ ├── createPool
│ └── ping
├── startServer
│ ├── registerRoutes
│ │ ├── authMiddleware
│ │ └── loggingMiddleware
│ └── listen
└── gracefulShutdown
└── closeDB
Basic Usage
grepai trace graph "FunctionName"
Example
grepai trace graph "main"
Output:
🔍 Call Graph for "main"
main
├── initialize
│ ├── loadConfig
│ └── connectDB
├── startServer
│ ├── registerRoutes
│ └── listen
└── gracefulShutdown
└── closeDB
Nodes: 9
Max depth: 3
Depth Control
Limit recursion depth with --depth:
# Default depth (2 levels)
grepai trace graph "main"
# Deeper analysis (3 levels)
grepai trace graph "main" --depth 3
# Shallow (1 level, same as callees)
grepai trace graph "main" --depth 1
# Very deep (5 levels)
grepai trace graph "main" --depth 5
Depth Examples
--depth 1 (same as callees):
main
├── initialize
├── startServer
└── gracefulShutdown
--depth 2 (default):
main
├── initialize
│ ├── loadConfig
│ └── connectDB
├── startServer
│ ├── registerRoutes
│ └── listen
└── gracefulShutdown
└── closeDB
--depth 3:
main
├── initialize
│ ├── loadConfig
│ │ └── parseYAML
│ └── connectDB
│ ├── createPool
│ └── ping
├── startServer
│ ├── registerRoutes
│ │ ├── authMiddleware
│ │ └── loggingMiddleware
│ └── listen
└── gracefulShutdown
└── closeDB
JSON Output
grepai trace graph "main" --depth 2 --json
Output:
{
"query": "main",
"mode": "graph",
"depth": 2,
"root": {
"name": "main",
"file": "cmd/main.go",
"line": 10,
"children": [
{
"name": "initialize",
"file": "cmd/main.go",
"line": 15,
"children": [
{
"name": "loadConfig",
"file": "config/config.go",
"line": 20,
"children": []
},
{
"name": "connectDB",
"file": "db/db.go",
"line": 30,
"children": []
}
]
},
{
"name": "startServer",
"file": "server/server.go",
"line": 25,
"children": [
{
"name": "registerRoutes",
"file": "server/routes.go",
"line": 10,
"children": []
}
]
}
]
},
"stats": {
"nodes": 6,
"max_depth": 2
}
}
Compact JSON
grepai trace graph "main" --depth 2 --json --compact
Output:
{
"q": "main",
"d": 2,
"r": {
"n": "main",
"c": [
{"n": "initialize", "c": [{"n": "loadConfig"}, {"n": "connectDB"}]},
{"n": "startServer", "c": [{"n": "registerRoutes"}]}
]
},
"s": {"nodes": 6, "depth": 2}
}
TOON Output (v0.26.0+)
TOON format offers ~50% fewer tokens than JSON:
grepai trace graph "main" --depth 2 --toon
Note:
--jsonand--toonare mutually exclusive.
Extraction Modes
# Fast mode (regex-based)
grepai trace graph "main" --mode fast
# Precise mode (tree-sitter AST)
grepai trace graph "main" --mode precise
Use Cases
Understanding Application Flow
# Map entire application startup
grepai trace graph "main" --depth 4
Impact Analysis
# What depends on this utility function?
grepai trace graph "validateInput" --depth 3
# Full impact of changing database layer
grepai trace graph "executeQuery" --depth 2
Code Review
# Is this function too complex?
grepai trace graph "processOrder" --depth 5
# Many nodes = high complexity
Documentation
# Generate architecture diagram data
grepai trace graph "main" --depth 3 --json > architecture.json
Refactoring Planning
# What would break if we change this?
grepai trace graph "legacyAuth" --depth 3
Handling Cycles
GrepAI detects and marks circular dependencies:
main
├── processA
│ └── processB
│ └── processA [CYCLE]
In JSON:
{
"name": "processA",
"cycle": true
}
Large Graphs
For very large codebases, graphs can be overwhelming:
Limit Depth
# Start shallow
grepai trace graph "main" --depth 2
Focus on Specific Areas
# Instead of main, trace specific subsystem
grepai trace graph "authMiddleware" --depth 3
Filter in Post-Processing
# Get JSON and filter
grepai trace graph "main" --depth 3 --json | jq '...'
Visualizing Graphs
Export to DOT Format (Graphviz)
# Convert JSON to DOT
grepai trace graph "main" --depth 3 --json | python3 << 'EOF'
import json
import sys
data = json.load(sys.stdin)
print("digraph G {")
print(" rankdir=TB;")
def traverse(node, parent=None):
name = node.get('name') or node.get('n')
if parent:
print(f' "{parent}" -> "{name}";')
children = node.get('children') or node.get('c') or []
for child in children:
traverse(child, name)
traverse(data.get('root') or data.get('r'))
print("}")
EOF
Then render:
dot -Tpng graph.dot -o graph.png
Mermaid Diagram
grepai trace graph "main" --depth 2 --json | python3 << 'EOF'
import json
import sys
data = json.load(sys.stdin)
print("```mermaid")
print("graph TD")
def traverse(node, parent=None):
name = node.get('name') or node.get('n')
if parent:
print(f" {parent} --> {name}")
children = node.get('children') or node.get('c') or []
for child in children:
traverse(child, name)
traverse(data.get('root') or data.get('r'))
print("```")
EOF
Comparing Graph Sizes
Track complexity over time:
# Get node count
grepai trace graph "main" --depth 3 --json | jq '.stats.nodes'
# Compare before/after refactoring
echo "Before: $(grepai trace graph 'main' --depth 3 --json | jq '.stats.nodes') nodes"
# ... refactoring ...
echo "After: $(grepai trace graph 'main' --depth 3 --json | jq '.stats.nodes') nodes"
Common Issues
❌ Problem: Graph too large / timeout ✅ Solutions:
- Reduce depth:
--depth 2 - Trace specific function instead of
main - Use
--mode fast
❌ Problem: Many cycles detected ✅ Solution: This indicates circular dependencies in code. Consider refactoring.
❌ Problem: Missing branches ✅ Solutions:
- Try
--mode precise - Check if files are indexed
- Verify language is enabled
Best Practices
- Start shallow: Begin with
--depth 2, increase as needed - Focus analysis: Trace specific functions, not always
main - Export for docs: Use JSON for generating diagrams
- Track over time: Monitor node count as complexity metric
- Investigate cycles: Circular dependencies are code smells
Output Format
Trace graph result:
🔍 Call Graph for "main"
Depth: 3
Mode: fast
main
├── initialize
│ ├── loadConfig
│ │ └── parseYAML
│ └── connectDB
│ ├── createPool
│ └── ping
├── startServer
│ ├── registerRoutes
│ │ ├── authMiddleware
│ │ └── loggingMiddleware
│ └── listen
└── gracefulShutdown
└── closeDB
Statistics:
- Total nodes: 12
- Maximum depth reached: 3
- Cycles detected: 0
Tip: Use --json for machine-readable output
Use --depth N to control recursion depth
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.5★★★★★52 reviews- ★★★★★Ganesh Mohane· Dec 28, 2024
Keeps context tight: grepai-trace-graph is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Tariq Thompson· Dec 28, 2024
Solid pick for teams standardizing on skills: grepai-trace-graph is focused, and the summary matches what you get after install.
- ★★★★★Layla Verma· Dec 16, 2024
Registry listing for grepai-trace-graph matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Aditi Khanna· Dec 16, 2024
Keeps context tight: grepai-trace-graph is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Yusuf Jain· Dec 4, 2024
I recommend grepai-trace-graph for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Lucas Johnson· Nov 23, 2024
grepai-trace-graph reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Sakshi Patil· Nov 19, 2024
grepai-trace-graph has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Aditi Malhotra· Nov 19, 2024
grepai-trace-graph is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Zara Park· Nov 11, 2024
We added grepai-trace-graph from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Hassan Dixit· Nov 7, 2024
Useful defaults in grepai-trace-graph — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
showing 1-10 of 52