Setup

Four things to wire up: a Supabase project, a GitHub App, environment variables, and (for cloud agent runs) Vercel Sandbox.

1. Supabase

  1. 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
  1. Copy the Project URL, the publishable key (Project Settings → API Keys), and the service_role key.
  2. Authentication → URL Configuration: set Site URL to your app URL and add /auth/confirm, /auth/recovery and /auth/callback to Redirect URLs. The email-confirmation, password-reset and GitHub sign-in links land there.
  3. 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:

SettingValue
Homepage URLhttp://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 installationOff — the setup route starts OAuth itself
Redirect on updateOn
Webhook URLhttp://localhost:3000/api/github/webhook (a tunnel for local dev)
Webhook secretThe value of GITHUB_WEBHOOK_SECRET
Subscribe to eventsPull request · Installation · Installation repositories
Repository permissionsContents: Read & write · Pull requests: Read & write · Metadata: Read-only
Where can it be installedAny 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.local

Fill in every value:

  • SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, SUPABASE_PUBLISHABLE_KEY
  • GITHUB_APP_ID, GITHUB_APP_SLUG, GITHUB_APP_CLIENT_ID, GITHUB_APP_CLIENT_SECRET, GITHUB_APP_PRIVATE_KEY
  • AGENT_API_KEY — openssl rand -base64 32
  • CREDENTIALS_ENCRYPTION_KEY — same generator, encrypts saved LLM keys at rest
  • SIGNUP_ENABLED — set to true to 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 tables

Then 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 dev

Open http://localhost:3000 → Sign up → Create project → Connect GitHub → install the app on the repos you want → pick a repo.