Skip to main content

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

  1. Scan (scanner.py) — walks the tree, skipping common noise (.git, node_modules, build dirs, lockfiles, binaries) and honoring .gitignore.
  2. Analyze (languages/) — Python files are parsed with the standard-library ast; other languages (JS/TS, Go, Rust, Java, Ruby, C/C++, …) are read with language-aware regex heuristics to pull out classes, functions, and imports.
  3. Classify (layers.py) — each file is routed into an architectural layer using directory- and filename-based scoring.
  4. Link (analyzer.py) — raw imports are resolved against in-project files to build the dependency graph (both dotted module paths and relative file paths).
  5. 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


Download files

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

Source Distribution

archmap_cli-0.1.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

archmap_cli-0.1.0-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

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

Hashes for archmap_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cfc9e53bf4c71a9c077808bb525070bf6f585aff93b7dec43735175a48b78878
MD5 a75703b1bada087ee284f8d9bc9ab0da
BLAKE2b-256 3c97b425b45ef15bdf7e072c73291d4bce7510c0abad5f09f82aedc84d836800

See more details on using hashes here.

Provenance

The following attestation bundles were made for archmap_cli-0.1.0.tar.gz:

Publisher: publish-pypi.yml on heiswayi/archmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for archmap_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e45f8093ce4a02dccb48391fb868733db1b4e29a982d610c0d382b0148d660e
MD5 8cab23b32157eef1755621cd635046c7
BLAKE2b-256 106dfb2509c102fea687ca4552bebf773c07be1714249ecdbe585ff33e968809

See more details on using hashes here.

Provenance

The following attestation bundles were made for archmap_cli-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on heiswayi/archmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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