Share your Claude Code sessions with teammates.
Website · Plugin · Getting Started
Web App (this repo) - the Next.js frontend and API at claudebin.com
Plugin - the Claude Code plugin at github.com/wunderlabs-dev/claudebin
Publish any Claude Code session with a single command and get a shareable link - complete with syntax highlighting, tool calls, and the full conversation thread.
bun install # Install dependencies
bun dev # Start dev server
bun build # Build for production
bun check # Lint & formatNEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
OPENROUTER_API_KEY= # For title generation- Start the web app:
bun dev(runs on port 3000) - Build the plugin:
cd /path/to/claudebin/mcp && bun install && bun run build
- Run Claude with the local plugin:
CLAUDEBIN_API_URL=http://localhost:3000 claude --plugin-dir /path/to/claudebin --dangerously-skip-permissions
claudebin.com/
├── app/ # Next.js 16 web application
│ └── src/
│ ├── app/ # Pages and API routes
│ ├── components/ # UI components
│ ├── containers/ # Page containers
│ ├── server/ # Backend logic
│ │ ├── actions/ # Server actions (mutations)
│ │ ├── repos/ # Data access (Supabase)
│ │ ├── services/ # Business logic
│ │ └── api/ # OpenAPI schemas
│ └── context/ # React context providers
└── supabase/ # Database migrations
| Route | Description |
|---|---|
/ |
Homepage with featured threads |
/threads |
Browse public threads |
/threads/[id] |
View a session |
/threads/[id]/embed |
Embeddable version |
/profile/[username] |
User profile |
/auth/login |
GitHub OAuth |
OpenAPI spec at /api/openapi.json.
| Endpoint | Method | Description |
|---|---|---|
/api/auth/start |
POST |
Start CLI auth flow |
/api/auth/poll |
GET |
Poll for auth completion |
/api/auth/refresh |
POST |
Refresh access token |
/api/auth/validate |
GET |
Validate access token |
/api/sessions/publish |
POST |
Publish a session |
/api/sessions/poll |
GET |
Poll processing status |
/api/threads/[id]/messages |
GET |
Get thread messages |
/api/threads/[id]/md |
GET |
Get thread as markdown |
Plugin uploads JSONL ─→ Store in Supabase Storage ─→ Parse into messages ─→ Generate title (LLM) ─→ Ready
PostgreSQL with Row Level Security. Auto-profile creation on signup, denormalized counts via triggers, and full-text search on message content.
| Table | Description |
|---|---|
profiles |
User data synced from auth.users |
sessions |
Published threads with view/like counts |
messages |
Parsed conversation messages |
session_likes |
User likes |
cli_auth_sessions |
Temporary CLI OAuth tokens |
| Framework | Next.js 16, Turbopack |
| Database | Supabase (PostgreSQL) |
| Auth | Supabase Auth, GitHub OAuth |
| Styling | Tailwind CSS, shadcn/ui |
| Tooling | Bun, Biome |
MIT
