Setup
Four things to wire up: a Supabase project, a GitHub App, environment variables, and (for cloud agent runs) Vercel Sandbox.
1. Supabase
- Create a project at supabase.com and apply the schema:
npx supabase login
npx supabase link --project-ref <your-project-ref>
npm run db:push- Copy the Project URL, the publishable key (Project Settings → API Keys), and the service_role key.
- Authentication → URL Configuration: set Site URL to your app URL and add
/auth/confirm,/auth/recoveryand/auth/callbackto Redirect URLs. The email-confirmation, password-reset and GitHub sign-in links land there. - Optional, for Continue with GitHub: create a separate GitHub OAuth App (not the GitHub App below) with the callback URL
https://<your-project-ref>.supabase.co/auth/v1/callback, then enable the GitHub provider under Authentication → Sign In / Providers with its client ID and secret.
2. GitHub App
Create one at GitHub → Settings → Developer settings → GitHub Apps → New GitHub App:
| Setting | Value |
|---|---|
| Homepage URL | http://localhost:3000 |
| Setup URL (Post installation) | http://localhost:3000/api/github/setup |
| Callback URL (Identifying and authorizing users) | http://localhost:3000/api/github/callback |
| Request user authorization (OAuth) during installation | Off — the setup route starts OAuth itself |
| Redirect on update | On |
| Webhook URL | http://localhost:3000/api/github/webhook (a tunnel for local dev) |
| Webhook secret | The value of GITHUB_WEBHOOK_SECRET |
| Subscribe to events | Pull request · Installation · Installation repositories |
| Repository permissions | Contents: Read & write · Pull requests: Read & write · Metadata: Read-only |
| Where can it be installed | Any account, to allow installing on orgs |
Note the App ID, the Client ID and the slug (from github.com/apps/<slug>), generate a client secret, and generate a private key (.pem).
3. Environment
cp .env.example .env.localFill in every value:
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY,SUPABASE_PUBLISHABLE_KEYGITHUB_APP_ID,GITHUB_APP_SLUG,GITHUB_APP_CLIENT_ID,GITHUB_APP_CLIENT_SECRET,GITHUB_APP_PRIVATE_KEYAGENT_API_KEY—openssl rand -base64 32CREDENTIALS_ENCRYPTION_KEY— same generator, encrypts saved LLM keys at restSIGNUP_ENABLED— set totrueto allow self-service sign-up at /signup
4. Agents (cloud runs)
Cloud agent runs happen in Vercel Sandbox microVMs, orchestrated by Vercel Workflow:
vercel link # once; sandboxes are billed to this Vercel project
vercel env pull .env.local # VERCEL_OIDC_TOKEN for local dev
echo "CREDENTIALS_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env
npm run db:push # agent tablesThen open Settings → Agents and add an Anthropic API key: cloud agents call the Claude API with it. Optionally add an Admin API key to see Anthropic's usage and cost reports, or give a project its own API key in its settings.
5. Run
npm install
npm run devOpen http://localhost:3000 → Sign up → Create project → Connect GitHub → install the app on the repos you want → pick a repo.