Generate a single self-contained architecture-map HTML from a project's source code.
Project description
archmap
Generate a single, self-contained interactive architecture-map HTML from any project's source code.
archmap scans a project folder, infers its architectural layers, extracts modules / classes / functions / imports, resolves the dependency graph between files, and renders everything into one standalone HTML file — no server, no build step, no external assets.
archmap <project_folder_path>
Open the generated *-architecture.html in any browser and explore your codebase through five tabs.
Features
- 📊 Overview — file/line/class/function counts, language breakdown, and a layer distribution chart.
- 🏗️ Architecture Layers — every file grouped into inferred layers (Entry Points, Config, Models, API, Services, Data Access, Integrations, UI, Utilities, Tests, Docs, Build/Ops).
- 🔗 Dependencies — internal import relationships resolved between in-project files, with "depends on" / "used by" edges.
- 📁 File System — a collapsible tree of everything scanned, each file clickable.
- 🔎 Component Reference — a searchable table of all components.
- A detail side-panel for any component: layer, language, line count, classes, functions, methods, imports, and dependency links.
Everything is embedded in a single HTML file (data is inlined as JSON), so it is trivial to share, archive, or commit.
Installation
archmap is pure Python with zero runtime dependencies. Pick whichever fits.
Standalone binary (no Python needed)
Download the executable for your platform from the latest release, then run it directly:
| Platform | Asset |
|---|---|
| Linux (x86_64) | archmap-linux-x86_64 |
| macOS (Apple Silicon) | archmap-macos-arm64 |
| macOS (Intel) | archmap-macos-x86_64 |
| Windows (x86_64) | archmap-windows-x86_64.exe |
# Linux / macOS
chmod +x archmap-linux-x86_64
./archmap-linux-x86_64 /path/to/project
# Windows
.\archmap-windows-x86_64.exe C:\path\to\project
pipx (recommended if you have Python 3.8+)
Installs into an isolated environment and puts archmap on your PATH:
pipx install archmap-cli # from PyPI (provides the `archmap` command)
pipx install git+https://github.com/heiswayi/archmap # from GitHub
pip
pip install archmap-cli # from PyPI (provides the `archmap` command)
pip install . # from a source checkout
Requires Python 3.8+ (except the standalone binaries, which bundle their own runtime).
Usage
# Scan the current directory
archmap .
# Scan a specific project and open the result in your browser
archmap /path/to/project --open
# Custom output path and display name
archmap /path/to/project -o report.html --name "My Service"
# Ignore .gitignore rules while scanning
archmap /path/to/project --no-gitignore
| Flag | Description |
|---|---|
path |
Project folder to scan (default: .). |
-o, --output |
Output HTML path (default: <project>-architecture.html). |
-n, --name |
Project name shown in the report (default: folder name). |
--open |
Open the report in the default browser when done. |
--no-gitignore |
Do not honor the project's .gitignore. |
-q, --quiet |
Suppress progress output. |
-V, --version |
Print version. |
The output HTML path is also printed to stdout so it can be piped.
How it works
- Scan (
scanner.py) — walks the tree, skipping common noise (.git,node_modules, build dirs, lockfiles, binaries) and honoring.gitignore. - Analyze (
languages/) — Python files are parsed with the standard-libraryast; other languages (JS/TS, Go, Rust, Java, Ruby, C/C++, …) are read with language-aware regex heuristics to pull out classes, functions, and imports. - Classify (
layers.py) — each file is routed into an architectural layer using directory- and filename-based scoring. - Link (
analyzer.py) — raw imports are resolved against in-project files to build the dependency graph (both dotted module paths and relative file paths). - Render (
renderer.py) — the model is serialized to JSON and injected into a single HTML template.
Supported languages
Python (deep ast analysis), JavaScript, TypeScript, Go, Rust, Java, Kotlin, Ruby, PHP, C#, Swift, C/C++, Shell, Vue, Svelte, plus structural files (YAML, TOML, JSON, Markdown, Dockerfile, Terraform, …).
License
MIT
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 archmap_cli-0.1.0.tar.gz.
File metadata
- Download URL: archmap_cli-0.1.0.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfc9e53bf4c71a9c077808bb525070bf6f585aff93b7dec43735175a48b78878
|
|
| MD5 |
a75703b1bada087ee284f8d9bc9ab0da
|
|
| BLAKE2b-256 |
3c97b425b45ef15bdf7e072c73291d4bce7510c0abad5f09f82aedc84d836800
|
Provenance
The following attestation bundles were made for archmap_cli-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on heiswayi/archmap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
archmap_cli-0.1.0.tar.gz -
Subject digest:
cfc9e53bf4c71a9c077808bb525070bf6f585aff93b7dec43735175a48b78878 - Sigstore transparency entry: 1839069521
- Sigstore integration time:
-
Permalink:
heiswayi/archmap@211d74be1310e7683b3bd9d582641be69b4a8441 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/heiswayi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@211d74be1310e7683b3bd9d582641be69b4a8441 -
Trigger Event:
push
-
Statement type:
File details
Details for the file archmap_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: archmap_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e45f8093ce4a02dccb48391fb868733db1b4e29a982d610c0d382b0148d660e
|
|
| MD5 |
8cab23b32157eef1755621cd635046c7
|
|
| BLAKE2b-256 |
106dfb2509c102fea687ca4552bebf773c07be1714249ecdbe585ff33e968809
|
Provenance
The following attestation bundles were made for archmap_cli-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on heiswayi/archmap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
archmap_cli-0.1.0-py3-none-any.whl -
Subject digest:
6e45f8093ce4a02dccb48391fb868733db1b4e29a982d610c0d382b0148d660e - Sigstore transparency entry: 1839069599
- Sigstore integration time:
-
Permalink:
heiswayi/archmap@211d74be1310e7683b3bd9d582641be69b4a8441 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/heiswayi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@211d74be1310e7683b3bd9d582641be69b4a8441 -
Trigger Event:
push
-
Statement type: