Turn any folder of code, docs, papers, images, or videos into a queryable knowledge graph — no LLM required for AST extraction
Project description
tracely360
Turn any folder of code, docs, papers, images, or videos into a queryable knowledge graph. Type /tracely360 in your AI coding assistant — it reads your files, builds a graph, and gives you back structure you didn't know was there. Understand a codebase faster. Find the "why" behind architectural decisions.
71.5× fewer tokens per query vs reading the raw files, persistent across sessions, honest about what it found vs guessed.
Highlights
- Deterministic AST extraction — 25 languages via tree-sitter (Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia, Verilog, SystemVerilog, Vue, Svelte, Dart)
- API endpoint discovery — Flask, FastAPI, Django, Express, NestJS, Next.js, Spring, Laravel, Rails, Gin, Echo, Chi, ASP.NET
- Multimodal — code, markdown, PDFs, images, screenshots, diagrams, whiteboard photos, video and audio (transcribed via faster-whisper with domain-aware prompts)
- Leiden community detection — topology-based clustering, no embeddings, no LLM calls
- Multiple exports — interactive HTML (vis.js), persistent JSON, Obsidian wiki, SVG, markdown report
- MCP server — expose the graph over stdio for Claude, Codex, and other agents
- Per-file caching — re-runs only process changed files (SHA256-based)
- Git hooks — auto-rebuild on commit/checkout
Install
pip install tracely360
tracely360 install
Optional extras:
pip install "tracely360[mcp]" # MCP stdio server
pip install "tracely360[neo4j]" # Neo4j push
pip install "tracely360[pdf]" # PDF extraction
pip install "tracely360[video]" # Video/audio transcription
pip install "tracely360[watch]" # File watcher
pip install "tracely360[svg]" # Static SVG export
pip install "tracely360[leiden]" # Leiden clustering (Python <3.13)
pip install "tracely360[office]" # Word/Excel conversion
pip install "tracely360[all]" # Everything
Quick start
Skill mode (recommended)
Type /tracely360 . in Claude Code, Codex, OpenCode, Cursor, Gemini CLI, GitHub Copilot CLI, VS Code Copilot Chat, Aider, OpenClaw, Factory Droid, Trae, Hermes, Kiro, or Google Antigravity.
CLI utilities
tracely360 query "How is AuthController connected to Service?"
tracely360 path "AuthController" "Service"
tracely360 explain "Repository"
For full graph builds, use the assistant skill mode above. The direct CLI exposes utilities like update, watch, query, path, explain, and platform installers.
Watch mode
tracely360 watch
Auto-rebuilds the AST graph on file changes. No LLM required.
MCP server
python -m tracely360.serve
Exposes the graph over stdio. Tools: query_graph, get_node, get_neighbors, get_community, god_nodes, graph_stats, shortest_path.
Outputs
All results land in tracely360-out/:
| File | Description |
|---|---|
GRAPH_REPORT.md |
One-page audit: god nodes, communities, surprising connections, API endpoints, knowledge gaps |
graph.json |
Persistent queryable graph (node-link format with community assignments) |
graph.html |
Interactive vis.js visualization with search, filtering, and node inspection |
wiki/ |
Obsidian-compatible markdown vault with bidirectional wikilinks |
cache/ |
Per-file extraction cache (SHA256-keyed) |
Supported platforms
| Platform | Install command |
|---|---|
| Claude Code | tracely360 claude install |
| Codex | tracely360 codex install |
| OpenCode | tracely360 opencode install |
| Aider | tracely360 aider install |
| Cursor | tracely360 cursor install |
| VS Code Copilot Chat | tracely360 vscode install |
| GitHub Copilot CLI | tracely360 install --platform copilot |
| OpenClaw | tracely360 claw install |
| Factory Droid | tracely360 droid install |
| Trae | tracely360 trae install |
| Gemini CLI | tracely360 gemini install |
| Hermes | tracely360 hermes install |
| Kiro | tracely360 kiro install |
| Google Antigravity | tracely360 antigravity install |
Git hooks
tracely360 hook install # post-commit + post-checkout
tracely360 hook uninstall
Rebuilds the AST-only graph after every commit. Works with Husky and custom core.hooksPath.
API endpoint extraction
Static analysis only — no code execution, no port probing. Detects route decorators/registrations in:
- Python: Flask (
@app.route), FastAPI (@app.get), Django (urlpatterns) - JavaScript/TypeScript: Express (
app.get), NestJS (@Get()), Next.js API routes - Java: Spring (
@GetMapping,@RequestMapping) - PHP: Laravel (
Route::get) - Ruby: Rails (
resources,get,postin routes.rb) - Go: Gin, Echo, Chi (
r.GET,e.GET,r.Get) - C#: ASP.NET (
[HttpGet],MapGet)
Detected routes appear as endpoint nodes in the graph and in the API Endpoints section of the report.
Environment variables
| Variable | Default | Purpose |
|---|---|---|
TRACELY360_WHISPER_PROMPT |
(derived from corpus) | Override faster-whisper prompt |
TRACELY360_WHISPER_MODEL |
base |
Whisper model name |
Legacy names GRAPHIFY_WHISPER_PROMPT and GRAPHIFY_WHISPER_MODEL are still supported.
How it works
detect() → extract() → build_from_json() → cluster() + score_all()
→ god_nodes() / surprising_connections() / suggest_questions()
→ generate() → to_json() / to_html() / to_wiki()
- Detect — scan corpus, classify files (code, document, paper, image, video)
- Extract — two-pass AST extraction: per-file structure, then cross-file import resolution. Endpoint pass discovers API routes.
- Build — assemble NetworkX graph from flat node/edge payloads
- Cluster — Leiden community detection (topology-based, no embeddings)
- Analyze — god nodes, surprising connections, knowledge gaps
- Report — render
GRAPH_REPORT.mdwith full audit trail - Export — interactive HTML, persistent JSON, Obsidian wiki
Confidence model
Every edge carries a confidence level:
| Level | Meaning |
|---|---|
EXTRACTED |
Directly proven by source code or parser |
INFERRED |
Reasonable structural/semantic inference |
AMBIGUOUS |
Uncertain — flagged for review |
Team workflow
Commit tracely360-out/ to git. The graph, report, and wiki are plain text and diff cleanly. Use .tracely360ignore (same syntax as .gitignore) to exclude files from extraction.
Recommended .gitignore additions:
tracely360-out/cache/
License
Apache License 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tracely360-0.4.26.tar.gz.
File metadata
- Download URL: tracely360-0.4.26.tar.gz
- Upload date:
- Size: 301.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddd1d48392378092ccca08954cf8f2e927bf1a61f06066aa07534003dce7582b
|
|
| MD5 |
71ec7e3163b08ebb7e1903881cdcbebc
|
|
| BLAKE2b-256 |
db3f8e4c4e34fce0fde67c6c300d5728fd89c31c96bf02e8e11fe7e2be9a8275
|
Provenance
The following attestation bundles were made for tracely360-0.4.26.tar.gz:
Publisher:
workflow.yml on sidrat2612/tracely360-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tracely360-0.4.26.tar.gz -
Subject digest:
ddd1d48392378092ccca08954cf8f2e927bf1a61f06066aa07534003dce7582b - Sigstore transparency entry: 1356544188
- Sigstore integration time:
-
Permalink:
sidrat2612/tracely360-lite@12f0545aa0a242470a95ce95213f99f06ad20e44 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sidrat2612
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@12f0545aa0a242470a95ce95213f99f06ad20e44 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file tracely360-0.4.26-py3-none-any.whl.
File metadata
- Download URL: tracely360-0.4.26-py3-none-any.whl
- Upload date:
- Size: 283.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfc3d7d348499342937f780bf0f3c3ec1372da311700840dc3ed7760a5baefe2
|
|
| MD5 |
9719e6587a6e4db973c86c86cb0a499e
|
|
| BLAKE2b-256 |
4882ef5fa222384d3fb5ab37fbfbd4132efa4c95cf91e00de339e8061e587cc3
|
Provenance
The following attestation bundles were made for tracely360-0.4.26-py3-none-any.whl:
Publisher:
workflow.yml on sidrat2612/tracely360-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tracely360-0.4.26-py3-none-any.whl -
Subject digest:
bfc3d7d348499342937f780bf0f3c3ec1372da311700840dc3ed7760a5baefe2 - Sigstore transparency entry: 1356544201
- Sigstore integration time:
-
Permalink:
sidrat2612/tracely360-lite@12f0545aa0a242470a95ce95213f99f06ad20e44 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sidrat2612
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@12f0545aa0a242470a95ce95213f99f06ad20e44 -
Trigger Event:
workflow_dispatch
-
Statement type: