Turn any GitHub repository into comprehensive code analysis with interactive call graphs and multi-language support.
- Multi-language Analysis: Support for Python, JavaScript, TypeScript, Rust, Go, C, and C++
- Tree-sitter Powered: Advanced syntax parsing with tree-sitter for accurate code analysis
- Call Graph Generation: Interactive visualizations showing function relationships
- Web API: RESTful API for integration with other tools and frontends
- Real-time Analysis: Live progress tracking and results
- Repository Insights: File structure, function counts, and relationship mapping
- LLM-Ready Output: Structured JSON optimized for AI analysis
GitProbe's interactive call graph visualization showing function relationships and code structure analysis
- Python 3.8+
- Git (for repository cloning)
- Internet access for GitHub repository analysis
# Clone the repository
git clone https://github.com/your-org/gitprobe.git
cd gitprobe
# Create virtual environment
python -m venv env
source env/bin/activate  # On Windows: env\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Start GitProbe server
./gitprobe server
# Server will be available at http://localhost:8000
# API documentation at http://localhost:8000/docs# Analyze a GitHub repository
python -m gitprobe https://github.com/user/repository
# With custom output directory
python -m gitprobe https://github.com/user/repository --output ./analysis/# Start analysis
curl -X POST "http://localhost:8000/analyze" \
  -H "Content-Type: application/json" \
  -d '{"github_url": "https://github.com/psf/requests"}'import requests
# Analyze repository
response = requests.post("http://localhost:8000/analyze", json={
    "github_url": "https://github.com/psf/requests",
    "include_patterns": ["*.py"],
    "exclude_patterns": ["*test*", "docs/"]
})
result = response.json()
print(f"Found {result['data']['summary']['total_functions']} functions")
print(f"Languages: {result['data']['summary']['languages_analyzed']}"){
  "status": "success",
  "data": {
    "summary": {
      "total_functions": 235,
      "total_calls": 657,
      "languages_analyzed": ["python"],
      "files_analyzed": 45
    },
    "functions": [...],
    "relationships": [...],
    "visualization": {
      "cytoscape": {...}
    }
  }
}GitProbe includes a comprehensive integration test suite that validates all language analyzers:
# Install test dependencies
pip install rich
# Run quick tests (1 repo per language)
python tests/test_integration.py --quick
# Test all languages comprehensive
python tests/test_integration.py
# Test specific language
python tests/test_integration.py --language python
# Verbose output with detailed progress
python tests/test_integration.py --verbose
# JSON output for CI/CD
python tests/test_integration.py --json > results.json- Python: rich, requests, flask, cpython
- JavaScript: lodash, axios, express, node.js
- TypeScript: vscode, typescript, angular
- Rust: clap, ripgrep, rust compiler
- Go: cobra, hugo, kubernetes
- C: cJSON, libuv, curl
- C++: fmt, catch2, protobuf
gitprobe/
βββ src/gitprobe/
β   βββ analysis/           # Core analysis engine
β   β   βββ analysis_service.py
β   β   βββ call_graph_analyzer.py
β   β   βββ repo_analyzer.py
β   βββ analyzers/          # Language-specific parsers
β   β   βββ python.py       # Python tree-sitter analyzer
β   β   βββ javascript.py   # JavaScript/TypeScript analyzer
β   β   βββ rust.py         # Rust analyzer
β   β   βββ go.py           # Go analyzer
β   β   βββ c_cpp.py        # C/C++ analyzer
β   β   βββ ...
β   βββ web/               # FastAPI web server
β   β   βββ server.py
β   βββ models/            # Data models
β       βββ ...
βββ tests/                 # Integration test suite
β   βββ test_integration.py
β   βββ README.md
βββ requirements.txt
| Language | Functions | Calls | Classes | Imports | Status | 
|---|---|---|---|---|---|
| Python | β | β | β | β | Stable | 
| JavaScript | β | β | β | β | Stable | 
| TypeScript | β | β | β | β | Stable | 
| Rust | β | β | β | β | Stable | 
| Go | β | β | β | β | Stable | 
| C | β | β | β | β | Stable | 
| C++ | β | β | β | β | Stable | 
# Optional: Custom server configuration
export GITPROBE_HOST=0.0.0.0
export GITPROBE_PORT=8000# Include/exclude patterns
{
  "github_url": "https://github.com/user/repo",
  "include_patterns": ["*.py", "*.js"],
  "exclude_patterns": ["*test*", "node_modules/", "__pycache__/"]
}# Start GitProbe server (in one terminal)
./gitprobe server
# Run integration tests (in another terminal)
python tests/test_integration.py --quick- Create analyzer in src/gitprobe/analyzers/
- Add tree-sitter language dependency to requirements.txt
- Register analyzer in analysis service
- Add test repositories to tests/test_integration.py
# Install in development mode
pip install -e .
# Install development dependencies
pip install pytest black isort mypy
# Run code formatting
black .
isort .- Tree-sitter - Syntax parsing and analysis
- FastAPI - Web API framework
- Pydantic - Data validation and modeling
- Rich - Beautiful terminal output
- Cytoscape.js - Graph visualization (frontend)
- Large repositories (>1000 functions) are limited to 900 functions for performance
- Some complex C++ template syntax may not parse correctly
- Private repositories require local cloning
This project is licensed under the MIT License - see the LICENSE file for details.
GitProbe - Comprehensive multi-language code analysis with interactive call graphs.
