Cofounder

Managed Setup

One setup run gives your company a code repository, a hosted app, a database with sign-in, analytics, a company inbox, a Stripe test sandbox, and a roadmap.

Setup gives your company the accounts and projects a working app needs, in one run. It creates real accounts and projects (GitHub, Vercel, and the rest), so your agent starts it only when you ask.

What You Get

WhatWhat it's for
A GitHub repositoryHolds your app's code, so changes can be built, reviewed, and undone.
Vercel hosting, with a first deployPuts your app online at a link you can share.
A Supabase database with sign-inSaves your customers' accounts and data and lets people log in. Setup sets the sign-in redirect links, puts the database settings into your hosting, and applies your app's first database migrations.
PostHog analyticsShows who signs up and what they use, once your app sends tracking events.
A company email inboxLets customers reach you, and sends email as your company.
A Stripe test sandboxLets you try checkout before any real money moves.
A roadmapThe shared plan for what to work on next.

What changes the list:

  • Repository choice: an existing GitHub repository gets hosting, a database, and the rest, but no new repository and no first deploy. See Choose Your Repository.
  • Stripe country: the sandbox is made only when you pass your business country with --stripe-country <CC> (stripe_country on MCP). Without it, setup status marks that step not_applicable. Add a sandbox later with cofounder payments setup --method sandbox --country <CC>, without running setup again. A run's Stripe country can't be changed afterwards.
  • Earlier setups: a new company gets one app on one main branch, with no separate staging environment. A company that already had a repository, hosting, or a database from an earlier setup keeps its layout: an app and a marketing site, each with its own repository, hosting, and analytics, plus a staging environment for each.
  • Sign-in email: setting up your app's sender and sign-in emails is paused for now. New and resumed runs skip it, and setup status shows that step as not_applicable. Set up app email with the email tools. Existing email setups stay in place. A successful setup doesn't confirm that email reaches an inbox.

A company phone number isn't part of setup. Adding one buys a real number, which has a recurring cost and is released only when the company is deleted. On the CLI, add --phone to setup (with --country, default US, and --area-code to choose the number). It's requested right after setup starts, not as a setup step, so if it fails, retry with cofounder phone provision, not setup retry. On MCP, call phone_provision separately.

To require specific capabilities, use setup start-profile. For a company inbox, pass --required-capability company-email with the inbox's address and the member it's assigned to:

cofounder company setup start-profile --profile managed-app-v1 \
  --required-capability company-email \
  --company-email '{"local_part":"hello","agent_id":"<user-id>"}'

Choose Your Repository

Before setup, decide which code to use:

  • To use your existing GitHub repository, pass --repository-source github. Setup prepares hosting and a database but creates no starter repository and deploys no app code. Then run cofounder repo import and connect GitHub. If only one repository is available, it's picked for you. Otherwise, choose one.
  • To use a local folder, pass --repository-source local. Setup creates a managed repository with no starter theme. Afterwards, preview with cofounder repo upload <folder> --dry-run, review the changes, then run cofounder repo upload <folder> --yes --expected-head <base_sha> using the preview's revision. The upload replaces the repository's files. Its history and your folder's Git metadata stay intact. No personal GitHub connection is needed.
  • To start new code, pass --repository-source managed for the managed starter. New starters get a random visual theme, kept across retries. You don't need to pick a business type.
cofounder company setup --repository-source github
cofounder company setup status
cofounder repo import

On MCP, pass repository_source: "github", "local", or "managed" to company_setup_start. The first setup saves your choice. Retries keep it, and asking for a different source is refused. Leaving it out resumes the saved choice, or uses managed for a new setup.

After import or upload, follow the returned next_steps to fix the code, configure Vercel and Supabase, add missing secrets securely, deploy, and check the app. Analytics is ready, but an imported or uploaded app may still need tracking code added. After a local upload, clone the repository into a new folder with cofounder repo clone <new-folder> and keep working there. Uploading needs an agent that can read files on your computer.

Run Setup

cofounder company setup --stripe-country US
cofounder company setup status

Setup returns right away and keeps running. setup status shows each step until it finishes. company status is the one-line version. To watch live, run cofounder watch company. Your app is live once its deploy is ready and its link loads.

If a Step Fails

Don't start setup over. Take the run_id from setup status and pass it to cofounder company setup retry <run-id>, which picks up from the failed step and keeps the run's original choices. Running setup again on a finished or failed run returns that run unchanged.

For billing failures, run cofounder company billing resources retry --binding-id <id>.

Commands

Setup:

MCPCLIAPI
,
,

Resources setup made, and choosing which one commands use. See Company resources.

MCPCLIAPI
,

On the CLI, cofounder company resources show <primitive> <selector> looks one up by type.

Access for people to the managed GitHub repositories and Vercel projects:

MCPCLIAPI
,