gitdiagram README

The project's README from github.com/ahmedkhaleel2004/gitdiagram. As one markdown file: README.md.

GitDiagram front page

License Ko-fi

GitDiagram

Turn any public or private GitHub repository into an interactive architecture diagram in seconds.

You can also replace hub with diagram in a GitHub URL to open its diagram.

Sponsor slot: Reach developers while they are actively exploring codebases. Sponsor GitDiagram.

Features

Stack

There is no separate FastAPI implementation, Postgres database, or Neon runtime.

Production architecture

Vercel serves both the UI and the generation endpoints:

Long-running generation uses a 300-second Vercel function budget with a shorter application deadline so quota reconciliation and persistence still have time to finish. Requests use explicit upstream deadlines, retries, structured logs, heartbeats, and distributed cancellation rather than process-local state.

The same Next.js application can also build into a minimal, non-root standalone Docker image for Railway. No Railway service, source connection, or Railway domain is kept live. The checked-in Dockerfile and railway.json are a cold recovery recipe that can recreate the full application later without reviving a second backend implementation. See docs/deployment-failover.md.

How generation works

  1. GitDiagram fetches the repository's default branch, recursive tree, and README through the GitHub API. Truncated trees and oversized inputs are rejected before model work begins.
  2. The first model stage streams a plain-English architecture explanation.
  3. The second stage returns a strict, size-bounded graph AST: groups, nodes, edges, shapes, labels, descriptions, and repository paths.
  4. The server validates identifiers, graph connectivity, limits, and every linked path against the actual repository. Invalid output is retried with focused feedback.
  5. A deterministic compiler converts the validated AST to Mermaid with total text escaping and GitHub-only links.
  6. The browser sanitizes the source, renders Mermaid in strict security mode, sanitizes the resulting SVG, and enforces the link allowlist again.
  7. Successful artifacts and terminal audit state are persisted so later visits can reopen the diagram without another model call.

The full Mermaid parser remains in the test suite as a compiler contract test. It is deliberately not loaded into the production generation function, keeping the server bundle small without weakening diagram validation or browser safety.

State

Private repositories

Select Private Repos in the header and provide a fine-grained GitHub personal access token that can read the target repository. The token is sent only with the relevant same-origin request and is never embedded in public diagram links.

Local development

For exact prerequisites and environment details, see docs/dev-setup.md.

git clone https://github.com/ahmedkhaleel2004/gitdiagram.git
cd gitdiagram
bun install
cp .env.example .env
bun run dev

Open http://localhost:3000.

At minimum, configure R2, Upstash, and one AI provider in .env. A GitHub PAT or GitHub App is optional but strongly recommended for higher GitHub API limits.

Run the complete local gate before opening a pull request:

bun run lint
bun run typecheck
bun run test
bun run build

Contributing

Contributions are welcome. Please open an issue or pull request with a focused description and verification notes.

Acknowledgements

Inspired by Romain Courtois's Gitingest.

gitdiagram (ahmedkhaleel2004/gitdiagram)

Searching Database…

Что это такое?GitDiagram превращает любой публичный или приватный репозиторий на GitHub в интерактивную диаграмму архитектуры за считанные секунды. Можно также заменить 'hub' на 'diagram' в любом адресе GitHub, и откроется диаграмма этого репозитория.
Это сайт, куда я захожу, или что-то, что нужно устанавливать?Это веб-приложение — устанавливать ничего не нужно. Оно берёт дерево файлов репозитория и README и превращает их в схему системы: компоненты и связи между ними, а не нарисованные папки. При этом каждый узел ведёт на настоящий исходный код на GitHub.
Как получить диаграмму репозитория и как это работает внутри?Замените 'hub' на 'diagram' в любом адресе GitHub. Сервис через GitHub API подтягивает дерево файлов и README, выдаёт объяснение архитектуры простым английским языком, а затем рисует проверенный интерактивный граф в формате Mermaid.
Нужен ли мне свой ключ OpenAI API, чтобы этим пользоваться?На официальном сайте — нет: по умолчанию используется OpenAI (OpenRouter при самостоятельном размещении), и бесплатная квота уже входит. Для локальной разработки нужно больше — как минимум R2, Upstash и хотя бы один AI-провайдер в .env.
Он работает с любым репозиторием или есть ограничения?Ограничения есть: репозитории с обрезанным деревом файлов и слишком большие входные данные отклоняются ещё до обращения к модели, а генерация должна уложиться в лимит функции Vercel в 300 секунд.
Могу ли я запустить GitDiagram на своём сервере, а не на официальном сайте?Единственная рабочая площадка — Vercel, но в репозитории есть рецепт восстановления: то же приложение Next.js собирается в минимальный Docker-образ без root для Railway с помощью лежащего в репозитории Dockerfile и railway.json.
Он умеет строить диаграммы приватных репозиториев и что происходит с моим токеном GitHub?Да — выберите Private Repos и укажите детализированный персональный токен доступа GitHub. Он передаётся только с запросом на тот же домен, никогда не вставляется в публичные ссылки, а приватные артефакты хранятся в отдельном пространстве имён R2.
Как он защищается от того, чтобы ИИ выдал сломанную или неверную диаграмму?Ответ модели проверяется до того, как вы его увидите: сервер сверяет имена, связность графа, лимиты и все указанные пути с реальным репозиторием и при недопустимом результате повторяет генерацию с точечными замечаниями, а браузер отображает очищенный Mermaid в строгом режиме безопасности.
Каждый раз, когда я снова открываю диаграмму, запускается новая генерация через ИИ?Нет. Удачные результаты сохраняются в Cloudflare R2 — с привязкой к репозиторию, а приватные лежат в отдельном пространстве имён, — поэтому при следующих заходах открывается уже готовая диаграмма без нового обращения к модели.
Что я могу сделать с готовой диаграммой?Кликнуть по любому компоненту и открыть его настоящий файл или папку на GitHub, скопировать исходник Mermaid или скачать отрисованную диаграмму в PNG.
На чём написан GitDiagram?Next.js 16 App Router, React 19, TypeScript, Tailwind CSS и Radix UI, а эндпоинты генерации работают на Bun-окружении Vercel. Артефакты хранятся в Cloudflare R2, Upstash Redis отвечает за квоты и блокировки, а AI-провайдер — OpenAI или OpenRouter.
Size
14.3 MB
Stars
18.3K
Updated
CommitOct 14
Age
1y
Commits · 90 Days