codeglow
v1.0.0
Published
Opens a live, interactive architecture design canvas for a repo in your browser, built straight from the source code. No model call, no API key.
Maintainers
Readme
codeglow
A live, interactive architecture canvas for a repo, in your browser - built straight from the real source code and filesystem. Point it at any repo and get a diagram of every file, colored by folder and connected by its real imports and calls, that keeps updating as the repo changes while you leave the tab open - nodes glow the moment a file is added, edited, or deleted.
No model call, no API key, ever - everything is extracted with plain parsing and runs fully offline once your code is on disk.
Install
npm install -g codeglowOr run it once without installing:
npx codeglowRequirements: Node.js 18 or newer. git on your PATH too, but only if you point codeglow at a GitHub URL instead of a local folder.
To build from source instead:
git clone <this-repo-url>
cd codeglow
npm install
npm run build:all # builds the CLI and the canvas frontend
npm link # makes the `codeglow` command available globallyQuick start
codeglowOpens the design canvas for the current directory in your browser: every file gets its own box, laid out by its real imports and calls. That's the whole tool - one command, one thing it does.
codeglow ../some/other/repo Open it for a local path
codeglow https://github.com/you/repo Open it for a public GitHub repo (shallow-cloned to a temp folder)
codeglow design [path] Same thing, explicit form
codeglow design [path] --no-open Print the URL instead of popping a system browser windowWhat it does
- Every file is a box, positioned by its real imports/calls, colored by folder. External systems it recognizes (a database driver, Stripe, a queue library, etc.) get their own box too.
- Click a file to see its real exported functions and their real parameters ("what this component expects"), and to trace its direct connections - everything else dims so a busy, real repo's graph doesn't have to be parsed by eye.
- It's live, not a snapshot. Leave the tab open and edit a file (yourself, or an AI coding agent working in the same repo) - the node glows the moment it's saved: green for a new file, blue for an edit, red for a deletion, fading out after about 15 seconds. A "Live activity" panel (bottom-left) logs every real change with a timestamp, so it's never lost even if you looked away during the glow. A small green dot next to the title shows the live connection is active.
- Search (top of the canvas) finds any file by name or path as you type - picking a result pans/zooms to it and traces its connections, same as clicking it directly. On a repo with hundreds of files, this is the practical way to find something.
- Download PNG exports the complete canvas as a high-resolution image (supersampled 2x, not a 1:1 screen grab) - every component, not just whatever's currently panned/zoomed into view.
- Drag to rearrange, connect two existing nodes by dragging from a node's edge, scroll/pinch to zoom.
No configuration - this is everything, on by default, the moment you run codeglow.
Supported languages
Parsing is regex-based per language, not a real parser or language server - fast, dependency-free, and works without installing a single toolchain for any of these, but an unusual import or route style in a less common framework may not be picked up.
File types read for imports, definitions, and (where relevant) routes:
JavaScript/TypeScript (.js .jsx .ts .tsx .mjs .cjs), Python (.py), Go (.go), Ruby (.rb), Java (.java), PHP (.php), Rust (.rs), Swift (.swift), Kotlin (.kt), C/C++ (.c .cc .cpp .h), C# (.cs), Vue (.vue), Svelte (.svelte).
Every one of these gets real import-graph edges (which file depends on which). Route and outgoing-HTTP-call detection - the extra edges connecting a frontend call to the exact backend handler it hits - is pattern-based and strongest for a few common conventions: Express/Flask/FastAPI-style inline routes (app.get(...), @app.route(...)), Go's Gin-style router calls, and outgoing calls via axios/fetch/Python's requests/httpx. A repo using a different routing convention still gets its full file/import graph - it just won't show those extra call-to-route arrows.
Also read for project structure, not parsed for code: package.json, docker-compose.yml/.yaml, Dockerfile, requirements.txt, go.mod, Gemfile, Cargo.toml, pom.xml.
node_modules, dist, build, vendor, venv, and similar dependency/output directories are always skipped.
Notes
- Everything is local and offline. No model call, no API key, anywhere in this tool.
- Output is a live local web server (Express) on
localhost, serving only to your own browser - nothing about your code leaves your machine, except the one-timegit cloneif you point codeglow at a GitHub URL instead of a local path.
License
MIT - see LICENSE.
