AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Create visualization graph for any github repo and analyze it.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
See how a codebase thinks.
Paste a public GitHub repository and gitplex turns it into an interactive graph
of its files, imports, functions and calls. Explore the architecture, trace what
a change touches, find the path between two pieces of code, and export the whole
map as Markdown for your AI agent.
No API key, no account and no LLM call in the loop. Every relationship is parsed
from the syntax tree and carries the evidence that produced it, so the same
commit always gives the same map.查看完整 README ↗See how a codebase thinks.
Paste a public GitHub repository and gitplex turns it into an interactive graph of its files, imports, functions and calls. Explore the architecture, trace what a change touches, find the path between two pieces of code, and export the whole map as Markdown for your AI agent.
No API key, no account and no LLM call in the loop. Every relationship is parsed from the syntax tree and carries the evidence that produced it, so the same commit always gives the same map.
Live demo · Docs · Architecture
| Landing page | Blast radius: everything a change can reach |
| Shortest path between two nodes | Hybrid search with score breakdowns |
| Markdown export for agents | Light theme |
⌘K opens the
palette; file:, function:, class:, route: and test: prefixes narrow it.| Tier | Languages | What you get |
|---|---|---|
| Full code graph | Python, JavaScript, TypeScript (including JSX and TSX), Go, Java | Files, imports, functions, classes, calls, inheritance, routes |
| Files and imports | Rust, Kotlin, Swift, C, C++, C#, Ruby, PHP, Scala, Dart, Elixir, Erlang, Haskell, OCaml, Clojure, Julia, Lua, Perl, R, Bash, PowerShell, Groovy, Objective-C, Fortran, Solidity, Zig, Vim script | Files and the import graph between them |
Adding symbol extraction for another language means implementing one interface
(backend/app/core/symbol_extractors/base.py); the graph builder doesn't change.
You need Docker with Compose and nothing else.
git clone https://github.com/yadavdevv/gitplex.git
cd gitplex
cp .env.example .env
docker compose up --build # or: docker-compose up --build
| Service | URL |
|---|---|
| App | http://localhost:3200 |
| API docs (OpenAPI) | http://localhost:8420/docs |
| API health | http://localhost:8420/api/v1/health |
| FalkorDB browser | http://localhost:3390 |
| FalkorDB (Redis protocol) | localhost:6390 |
Paste a repository and watch it map. https://github.com/psf/requests is a good
first one: a few seconds as an Architecture Map, still quick as a Full Code Graph.
The ports are deliberately non-default (6390 rather than 6379, and so on) so the
stack doesn't collide with databases you already run. Change them in .env.
Locally, FalkorDB also acts as the plain Redis store; it is a Redis module.
A GITHUB_TOKEN in .env is optional. It raises GitHub API limits, which helps
Architecture Maps of large repositories.
Backend (use a virtualenv, not your system Python; Python 3.11+):
docker compose up -d falkordb # datastore only
cd backend
python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"
FALKORDB_HOST=localhost FALKORDB_INTERNAL_PORT=6390 \
REDIS_HOST=localhost REDIS_INTERNAL_PORT=6390 \
.venv/bin/uvicorn app.main:app --reload --port 8420
The analysis worker runs inside the API process by default
(RUN_WORKER_INPROCESS=true). To run it separately, set that to false and
start arq app.workers.tasks.WorkerSettings.
Frontend (Node 20+):
cd frontend
npm install
echo "NEXT_PUBLIC_API_BASE_URL=http://localhost:8420/api/v1" > .env.local
npm run dev # http://localhost:3000
CORS_ORIGINS in .env.example allows ports 3000, 3200 and 3201. Hot-reloading
containers for both services: docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build.
# Backend (integration tests skip themselves when FalkorDB is unreachable)
cd backend
.venv/bin/ruff check app tests
.venv/bin/mypy app
FALKORDB_HOST=localhost FALKORDB_INTERNAL_PORT=6390 \
REDIS_HOST=localhost REDIS_INTERNAL_PORT=6390 REDIS_DB=9 .venv/bin/python -m pytest
# Frontend
cd frontend
npm run lint && npm run typecheck && npm test
npx playwright install chromium
npm run test:e2e # mocked API, no backend required
CI runs all of this on every push (ci.yml).
Next.js (App Router) ──HTTP──► FastAPI ──► FalkorDB typed code graph
Sigma.js / WebGL │ ──► Redis jobs, search corpus, insights
│
ARQ worker ──► fetch or clone → tree-sitter → graph
Each analysed commit and detail level is its own FalkorDB graph, so queries need
no tenancy filters and eviction is one GRAPH.DELETE. Reads are label-routed,
indexed Cypher with per-process caches; path search is a breadth-first search
over a cached edge list. Details, trade-offs and failure behaviour are in
docs/ARCHITECTURE.md.
The reference deployment is a Vercel frontend, a Render backend (API and worker
in one container), FalkorDB Cloud and Upstash Redis, all on free tiers. Step by
step, including the keep-alive setup, is in DEPLOY.md. Kubernetes
manifests are in infra/k8s. Put the backend in the same region as
its databases; cross-region hops dominate latency.
These are deliberate boundaries, not bugs:
stats.unresolved_calls.app.get(...), Next.js file conventions.node_modules, .venv, dist, .next,
…) and files over MAX_FILE_SIZE_KB are skipped.Issues and pull requests are welcome.
confidence honestly.backend/tests/unit/; graph schema changes
need one in backend/tests/integration/ and an update to
docs/GRAPH_SCHEMA.md.MIT. See LICENSE.