repoarch 🗺️
Turn any codebase into beautiful architecture diagrams — one command, no AI, no server, runs on any laptop.
Drop in a folder, get a clean, shareable architecture map. Zero dependencies. Pure Python stdlib. Works offline on a Raspberry Pi, a 2015 laptop, or a cloud VM — Mermaid + self-contained HTML that opens in any browser.
↓ generated from the sample/ project in this repo, in < 1 second ↓
✨ Why repoarch
- No AI. No API keys. No paid services. Runs offline forever — your code never leaves your machine.
- No server. Output is a single self-contained HTML file you can email, open, or host anywhere.
- Zero dependencies. Pure Python standard library — installs in literally one command, works everywhere.
- Any language. Python, Go, JS/TS, Java, Rust, Ruby, PHP, C/C++, C# — detected automatically.
- Instant. Scans and renders a project in under a second.
- Agent-friendly. Works great as a tool for Cursor, Claude Code, Codex, and OpenCode.
🔧 Install
# one line, no dependencies
pip install repoarch
Or run without installing anything:
# clone this repo, then:
python -m repoarch /path/to/your/codebase
🤖 Agent skill (Cursor · Claude Code · Codex · OpenCode)
Works as a first-class skill in your favorite AI coding agent — ask it to "map this repo" and get a verified architecture diagram.
# one-command install for all agents (or: cli, cursor, claude, codex, opencode)
./install.sh all
# or use archify-style agent skill install
npx skills add dsk-dev-ai/repoarch
Then just tell your agent:
Use repoarch to map this repository's architecture.
🚀 Quick start
# generate diagrams for any folder
repoarch /path/to/codebase -o out/
# open the result in your browser
open out/architecture.html # macOS
xdg-open out/architecture.html # Linux
start out/architecture.html # Windows
Output:
| File | What it is |
|---|---|
architecture.html |
Interactive, self-contained diagram (dark/light, zoom) |
architecture.mmd |
Raw Mermaid source |
🛠️ Options
repoarch path [-o OUTPUT] [--name TITLE] [--min-degree N]
| Flag | Description |
|---|---|
-o, --output |
Where to write the files (default: .) |
--name |
Custom diagram title (default: folder name) |
--min-degree N |
Hide low-importance components to declutter large projects |
🧠 How it works
- Scan — walks the folder, skips
.git,node_modules,venv, and other noise. - Classify — detects the language of every source file by extension.
- Extract — parses
import/require/usingstatements per language (regex, stdlib only). - Group — maps files to top-level components.
- Score — ranks components by how central they are to the system.
- Render — emits Mermaid + a self-contained HTML viewer.
🗺️ Language support
Python · Go · JavaScript · TypeScript · Java · Rust · Ruby · PHP · C · C++ · C#
🤝 Contributing
Issues, pull requests, and real-world diagrams are welcome. Want to add a language? It's one entry in repoarch/parser.py.
❤️ Sponsors
repoarch is free, open source, and has zero dependencies and zero running costs to stay that way. If it saves you time, consider sponsoring the project — every bit helps keep it free forever.
|
Support free, local-first dev tools |
Want to sponsor repoarch or list your product here? Open an issue.
⭐ Support
If repoarch saved you an hour of diagram-drawing, give it a star ⭐ — it helps more developers find it.
📄 License
MIT — free to use, modify, and distribute.
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 repoarch-0.1.0.tar.gz.
File metadata
- Download URL: repoarch-0.1.0.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aacd03107a62f141f9e12b8bfa8c0670f4624d5a85048dfc524e4b42dfb81e36
|
|
| MD5 |
ebfb729587192a547c6a8702f326cc58
|
|
| BLAKE2b-256 |
9a2c5ea58fcef3f5190de0548e8854d15e125618d1dc733169ace0fbe0f36014
|
File details
Details for the file repoarch-0.1.0-py3-none-any.whl.
File metadata
- Download URL: repoarch-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23773ff7af305de5eafaec0d98513dbcd216318bce87d0dc0d26e586d2c089a8
|
|
| MD5 |
ae7638f6d337554f5a3e3572cb72cdfc
|
|
| BLAKE2b-256 |
c1d5c38edddf230dac629be1e657a38f379e66cb76f0c8c35dc3349938723353
|