# ── Clerk (authentication) ──────────────────────────────────────────────────── # https://dashboard.clerk.com → API Keys NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_... CLERK_SECRET_KEY=sk_test_... NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/workspaces NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/onboarding # ── Supabase ────────────────────────────────────────────────────────────────── # https://supabase.com/dashboard → Project Settings → API NEXT_PUBLIC_SUPABASE_URL=https://.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ... SUPABASE_SERVICE_ROLE_KEY=eyJ... # ── Anthropic ───────────────────────────────────────────────────────────────── # https://console.anthropic.com/keys ANTHROPIC_API_KEY=sk-ant-... # ── Agent Bridge ───────────────────────────────────────────────────────────── # Random secret used to sign workspace tokens issued to Cursor / Claude Code. # Generate with: openssl rand -hex 32 AGENT_BRIDGE_SECRET= # ── Webhook signing secrets (optional — skip verification in dev if absent) ── # Linear: Settings → API → Webhooks → signing secret LINEAR_WEBHOOK_SECRET= # Slack: App → Basic Information → Signing Secret SLACK_SIGNING_SECRET= # GitHub: Repository → Settings → Webhooks → secret GITHUB_WEBHOOK_SECRET= # Intercom: Developer Hub → Webhooks → client secret INTERCOM_WEBHOOK_SECRET=