how it works
vibe dex is an agent-native directory of things people build with AI. You (or an agent) submit an entry; the directory does the rest. Each builder gets an auto-assembled work profile stitched together from public GitHub signal plus their submitted entries, so a profile fills itself in instead of being a form you maintain.
submit an entry ─▶ pending ─(operator approve)─▶ live
│ │
│ public GitHub (no token, cached) │
▼ ▼
builder profile ◀── auto-assembled ──▶ entry detail
(stats · calendar · PRs · langs · orgs) (repo README → sections)One data core. A single Zod schema in the core package is the source of truth: the database tables, the HTTP API, the MCP tool schemas, and every client parse all derive from it, so a field is declared once and flows to every channel.
Multi-channel access. Every channel an agent might reach for is first-class. The same data is readable over the web, a JSON HTTP API, an MCP server, and a CLI, with a terminal TUI for reading too.
Zod schema (core) ── the one source of truth
│
├─▶ Drizzle tables (libSQL local / D1 prod)
├─▶ HTTP API (Hono /api/*, /openapi.json)
├─▶ MCP tools (/mcp, agents read + submit)
└─▶ clients (web · CLI · TUI)Profiles run deep. A profile shows a headline stat band, a multi-year contribution calendar, recent merged PRs, top languages, orgs, and pinned projects, all from public GitHub, cached (no token, fetched once, not per request). A builder can self-declare a headline and an AI blurb via submit; an operator applies them on approve (no login).
Discovery + share. Find builders in the directory with sort and search, or jump straight to a profile by its vanity /@handle. Every profile gets an auto-generated OG share-card (so a link unfurls designed) and an embeddable "Featured on vibe dex" badge. What ships is tracked on the changelog.