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.
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 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.
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.
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 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