Understand any codebase in minutes, not weeks.
AI codebase intelligence: import a public GitHub repo, index it, search, chat with citations, explore the dependency graph and APIs, surface likely dead code, and generate living docs.
| Features |
|---|
| F0 Import → clone → file tree + Shiki viewer |
| F1 ts-morph symbols, import edges, Express routes |
| F2 AST chunks + embeddings + hybrid search |
| F3 RAG chat with path:line citations |
| F4 React Flow dependency graph + API explorer |
| F5 Dead-code heuristic + README generator |
Next.js ──HTTP──▶ Express API ──▶ Postgres (+ pgvector)
└──▶ Indexer (in-process async)
clone → walk → parse → chunk → embed
Frontend polls GET /repos/:id/job every 2s. No Redis, no workers, no WebSockets.
- Web: Next.js 15, React 19, Tailwind v4, Shiki, React Flow (
@xyflow/react) - API: Express, Prisma, ts-morph, simple-git
- DB: Postgres 16 + pgvector (Docker Compose)
- AI: Claude (chat + optional doc polish); Voyage / OpenAI embeddings
cd codexiq
npm install
npm run db:up
cd apps/api && npx prisma db push && cd ../..
# Terminal 1
npm run dev:api # :4000
# Terminal 2
npm run dev:web # :3000Without keys: keyword search, retrieval-only chat, structural docs still work.
| Method | Path | Purpose |
|---|---|---|
| POST | /repos |
Import public GitHub URL |
| GET | /repos, /repos/:id |
List / detail |
| GET | /repos/:id/job |
Index progress |
| GET | /repos/:id/files?path= |
Tree / file content |
| GET | /repos/:id/overview |
Stats |
| GET | /repos/:id/symbols |
Symbol list |
| GET | /repos/:id/graph |
Dependency graph |
| GET | /repos/:id/routes |
Express routes |
| GET | /repos/:id/search?q= |
Hybrid search |
| POST | /repos/:id/chat |
RAG / retrieval chat |
| GET | /repos/:id/chats |
Chat sessions |
| GET | /repos/:id/deadcode |
Orphan files/exports |
| POST | /repos/:id/generate-docs |
README markdown |
- ~5,000 source files · ~50 MB walked source · shallow clone · public GitHub only
codexiq/
├── apps/api/ Express + indexer + Prisma
├── apps/web/ Next.js UI
├── docker-compose.yml Postgres + pgvector
├── docs/MVP-SCOPE.md
└── README.md