Declared and undocumented
npm/pip/go manifests, Dockerfiles, CI includes and Terraform sources — plus hardcoded internal URLs in source, resolved back to the repo that serves them.
Untangle clones every repo from your GitLab, GitHub, or any git host, statically maps how they depend on each other, and serves an interactive graph — so you finally know what breaks when something changes.
Most dependency tools stop at one repo's lockfile. Untangle works across all of them.
npm/pip/go manifests, Dockerfiles, CI includes and Terraform sources — plus hardcoded internal URLs in source, resolved back to the repo that serves them.
Click any component to see the transitive set of repos that break if it fails. The shared core lights up exactly how scary it should.
Node, Python, Go, Docker, Terraform and GitLab CI out of the box — one graph across every language and runtime in your org.
Your code never leaves your network. The analyzer clones shallow, reads working trees, and writes a single JSON. That's it.
Point it at one origin and go. Systems are synthesized from repo groups; detection patterns derive from your hosts. Tune later with YAML.
A static nginx app and a Python analyzer joined by JSON. Vanilla JS + Cytoscape, fully offline. The page you're on runs the same engine.
A GitLab instance, a GitHub org/user, or an explicit list of git URLs — or any mix. One line in .env.
It shallow-clones every repo, runs the ecosystem parsers and route extractors, and writes one graph.json.
Open the dashboard: shared-components core, per-system clusters, hover path-tracing, and blast radius.
cp .env.example .env
# one line is enough, e.g. GITHUB_ORG=my-org (or GITLAB_URL=… + token)
docker compose up -d --build
# open http://localhost:8080
Untangle is MIT licensed and self-hosted. No seats, no SaaS, no sending your source anywhere. If it helps your team untangle its architecture, give it a star — that's the whole business model.