Integrations
The six services ShipAgent connects to, the order to connect them in, and the optional trackers.
ShipAgent talks to six outside services: a Postgres database, Google (and optionally GitHub) for sign-in, Stripe for payments, Resend for email, Cloudflare R2 for file storage, and one or more AI providers. Each one has a setup skill in skills/setup-* that your agent follows, and a check script in scripts/check-*.ts that proves the connection works. An integration is done when its check prints all checks passed, never earlier.
Every page in this section has the same parts:
- You: the accounts you create, the values you paste and where to click for them.
- Agent: what the agent does with them. You do not type any commands.
- What the check prints when it passes.
- When it fails: the common failures and what fixes them.
- Going live: what changes for production.
Order
Connect them in this order. Each step needs the ones before it.
| # | Page | Skill | You provide | Check |
|---|---|---|---|---|
| 1 | Database | setup-database |
a Postgres connection string, the owner's email | pnpm tsx scripts/check-database.ts |
| 2 | Auth | setup-auth |
a Google OAuth client ID and secret | pnpm tsx scripts/check-auth.ts |
| 3 | Stripe | setup-stripe |
the Stripe secret key, your payment methods | pnpm tsx scripts/check-stripe.ts --fire <userId> |
| 4 | setup-email |
a sender address, a Resend key, 2–3 DNS records | pnpm tsx scripts/check-email.ts --to <you> |
|
| 5 | Storage | setup-storage |
an R2 bucket, an R2 token, public access | pnpm tsx scripts/check-storage.ts |
| 6 | AI | setup-ai |
one provider key | pnpm tsx scripts/check-ai.ts --url <app> |
| — | Analytics | none | IDs for the trackers you want | none |
Email can come before auth if you want email sign-in before Google: the owner signs in either way.
Test first, live at launch
Every setup starts in test mode: a test Stripe key, a local site URL, a development database. Each page ends with a "Going live" list of what to switch for production. The deploy skills (deploy-cloudflare, deploy-vercel) carry the production values over.
How you hand over values
When the agent reaches a step that needs a value, it stops, tells you where to click and waits. You paste the value into the chat. The agent writes it into .env.local (local) or the production env file. It never prints a secret back and never commits one.