neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
Understand your code instantly with GitVision's AI-powered GitHub analysis.
Developer toolsTypeScript · CSSGitHub @Mayank-RadadiyaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
AI-powered GitHub repository intelligence platform.
GitVision syncs your GitHub repositories, generates AI-powered commit summaries, builds vector embeddings of your codebase, and lets you chat with your code using RAG (Retrieval-Augmented Generation). Think of it as a smart copilot that deeply understands your project's structure and history.Read the full README ↗AI-powered GitHub repository intelligence platform.
GitVision syncs your GitHub repositories, generates AI-powered commit summaries, builds vector embeddings of your codebase, and lets you chat with your code using RAG (Retrieval-Augmented Generation). Think of it as a smart copilot that deeply understands your project's structure and history.
qwen/qwen3-embedding-8b via OpenRouter) using HNSW indexing| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router, Turbopack) |
| Language | TypeScript 5 |
| UI | React 19, Tailwind CSS v4, shadcn/ui, Framer Motion |
| Auth | Clerk |
| Database | Neon (Serverless PostgreSQL) with pgvector |
| ORM | Drizzle ORM |
| API | tRPC (end-to-end typesafe APIs) |
| AI | Google Gemini (chat, query rewrite, commit summaries), OpenRouter (embeddings), Vercel AI SDK |
| Background Jobs | Inngest (durable, event-driven functions) |
| GitHub API | Octokit |
├── app/ # Next.js App Router pages & API routes
│ ├── (auth)/ # Sign-in / sign-up flows (Clerk)
│ ├── (main)/ # Authenticated app shell
│ │ ├── chat/ # RAG chat interface
│ │ ├── code-viewer/ # Repository file browser
│ │ ├── create-project/ # New project onboarding
│ │ └── dashboard/ # Project analytics dashboard
│ └── api/ # API endpoints (chat, embeddings, inngest, tRPC, webhooks)
├── db/ # Drizzle schema & migrations
├── src/
│ ├── features/ # Feature-based architecture
│ │ ├── auth/ # User & auth utilities
│ │ ├── chat/ # Chat UI components & logic
│ │ ├── dashboard/ # Dashboard widgets & analytics
│ │ ├── landing/ # Marketing landing page
│ │ ├── projects/ # Project management
│ │ └── rag/ # Embedding generation & vector search
│ ├── lib/ # Shared libraries (inngest, trpc, AI clients)
│ └── shared/ # Shared UI components, hooks, utils
New to the codebase? Read
docs/architecture.mdfirst. It covers the layering above, the ingestion and chat flows with diagrams, and the three structural tensions worth knowing before you change anything (no transactions, no row-level security, two ownership guards).Security engineering is real and mostly invisible; the defences and the tests that pin them are written up in
docs/SECURITY.md.
git clone https://github.com/Mayank-Radadiya/GitVision.git
cd GitVision
bun install
The repository is a bun workspace — it ships a bun.lock and no package-lock.json
or yarn.lock. Use bun, or the lockfile will drift from what CI installs.
Create a .env file in the project root:
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
CLERK_SECRET_KEY=sk_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/dashboard
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/dashboard
CLERK_WEBHOOK_SECRET=whsec_...
# Database (Neon Serverless PostgreSQL)
DATABASE_URL=postgresql://...
# GitHub
GITHUB_TOKEN=github_pat_...
# AI / LLM
GEMINI_API_KEY=AIza...
OPENROUTER_API_KEY=sk-or-...
bun run test:e2e needs the Clerk keys to point at a development instance
(pk_test_ / sk_test_). e2e/global-setup.ts refuses anything else before it
calls out, so a test run cannot mint a session against a live one. It creates a
fixture user on first run and writes e2e/.auth/user.json — gitignored, because
that file is a live credential. Every spec loads that state, so the signed-in
specs cannot start without a session. Override the identity with
CLERK_E2E_USER_EMAIL / CLERK_E2E_USER_PASSWORD.
# Generate migration files
bun db:generate
# Push schema to Neon
bun db:push
# Start Next.js (Turbopack)
bun dev
# In a separate terminal — start Inngest dev server
bun inngest
Open http://localhost:3000 to see the app.
| Command | Description |
|---|---|
bun dev | Start Next.js dev server with Turbopack |
bun build | Production build |
bun start | Start production server |
bun lint | Run ESLint |
bun typecheck | Run tsc --noEmit |
bun test | Run the Vitest suite once |
bun test:watch | Vitest in watch mode |
bun test:coverage | Vitest with a coverage report |
bun test:e2e | Run the Playwright end-to-end suite |
bun db:generate | Generate Drizzle migration files |
bun db:init | Create the database and apply migrations |
bun db:push | Init, then push the schema straight to the database |
bun db:migrate | Apply the committed migration files |
bun db:backup | Write a verified SQL dump |
bun db:studio | Open Drizzle Studio (DB GUI) |
bun inngest | Start Inngest dev server for background jobs |
bun clean | Remove build artifacts and caches |
db:push and db:migrate both change the database. db:push reconciles from
the schema files and is the right choice for local development; db:migrate
replays the committed SQL migrations and is the right choice anywhere shared.
The app uses a relational schema with vector extensions:
qwen/qwen3-embedding-8b vectors (OpenRouter) with HNSW cosine similarity indexGitVision uses Clerk for authentication with webhook-based user sync:
users tableapp/(main)/layout.tsx calls auth.protect() for every page under /dashboard, /chat and /code-viewer; each API route and tRPC procedure checks the session itself (24 of 24 tRPC procedures use protectedProcedure)1. Project files are streamed from GitHub via Octokit tarball API
2. Files are chunked and embedded using qwen/qwen3-embedding-8b via OpenRouter (768 dims)
3. Embeddings are stored in Neon with pgvector HNSW indexes
4. User query → embed → cosine similarity search → top-k chunks
5. Top chunks + query are sent to Gemini `gemini-2.0-flash-001` as grounded context
6. Streamed AI response with file-path citations
Contributions are welcome! Please follow the standard fork → branch → PR workflow.
git checkout -b feat/amazing-featuregit commit -m 'feat: add amazing feature'git push origin feat/amazing-featureNot currently licensed. This repository is private and has no LICENSE file, so all rights are reserved by default. Add a LICENSE before publishing it anywhere.
| Validation |
| Zod |