Skip to main content

Static architecture analysis and visualization for software projects.

Project description

ArchMAP — Map Your Architecture. Control Your Future.

CI Python License: MIT Version PyPI

Static architecture analysis for software repositories.


ArchMAP scans source code, builds dependency graphs, detects cycles, reports architectural risks, and serves an interactive web UI.

Supported languages: Python · JavaScript · TypeScript · Rust · Go · PHP · Java · C# · C/C++

Status

Release v0.8.0
Runtime Python >=3.11
UI built-in static UI + Node dev server
Distribution PyPI (KG-ARCHMAP) + Windows .exe

Installation

From PyPI

pip install KG-ARCHMAP

For local development

git clone https://github.com/Kaua-KGzin/ArchMAP
cd ArchMAP
python -m pip install -e ".[dev]"

Quick demo

archmap analyze examples/sample-project --format both --include-cytoscape
archmap serve examples/sample-project

Useful API endpoints while serve is running:

Endpoint Description
GET /api/graph Full dependency graph JSON
GET /api/health Health score + grade
GET /api/project Project metadata
POST /api/reanalyze Trigger a fresh analysis

CLI overview

archmap CLI

Analyze

archmap analyze <path> --format json|mermaid|both

Quality gates for CI:

archmap analyze . --fail-on-risks --top 10

Explain

archmap explain <path>

Prints a simple architecture summary:

auth -> users, payments
payments -> gateway

Risk

archmap risk <file> [path]

Shows blast radius, incoming/outgoing dependencies, and the file risk score.

Improve

archmap improve [path] --out-script .codeatlas/refactor.ps1

Suggests a cleaner project structure and can generate a helper refactor script.

Serve

archmap serve <path> --host 0.0.0.0 --port 3000

Diff

# Compare two git refs
archmap diff HEAD~5 HEAD

# Compare two saved JSON snapshots (no git required)
archmap diff --snapshot-a before.json --snapshot-b after.json

archmap history --repo . --limit 12

Trace

archmap trace src/main.py .
archmap trace src/main.py . --unreachable --max-depth 3

Shows every file reachable from an entrypoint through the dependency graph, grouped by depth, with coverage percentage.

Init (blueprint from real graph)

archmap init                       # scan directory names
archmap init --from-analysis       # derive layer rules from actual dependency graph
archmap init --from-analysis --dry-run

Advise (LLM architectural advisor)

archmap advise .                                          # Claude (ANTHROPIC_API_KEY)
archmap advise . --provider openai                        # OpenAI (OPENAI_API_KEY)
archmap advise . --provider ollama                        # local Ollama
archmap advise . --provider custom --base-url http://localhost:1234  # any OpenAI-compat API

VS Code Extension

ArchMAP VS Code Extension

The bundled VS Code extension provides zero-config IDE integration:

  • Inline diagnostics (cycles, layer violations, god modules) in the Problems panel
  • Status bar health score + grade
  • ArchMAP: Analyze Project command
  • ArchMAP: Open Web UI command
  • ArchMAP: Trace File Reachability webview
  • archmap.analyzeOnSave for CI-style continuous feedback

Git workflow

Branch promotion model: feat/* → dev → release/* → main

Rules:

  1. No direct feature merge into main.
  2. release/* accepts only stabilization changes.
  3. CI must pass before merge.
  4. Update docs/changelog when behavior changes.

See CONTRIBUTING.md and docs/BRANCHING.md.

Repository layout

ArchMAP/
├── .github/          # CI/release workflows and PR template
├── docs/             # MkDocs documentation + assets
├── examples/         # sample project for demos
├── logs/             # runtime/archive log organization
├── resources/        # brand assets (logos, icons)
├── scripts/          # automation helpers (smoke, benchmark, exe build)
├── src/archmap/      # Python source code
├── tests/            # automated test suite
├── vscode-extension/ # VS Code extension (inline diagnostics, trace view)
├── web-ui/           # Node dev server + static assets
├── archmap.spec      # PyInstaller spec
└── README.md

Logs and artifacts

  • Runtime logs: logs/runtime/ (git-ignored)
  • Historical logs: logs/archive/
  • Build artifacts: generated locally (build/, dist/) — not committed

Windows executable

powershell -ExecutionPolicy Bypass -File scripts/build-exe.ps1 -Clean

Builds dist/archmap.exe, creates a versioned binary copy, writes dist/archmap-build-info.json with SHA256, and runs a smoke test.

Node development server

npm run serve:web -- --path .

License

MIT — see LICENSE.

Original distributor and primary author: Kaua Gabriel / Kauã Gabriel (Kaua-KGzin).
Redistributions must preserve LICENSE and NOTICE.md.

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

kg_archmap-0.9.0.tar.gz (14.4 MB view details)

Uploaded Source

Built Distribution

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

kg_archmap-0.9.0-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file kg_archmap-0.9.0.tar.gz.

File metadata

  • Download URL: kg_archmap-0.9.0.tar.gz
  • Upload date:
  • Size: 14.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kg_archmap-0.9.0.tar.gz
Algorithm Hash digest
SHA256 db23064e0294c8fb892ba6b7c9dfa3998102eab516503835aa2042fe478f385e
MD5 d6d8853de7fc21835c5dab58a5ccbf9c
BLAKE2b-256 bc96705766f0e47ac5e463e704693edb67028b9df44e626a235845542be290f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kg_archmap-0.9.0.tar.gz:

Publisher: publish.yml on Kaua-KGzin/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 kg_archmap-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: kg_archmap-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kg_archmap-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 edf8fe26a356b4a59f76a5264bedd60bca06ad263d4177702b8c86a5f07b0aff
MD5 d20e12c5de530ba2d1dd232b59903839
BLAKE2b-256 6da4ad7bd66bd543099fd71be4f8ecf257f5c7b9809435789d6e14d758680e53

See more details on using hashes here.

Provenance

The following attestation bundles were made for kg_archmap-0.9.0-py3-none-any.whl:

Publisher: publish.yml on Kaua-KGzin/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