Static architecture analysis and visualization for software projects.
Project description
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
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
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 ProjectcommandArchMAP: Open Web UIcommandArchMAP: Trace File Reachabilitywebviewarchmap.analyzeOnSavefor CI-style continuous feedback
Git workflow
Branch promotion model: feat/* → dev → release/* → main
Rules:
- No direct feature merge into
main. release/*accepts only stabilization changes.- CI must pass before merge.
- 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db23064e0294c8fb892ba6b7c9dfa3998102eab516503835aa2042fe478f385e
|
|
| MD5 |
d6d8853de7fc21835c5dab58a5ccbf9c
|
|
| BLAKE2b-256 |
bc96705766f0e47ac5e463e704693edb67028b9df44e626a235845542be290f5
|
Provenance
The following attestation bundles were made for kg_archmap-0.9.0.tar.gz:
Publisher:
publish.yml on Kaua-KGzin/ArchMAP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kg_archmap-0.9.0.tar.gz -
Subject digest:
db23064e0294c8fb892ba6b7c9dfa3998102eab516503835aa2042fe478f385e - Sigstore transparency entry: 1481031274
- Sigstore integration time:
-
Permalink:
Kaua-KGzin/ArchMAP@95bec788b9651ce8454debcab6db48f560ec1f16 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Kaua-KGzin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@95bec788b9651ce8454debcab6db48f560ec1f16 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edf8fe26a356b4a59f76a5264bedd60bca06ad263d4177702b8c86a5f07b0aff
|
|
| MD5 |
d20e12c5de530ba2d1dd232b59903839
|
|
| BLAKE2b-256 |
6da4ad7bd66bd543099fd71be4f8ecf257f5c7b9809435789d6e14d758680e53
|
Provenance
The following attestation bundles were made for kg_archmap-0.9.0-py3-none-any.whl:
Publisher:
publish.yml on Kaua-KGzin/ArchMAP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kg_archmap-0.9.0-py3-none-any.whl -
Subject digest:
edf8fe26a356b4a59f76a5264bedd60bca06ad263d4177702b8c86a5f07b0aff - Sigstore transparency entry: 1481031354
- Sigstore integration time:
-
Permalink:
Kaua-KGzin/ArchMAP@95bec788b9651ce8454debcab6db48f560ec1f16 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/Kaua-KGzin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@95bec788b9651ce8454debcab6db48f560ec1f16 -
Trigger Event:
push
-
Statement type: