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
| What | What it's for |
|---|---|
| A GitHub repository | Holds your app's code, so changes can be built, reviewed, and undone. |
| Vercel hosting, with a first deploy | Puts your app online at a link you can share. |
| A Supabase database with sign-in | Saves 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 analytics | Shows who signs up and what they use, once your app sends tracking events. |
| A company email inbox | Lets customers reach you, and sends email as your company. |
| A Stripe test sandbox | Lets you try checkout before any real money moves. |
| A roadmap | The 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_countryon MCP). Without it,setup statusmarks that stepnot_applicable. Add a sandbox later withcofounder 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
mainbranch, 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 statusshows that step asnot_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 runcofounder repo importand 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 withcofounder repo upload <folder> --dry-run, review the changes, then runcofounder 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 managedfor 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 importOn 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 statusSetup 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:
| MCP | CLI | API |
|---|---|---|
| , | ||
| , | ||
Resources setup made, and choosing which one commands use. See Company resources.
| MCP | CLI | API |
|---|---|---|
| , | ||
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:
| MCP | CLI | API |
|---|---|---|
| , |