# β‘ Vibe IDE
AI-Powered Development Environment with real-time collaboration, agent orchestration, RAG pipeline, and full observability.
- Monaco Editor β Full VS Code editor with minimap, autocomplete, Ctrl+F, multi-cursor
- CRDT Collaboration β Real-time text sync via Liveblocks + Yjs (open two tabs to try)
- Live Preview β Sandpack-style JS sandbox with console output
- File Tree β Hierarchical file browser
- Editor Tabs β Multi-file editing
- Theme Toggle β Dark/Light mode
- i18n β English & Russian localization
- Gemini 2.0 Flash β Real AI responses via Google Gemini API (free tier)
- Multi-Agent DAG β Visual DAG canvas with drag-and-drop nodes and connect mode
- Parallel Execution β Topological sort +
Promise.all()per level; true parallel agent runs with live status (blue/green/red) - Per-Agent API Keys β Provider selector (Gemini / OpenAI / Anthropic) + API key input per agent; bidirectional sync with
agents/*.jsonfiles - File Context β Click Input node to attach project files as LLM context
- Output Viewer β Click Output node after run to view results; save to
AgentsOutputs/folder with timestamp - 6 Templates β ChatBot, RAG-Search, Self-Healing CLI, Code Review, SQL Generator, API Designer
- pgvector + Express Backend β Real PostgreSQL + pgvector backend with hybrid search. Falls back to mock data automatically if DB is not running
- Chunking Strategies β Recursive, semantic, fixed-size
- Hybrid Search β BM25 + vector + hybrid modes via
hybrid_search()PostgreSQL function - Document Ingestion β
POST /api/rag/ingestwith Gemini text-embedding-004 (768 dims)
- OpenTelemetry Tracing β Dual export: in-memory (DebugViewer) + Grafana Tempo (when configured)
- Token Usage Charts β Cost and usage visualization
- Event Bus Inspector β NATS WebSocket client with mock fallback. Shows "Live NATS" / "Mock" badge
git clone https://github.com/MERSEI/Vibe.git
cd Vibe
npm install
# Real CRDT collaboration (already configured):
# VITE_LIVEBLOCKS_PUBLIC_KEY is set in .env
# Real AI responses β get free key at https://aistudio.google.com/app/apikey
echo "VITE_GEMINI_API_KEY=AIza..." >> .env
# Grafana Tempo tracing (optional):
# VITE_GRAFANA_ENDPOINT=https://otlp-gateway-prod-eu-west-2.grafana.net/otlp
# VITE_GRAFANA_TOKEN=instanceId:apiKey
npm run dev
# Open in two browser tabs β CRDT text sync works out of the box
# Without Gemini key β realistic mock responses are used automatically# 1. Start PostgreSQL with pgvector:
docker run -d --name pgvector -e POSTGRES_PASSWORD=secret -e POSTGRES_DB=vibe_rag -p 5432:5432 pgvector/pgvector:pg16
# 2. Apply schema:
psql postgresql://postgres:secret@localhost:5432/vibe_rag -f backend/schema.sql
# 3. Configure backend:
cp backend/.env.example backend/.env
# Edit backend/.env β set DATABASE_URL and GEMINI_API_KEY
# 4. Start backend:
cd backend && npm install && npm run dev # port 3001
# RAG Playground will show "Connected" badge instead of "Mock mode"
# See docs/ROADMAP.md Phase 3 for Supabase/Neon alternativessrc/
βββ App.jsx # Main entry + ClerkProvider + RoomProvider
βββ api/
β βββ anthropic/client.js # Gemini API (free) with mock fallback
β βββ clerk/provider.jsx # Clerk auth with mock fallback
β βββ rag/client.js # RAG backend client (fetch + mock fallback)
β βββ nats/client.js # NATS WebSocket client with mock fallback
β βββ liveblocks/config.jsx # Real Liveblocks (createRoomContext pattern)
β βββ telemetry/tracer.js # Real OpenTelemetry (dual: in-memory + Grafana)
βββ components/
β βββ editor/
β β βββ CodeEditor.jsx # Monaco + Yjs CRDT sync
β β βββ LivePreview.jsx # JS sandbox executor
β βββ agents/ # AgentBuilder DAG (7 templates)
β βββ rag/ # RAG Playground (connected to backend)
β βββ debug/ # OTEL DebugViewer
βββ hooks/index.js # useCollaborators (Liveblocks)
βββ stores/index.js # Zustand global state
backend/
βββ package.json # Express + pg + pgvector
βββ schema.sql # PostgreSQL DDL (idempotent)
βββ index.js # Express server (port 3001)
βββ db.js # pg Pool
βββ embeddings.js # Gemini text-embedding-004
βββ routes/ # health, search, ingest
| Category | Technology | Status |
|---|---|---|
| Framework | React 18 + Vite | β Live |
| Styling | Tailwind CSS | β Live |
| State | Zustand | β Live |
| Editor | Monaco Editor (@monaco-editor/react) |
β Live |
| Collaboration | Liveblocks + Yjs CRDT | β Live |
| Tracing | OpenTelemetry (in-memory + Grafana Tempo) | β Ready |
| AI Agents | Gemini 2.0 Flash (free tier) | β Live |
| Vector DB | pgvector + Express backend | β Ready (needs DB) |
| Event Bus | NATS WebSocket (nats.ws) + mock fallback | β Ready (needs NATS) |
| Observability | OTLP β Grafana Tempo via Express proxy + in-memory | β Live |
| Auth | Clerk (@clerk/clerk-react) + mock fallback | β Ready (needs Clerk key) |
See ROADMAP.md for the full integration plan.
- Cursor-style inline completions β Ghost text in Monaco via
registerInlineCompletionsProvider pgvector + PostgreSQLβ Done! Backend + frontend code written. Connect your DB to activate (see ROADMAP Phase 3)NATSβ Done! nats.ws client with mock fallback. Run Docker NATS to activate (see ROADMAP Phase 4)Grafana Cloudβ Done! Dual OTLP export. SetVITE_GRAFANA_ENDPOINT+VITE_GRAFANA_TOKEN(see ROADMAP Phase 5)Clerk Authβ Done! ClerkProvider with mock fallback. SetVITE_CLERK_PUBLISHABLE_KEYto activate (see ROADMAP Phase 6)
| Shortcut | Action |
|---|---|
Cmd/Ctrl + S |
Save file |
Cmd/Ctrl + R |
Run code |
Cmd/Ctrl + / |
Toggle comment |
Cmd/Ctrl + F |
Find in file |
Cmd/Ctrl + P |
Quick open |
Cmd/Ctrl + Shift + P |
Command palette |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push and open a Pull Request
MIT License β see LICENSE for details.