Skip to main content

wiringmap

See how your code is wired. wiringmap turns any Python project into an interactive map: what every file uses, what uses it, and what breaks if you change it. It runs offline, produces one HTML file, and needs no AI.

CI Python 3.10–3.13 License: MIT Status: early

wiringmap exploring a FastAPI app: the folder map, what login.py uses, the 16 files that depend on models.py, search, a function's callers and callees, and its source

Shown above: fastapi/full-stack-fastapi-template.

Why

An AI agent wrote most of your code. It works, but you have never read most of it, and now you need to change something. Which file does what? What calls this function? What breaks if you touch it?

wiringmap answers those questions in seconds, and your code never leaves your machine.

Try it

You need uv. Then, inside any Python project:

uvx --from git+https://github.com/Burnaviour/wiringmap wiringmap build . --open

This writes .wiringmap/report.html and opens it in your browser. The .wiringmap/ folder ignores itself, so it is never committed by accident.

What you get

  • A map of the whole project. Files are boxes inside their folders, and arrows show imports. Switch to Calls to see which files call into which; thicker arrows mean more calls. Large projects start with folders closed (double-click to open one), and tests, docs and migrations stay closed so you see the application first.
  • Click a file to see what it uses (indigo), what uses it (amber), its docstring, and the classes and functions inside it.
  • Click a function to see what it calls and what calls it. Each link says how it was found: resolved from names and imports, inferred from type hints, or guessed from a unique method name.
  • "Start reading here" lists where the program starts: commands, scripts, and web routes with their method and path (POST /login/access-token).
  • Search every file, class and function with /, and read the source next to the map.
  • Big projects work too. pandas (1,411 files) scans in under 8 seconds, and its report opens in under one.

Private by design

  • wiringmap reads your code; it never runs it.
  • Nothing is uploaded. The report is one self-contained file that makes no network requests, so you can open it offline or send it to a teammate.
  • --no-source leaves your source code out of the report, keeping only its structure.

Options

Option Meaning
--open Open the report in your browser
-o FILE Write the report somewhere else, leaving the project untouched
-e PATTERN Skip extra paths, gitignore style (-e "scripts/"). .gitignore is always honoured
--source / --no-source Include the source code in the report. By default it is included when the project has under 8 MB of Python
-q No progress bar or summary

wiringmap scan . writes only the data, graph.json: every file, class and function plus the imports, calls, inheritance and decorators between them. Its format is documented in docs/graph-schema.md, so you can build your own tools on it.

Roadmap

  • Code graph for Python, with call links that say how sure they are
  • Interactive offline map with search and source view
  • Flow view: follow a command or web request step by step through the code
  • Framework wiring: FastAPI Depends, callbacks and overridden methods as links
  • Plain-English explanations of files, folders and flows from a local model (Ollama), optional
  • JavaScript and TypeScript

Contributing

Bug reports and ideas are welcome: please open an issue. To work on the code, see CONTRIBUTING.md and how wiringmap works.

If wiringmap helps you, a ⭐ helps other people find it.

License

MIT. Reports bundle Preact (MIT), htm (Apache-2.0), Cytoscape.js and cytoscape-fcose (MIT); see their licenses.

Metadata

Release files for wiringmap 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wiringmap 0.1.0
File Size Uploaded Provenance Actions
wiringmap-0.1.0.tar.gz 776.0 kB Without provenance Details for wiringmap-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wiringmap 0.1.0
File Interpreter ABI Platform Actions
wiringmap-0.1.0-py3-none-any.whl Python 3 none any Details for wiringmap-0.1.0-py3-none-any.whl

Total release size: 1.0 MB

Release files / wiringmap-0.1.0.tar.gz

Download URL wiringmap-0.1.0.tar.gz
Size 776.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a615a31ee1138424532df4261fbda9f34713c58c0424bde78316e5b33cd61689
BLAKE2b-256 checksum
How to use checksums
f77de03e37976f447e03bfd6c5ef14d2ba4602b9a9823643bb09131e115e4d75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / wiringmap-0.1.0-py3-none-any.whl

Download URL wiringmap-0.1.0-py3-none-any.whl
Size 270.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a0014383ed6e462261a8bade8caf3cc6b76c7e3873bb95ca5690c251c536454
BLAKE2b-256 checksum
How to use checksums
e7069439d54df2f119c7377c77b11a6b147c281f5b8e2509894c2c78bd2d8ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for wiringmap 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page