Skip to main content

Interactive live architecture viewer for Python projects

Project description

ArchView

See your codebase. Understand it. Then change it.

ArchView gives you a live, interactive map of any Python project's architecture — right in your browser. It parses real Python (via AST, not regex), watches for changes, and updates the graph in real time.

Built for developers who vibe-code and need to stay oriented, or anyone inheriting a codebase they didn't write.

ArchView overview — live dependency graph updating as code changes

Drawing annotations — sketching boxes and labels directly on the graph

Why

You're 200 files deep in someone else's project. Or you're building fast and your own code is getting tangled. You need to see the structure — what depends on what, where the entry points are, which modules are isolated.

ArchView shows you all of that in seconds, and keeps updating as you code.

Install

pip install archview

Available on PyPI. Pure Python, works anywhere with Python 3.9+.

Usage

archview /path/to/your/project

Open http://localhost:9090 — that's it.

# Custom port and refresh interval
archview /path/to/project --port 8080 --interval 5

What you see

Color Meaning
Green Entry points — modules that import but aren't imported
Blue Connectors — modules that both import and are imported
Red Utilities — leaf modules only imported by others
Gray Isolated — no import relationships
Red (bright) Syntax errors — files that failed to parse

Features

Live refresh

Edit your code, save — the graph updates automatically. No restart needed.

Interactive exploration

  • Hover a node to see its docstring, type, and exported symbols
  • Click a node to highlight its direct dependencies
  • Double-click to open the file in VS Code
  • Drag nodes to rearrange the layout
  • Click folders to collapse/expand entire packages

Dependency highlighting

Hover over an edge to see exactly which symbols are imported. Click a node and its entire dependency chain lights up — everything else fades.

Export

  • PNG — screenshot the current view
  • Save — persist node positions (restored on next launch)

Ignore patterns

# Exclude directories from analysis
archview ignore tests __pycache__ venv

# List current patterns
archview ignore --list

# Remove a pattern
archview ignore --remove tests

How it works

  1. Collects all .py files (git-aware, respects .archviewignore)
  2. Parses each file's AST to extract imports, functions, classes
  3. Builds a dependency graph with classified nodes
  4. Renders it with Cytoscape.js + Dagre layout
  5. Watches for changes and re-generates every N seconds

Zero dependencies — pure Python stdlib. The frontend ships bundled.

Example

Try it on the example project (hosted on GitHub):

git clone https://github.com/lm17918/archview.git archview-demo
cd archview-demo
pip install archview
archview example_project

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

archview-0.2.4.tar.gz (215.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

archview-0.2.4-py3-none-any.whl (213.4 kB view details)

Uploaded Python 3

File details

Details for the file archview-0.2.4.tar.gz.

File metadata

  • Download URL: archview-0.2.4.tar.gz
  • Upload date:
  • Size: 215.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for archview-0.2.4.tar.gz
Algorithm Hash digest
SHA256 5a91a138917826a79cbb92aa3aaa7e1153ec46e2d9c680f9eaec50fa49d21d87
MD5 dc65b4d8536d0f03df306c96a96f8466
BLAKE2b-256 4ee5968136da0fb2a13065b727d7c105c354d3cf2406a3f9ee4b605c77763497

See more details on using hashes here.

File details

Details for the file archview-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: archview-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 213.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for archview-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 127b7df910bf13fb647f5057ed5a21ea6f498439217d460ee044bfdbe573f21f
MD5 17e9b5e134695271d82b2c75c6a2588d
BLAKE2b-256 5ce7ea0f2a5b1d219ed8710d7788771ccb3b2aefc7d79d3fe18ba5f4e8b1280a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page