Skip to main content

The Shadow Architect - AI-powered live architecture diagrams that update as you code

Project description

Umbra Logo

๐ŸŒ‘ Umbra

The Shadow Architect
AI-powered architecture diagrams that update in real-time as you code.

PyPI Downloads License Stars

Problem โ€ข Solution โ€ข Quick Start โ€ข Features โ€ข Demo


๐Ÿ˜ฐ The Problem

You're using Cursor, Copilot, or ChatGPT to write code faster than ever. But there's a catch:

You no longer understand your own codebase.

  • Documentation is always outdated
  • Architecture diagrams are lies
  • New team members are lost
  • You forgot what that service does

๐Ÿ’ก The Solution

Umbra watches your code and maintains a living architecture diagram that updates automatically.

Save file โ†’ Umbra detects โ†’ AI analyzes โ†’ Diagram updates

No more manual documentation. No more outdated diagrams. Just code.

๐Ÿš€ Quick Start

1. Install

pip install umbra-architect

2. Configure

Get a free API key from Google AI Studio, then:

# Set your API key
export GOOGLE_API_KEY="your-api-key"

# Or create a .env file in your project
echo "GOOGLE_API_KEY=your-api-key" > .env

3. Run

cd your-project
umbra watch .

That's it! Open output/LIVE_ARCHITECTURE.md to see your architecture.

โœจ Features

Feature Description
๐Ÿ” Smart Analysis AI understands semantic changes, not just syntax
๐Ÿ“Š Live Diagrams Mermaid.js diagrams update in real-time
๐Ÿ“ Auto Summary Natural language project description
๐ŸŒ HTML Export Share beautiful standalone reports
๐Ÿ Python Support Full Python codebase analysis
โš›๏ธ JS/TS Support React, Next.js, Express, and more
โšก Fast Under 5 seconds per analysis
๐Ÿ”’ Read-Only Never modifies your code

๐ŸŽฌ Demo

Before: 40 files, no clue what's happening

my-project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ auth.py
โ”‚   โ”‚   โ”œโ”€โ”€ payments.py
โ”‚   โ”‚   โ”œโ”€โ”€ notifications.py
โ”‚   โ”‚   โ””โ”€โ”€ ...20 more files
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ””โ”€โ”€ utils/
โ””โ”€โ”€ ???

After: Clear architecture in seconds

graph LR
    subgraph Core["Core Services"]
        API[API Gateway]
        Auth[Authentication]
        Payments[Payments]
    end
    
    subgraph External["External APIs"]
        Stripe[Stripe]
        Firebase[Firebase Auth]
    end
    
    subgraph Data["Data Stores"]
        DB[(PostgreSQL)]
    end
    
    API --> Auth
    API --> Payments
    Auth --> Firebase
    Payments --> Stripe
    Payments --> DB

Plus a human-readable summary:

Type: FastAPI Backend
Stack: Python, PostgreSQL, Stripe, Firebase
What it does: E-commerce API with authentication and payment processing

๐Ÿ“– Commands

Command Description
umbra watch . Scan project + watch for changes
umbra watch . --no-scan Watch only (skip initial scan)
umbra scan . One-time full scan
umbra export report.html Export to interactive HTML
umbra init Create empty architecture file

๐Ÿ› ๏ธ Configuration

Create a .env file in your project:

GOOGLE_API_KEY=your-api-key
GEMINI_MODEL=models/gemini-flash-latest
OUTPUT_FILE=./output/LIVE_ARCHITECTURE.md
DEBOUNCE_SECONDS=2

๐Ÿค” How It Works

  1. Watch - Monitors your files for changes (Python, JS, TS)
  2. Analyze - AI determines if the change is structural or cosmetic
  3. Update - Only structural changes update the diagram
  4. Visualize - Mermaid diagram renders in VS Code or browser

What's "structural"?

โœ… Updates Diagram โŒ Ignored
New service class Renaming variables
External API call Adding comments
Database connection Formatting code
Inter-service communication Test files

๐Ÿ—บ๏ธ Roadmap

Current (v0.2)

  • Python support
  • JavaScript/TypeScript support
  • Project summaries
  • HTML export

Coming Soon

  • VS Code extension
  • CI/CD integration (generate on PR)

Future Vision

  • AI Code Analysis - Find bugs and issues automatically
  • Auto-Fix Suggestions - AI-powered code corrections
  • Team Collaboration - Share architecture across team
  • Custom Rules - Define what's "structural" for your project

๐Ÿค Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

# Clone
git clone https://github.com/rida12b/Umbra.git
cd Umbra

# Install
poetry install

# Test
poetry run pytest

๐Ÿ“œ License

MIT License - see LICENSE for details.


Stop documenting. Start understanding.

โญ Star us on GitHub

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

umbra_architect-0.3.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

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

umbra_architect-0.3.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file umbra_architect-0.3.0.tar.gz.

File metadata

  • Download URL: umbra_architect-0.3.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Windows/11

File hashes

Hashes for umbra_architect-0.3.0.tar.gz
Algorithm Hash digest
SHA256 184020d74c847e56b3875bd8010071714cf1332724f77d708b54a650e0416ade
MD5 8d7ef814867de6655b99e5c38c05e6eb
BLAKE2b-256 21fc967a63ef33e90f4051b7c0bca941b8ac1cc48ac223d7c90694c0e503d6e3

See more details on using hashes here.

File details

Details for the file umbra_architect-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: umbra_architect-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Windows/11

File hashes

Hashes for umbra_architect-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2aba1b79d7b33da83f01528357f99c8e86b642d14eca8fac9ca67c25084d42f6
MD5 c7384736c4a37c80d31345e3f5174fd7
BLAKE2b-256 793ce52dd15f7616d35c73d2802dd813dc4720c6143d2462cbef343efe47ef44

See more details on using hashes here.

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