Berth

Starting a new app

berth new myapp                    # or --stack python | go | static

You get a folder called myapp that's ready to hand to a coding agent:

  • A small web app that already follows the rules: Node with no dependencies (the default), Python with FastAPI, Go with the standard library, or a static site.
  • AGENTS.md, which Codex, Cursor and most other agents read. It tells the agent how to try changes on the dev version with berth dev:push, read logs, set config, add a database, write migrations, add workers and cron jobs, use sign-in and AI if your Berth has them, and which things to ask you about first (pushing to main, rollbacks, production config). It has your app's real URLs in it. It's yours: edit away.
  • CLAUDE.md, one line pointing Claude Code at AGENTS.md.
  • A README, a .gitignore and a first commit on main.

Then it asks about two more things:

  1. GitHub. If the GitHub CLI is logged in (brew install gh && gh auth login), Berth makes a private repo, <you>/myapp, and pushes to it. --public makes it public; --repo picks another name or an organization. Without gh, it prints the three steps to do by hand.
  2. Deploying. It creates the app from that repo and deploys it, just like berth create.

-y says yes to both, and --no-github and --no-deploy skip them. Then open the folder in your agent and ask for what you want.

berth new works on your laptop too, which is probably where your editor and agent live: see Working from your laptop. For an existing repo, berth dev:agents myapp prints the Berth section of AGENTS.md for you to paste in.

Edit this page on GitHub (it's a section of the README)