You built something, with 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.
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.
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
benmore login # browser flow
# Headless alternative:
# benmore login --email "$BENMORE_EMAIL" --password "$BENMORE_PASSWORD"
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.
Every file you push hot-reloads in about a second, so the live dev URL is your development environment. This is where AI coding agents shine: run benmore bootstrap to install the 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.
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.
benmore promote myapp # ship dev to prod
benmore publish myapp # remove the testing banner
benmore domain myapp yourdomain.com
Dev and prod are separate instances with separate databases and secrets, promote moves code forward with an automatic pre-migration backup, and custom domains get SSL automatically.
Set up the CLI