{"id":47975994,"url":"https://github.com/wunderlabs-dev/claudebin.com","last_synced_at":"2026-04-04T10:55:16.683Z","repository":{"id":338755085,"uuid":"1115057033","full_name":"wunderlabs-dev/claudebin.com","owner":"wunderlabs-dev","description":"Claudebin is a minimalistic tool for publishing and sharing Claude coding sessions","archived":false,"fork":false,"pushed_at":"2026-03-24T09:29:44.000Z","size":12994,"stargazers_count":58,"open_issues_count":19,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T10:55:13.182Z","etag":null,"topics":["claude","claude-code","claude-code-plugin"],"latest_commit_sha":null,"homepage":"https://claudebin.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wunderlabs-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-12T09:25:21.000Z","updated_at":"2026-03-24T09:29:49.000Z","dependencies_parsed_at":"2026-03-23T20:01:28.287Z","dependency_job_id":null,"html_url":"https://github.com/wunderlabs-dev/claudebin.com","commit_stats":null,"previous_names":["wunderlabs-dev/claudebin.com"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wunderlabs-dev/claudebin.com","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wunderlabs-dev%2Fclaudebin.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wunderlabs-dev%2Fclaudebin.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wunderlabs-dev%2Fclaudebin.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wunderlabs-dev%2Fclaudebin.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wunderlabs-dev","download_url":"https://codeload.github.com/wunderlabs-dev/claudebin.com/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wunderlabs-dev%2Fclaudebin.com/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31397055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude","claude-code","claude-code-plugin"],"created_at":"2026-04-04T10:55:15.371Z","updated_at":"2026-04-04T10:55:16.663Z","avatar_url":"https://github.com/wunderlabs-dev.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/logo.svg\" alt=\"Claudebin\" width=\"360\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Share your Claude Code sessions with teammates.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://claudebin.com\"\u003eWebsite\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://github.com/wunderlabs-dev/claudebin\"\u003ePlugin\u003c/a\u003e \u0026middot;\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.producthunt.com/products/claudebin?embed=true\u0026amp;utm_source=badge-featured\u0026amp;utm_medium=badge\u0026amp;utm_campaign=badge-claudebin\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg alt=\"Claudebin - Export and share your Claude Code sessions as resumable URLs | Product Hunt\" width=\"250\" height=\"54\" src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1082108\u0026amp;theme=light\u0026amp;t=1771502320629\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Web App** (this repo) - the Next.js frontend and API at [claudebin.com](https://claudebin.com)\n\u003e\n\u003e **Plugin** - the Claude Code plugin at [github.com/wunderlabs-dev/claudebin](https://github.com/wunderlabs-dev/claudebin)\n\n## What it looks like\n\nPublish any Claude Code session with a single command and get a shareable link - complete with syntax highlighting, tool calls, and the full conversation thread.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/screenshot-thread.png\" alt=\"Thread view\" /\u003e\n\u003c/p\u003e\n\n## Getting Started\n\n```bash\nbun install    # Install dependencies\nbun dev        # Start dev server\nbun build      # Build for production\nbun check      # Lint \u0026 format\n```\n\n### Environment Variables\n\n```bash\nNEXT_PUBLIC_SUPABASE_URL=\nNEXT_PUBLIC_SUPABASE_ANON_KEY=\nSUPABASE_SERVICE_ROLE_KEY=\nOPENROUTER_API_KEY=             # For title generation\n```\n\n### Local Development with the Plugin\n\n1. Start the web app: `bun dev` (runs on port 3000)\n2. Build the plugin:\n   ```bash\n   cd /path/to/claudebin/mcp \u0026\u0026 bun install \u0026\u0026 bun run build\n   ```\n3. Run Claude with the local plugin:\n   ```bash\n   CLAUDEBIN_API_URL=http://localhost:3000 claude --plugin-dir /path/to/claudebin --dangerously-skip-permissions\n   ```\n\n## Architecture\n\n```\nclaudebin.com/\n├── app/                  # Next.js 16 web application\n│   └── src/\n│       ├── app/          # Pages and API routes\n│       ├── components/   # UI components\n│       ├── containers/   # Page containers\n│       ├── server/       # Backend logic\n│       │   ├── actions/  # Server actions (mutations)\n│       │   ├── repos/    # Data access (Supabase)\n│       │   ├── services/ # Business logic\n│       │   └── api/      # OpenAPI schemas\n│       └── context/      # React context providers\n└── supabase/             # Database migrations\n```\n\n### Routes\n\n| Route | Description |\n|---|---|\n| `/` | Homepage with featured threads |\n| `/threads` | Browse public threads |\n| `/threads/[id]` | View a session |\n| `/threads/[id]/embed` | Embeddable version |\n| `/profile/[username]` | User profile |\n| `/auth/login` | GitHub OAuth |\n\n### API\n\nOpenAPI spec at `/api/openapi.json`.\n\n| Endpoint | Method | Description |\n|---|---|---|\n| `/api/auth/start` | `POST` | Start CLI auth flow |\n| `/api/auth/poll` | `GET` | Poll for auth completion |\n| `/api/auth/refresh` | `POST` | Refresh access token |\n| `/api/auth/validate` | `GET` | Validate access token |\n| `/api/sessions/publish` | `POST` | Publish a session |\n| `/api/sessions/poll` | `GET` | Poll processing status |\n| `/api/threads/[id]/messages` | `GET` | Get thread messages |\n| `/api/threads/[id]/md` | `GET` | Get thread as markdown |\n\n### Session Processing Pipeline\n\n```\nPlugin uploads JSONL ─→ Store in Supabase Storage ─→ Parse into messages ─→ Generate title (LLM) ─→ Ready\n```\n\n### Database\n\nPostgreSQL with Row Level Security. Auto-profile creation on signup, denormalized counts via triggers, and full-text search on message content.\n\n| Table | Description |\n|---|---|\n| `profiles` | User data synced from `auth.users` |\n| `sessions` | Published threads with view/like counts |\n| `messages` | Parsed conversation messages |\n| `session_likes` | User likes |\n| `cli_auth_sessions` | Temporary CLI OAuth tokens |\n\n## Tech Stack\n\n| | |\n|---|---|\n| **Framework** | Next.js 16, Turbopack |\n| **Database** | Supabase (PostgreSQL) |\n| **Auth** | Supabase Auth, GitHub OAuth |\n| **Styling** | Tailwind CSS, shadcn/ui |\n| **Tooling** | Bun, Biome |\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwunderlabs-dev%2Fclaudebin.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwunderlabs-dev%2Fclaudebin.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwunderlabs-dev%2Fclaudebin.com/lists"}