How to deploy a web app from your terminal

You built something, with Codex, Claude Code, Cursor, or your own hands, and now you want it on the internet without wiring up servers, databases, SSL, and auth. Here is the one-command path.

What you skip

The usual gap between "works on my machine" and "deployed" is a weekend of provisioning: a server or PaaS config, a managed database, an auth provider, HTTPS certificates, environment secrets, and a CI pipeline. Benmore collapses all of that into the framework: every deployed app comes with authentication, a database, an auto-generated REST API, real-time updates, file storage, email, and cron, hosted on its own subdomain with SSL.

Step 1: Install the CLI

Homebrew is the primary macOS path:

brew install Benmore-Studio/benmore/benmore-cli

On Linux or CI, use the checksum-verifying installer:

curl -fsSL https://benmore.ai/install-cli.sh | sh

Step 2: Authenticate and deploy

benmore bootstrap                # browser login, workspace, shared skills, and app sync
# Headless alternative (token from an earlier browser login):
# export BENMORE_TOKEN=...

cd ~/Benmore
benmore new crm                 # creates ./crm; output prints the resolved directory
cd ./crm
benmore deploy
benmore open .                  # prints the provisioned development URL

Open the printed HTTPS URL. A reachable live page is the success criterion. benmore new crm creates exactly ./crm; it never silently relocates your project.

Step 3: Iterate against the live URL

Accepted file pushes reload the deployed app, so the live dev URL is your development environment. This is where AI coding agents shine: run benmore bootstrap to install the shared Codex/Claude skills and Claude Code hooks, then Claude Code edits ship through those hooks and the agent verifies the result in a real headless browser. Codex, Cursor, and other agents run benmore push <file> explicitly.

Deploy an existing frontend

Keep its Node build in the original project. Copy only the generated browser output into your Benmore app's static/ directory:

# Vite: set base: "/", build, copy dist/ contents
cp -R /path/to/vite/dist/. ~/Benmore/crm/static/

# Next.js: set output: "export"; use unoptimized images when required
cp -R /path/to/next/out/. ~/Benmore/crm/static/

# Create React App
cp -R /path/to/cra/build/. ~/Benmore/crm/static/

Never copy node_modules, package manifests, lockfiles, or framework source into the Benmore app. There is no Benmore localhost development mode. Root-relative output such as /assets/app.js resolves from static/assets/app.js. Client-side navigation keeps the existing SPA fallback, while a missing .js, .css, or image still returns a real 404.

Step 4: Verify and go to production

benmore check crm --env dev
benmore verify . --release
benmore promote crm --dry-run
benmore ship . --promote  # interactive terminal required
benmore publish crm      # separate testing/publication setting
benmore domain crm yourdomain.com
benmore sync-status --all

Exercise the changed browser journey and inspect persisted effects before release. Dev and prod have separate databases and secrets. Promotion moves source and applies needed migrations; it does not copy dev data, secrets, or uploads. Review destructive changes explicitly. Follow the DNS instructions for your custom domain and verify HTTPS.

The Codex and Claude workflow guide covers identity, live API contracts, source synchronization, and recovery. For an independent server, use the self-hosting guide.

Set up the CLI

Frequently asked questions

Does this work with Claude Code or other AI coding agents?
Yes, it is designed for them. The CLI installs an agent skill and Claude Code hooks; after installation, those hooks ship Claude Code edits and the agent verifies its work in a real browser. Codex, Cursor, and other agents push each edited file explicitly.
What do I get with the hosting?
Auth, a per-app database, an auto-generated typed REST API, real-time updates, audit logs, file uploads, email, cron jobs, SSL, and per-app source history. Email and other integrations depend on their configuration.
Can I roll back a bad deploy?
Use per-app git history to restore source. Source revert does not undo database migrations, deleted data, or external effects. Database restore is a separate operation that loses writes after the chosen snapshot; read the recovery topic before proceeding.
What does it cost?
Plans are priced by app capacity and publishing, not per prompt or per seat, with a free tier to start. See pricing.