omg/docs

Deploy with omg deploy

Publish an app or a realtime game to *.omgs.app from your terminal with the omg CLI. No omg.dev install and no dashboard needed.

omg deploy publishes the current folder to a live link at https://<slug>.omgs.app. It works on any computer with Bun. You do not need to install the omg.dev control plane, and you do not need to open the omg.dev dashboard.

A folder with only static files becomes a static site. A folder with a schema.ts also gets a database, an API and live updates between users. See Realtime apps.

1. Install the CLI

npm i -g @omg-dev/cli

Or with Bun:

bun i -g @omg-dev/cli

Check the version. It must be 0.5.4 or later:

omg --version

The CLI runs on Bun. If Bun is not installed, the CLI stops and shows the install command:

curl -fsSL https://bun.sh/install | bash

Do not run npx omg. The npm package named omg is not part of omg.dev. Use npm i -g @omg-dev/cli, or npx @omg-dev/cli <command>.

2. Sign in

omg login

The CLI prints a sign-in link and opens it in your browser. Sign in with your omg.dev account. If you do not have an account, you can create one on the same page. When the browser says you are signed in, go back to the terminal.

Check the account:

omg whoami

3. Deploy

Go to your app folder and deploy it:

cd my-app
omg deploy --name my-app

The CLI shows each step and then prints the live link:

installing
building
ready
https://my-app-21us4.omgs.app

The first deploy creates the app and saves a link to it in .omg/project.json in the folder. Run omg deploy again in the same folder to update the same app. Keep .omg/ in the folder, or commit it, so later deploys update the same app.

omg.dev installs dependencies and runs the build on its servers. You do not need to run npm install or bun run build before you deploy.

Start a new app

To start from the omg.dev React starter (Vite, React, Tailwind, shadcn and the omg.dev SDK):

npx --yes create-omg@latest my-app
cd my-app
omg deploy --name my-app

Then follow Realtime apps to add a database and live updates.

Deploy from CI

In CI, use an API key instead of the browser sign-in:

npm i -g @omg-dev/cli
omg login --api-key "$OMG_API_KEY"
omg deploy --no-wait

You can also set OMG_API_KEY in the environment and skip omg login. --no-wait returns when the deploy starts, and does not wait for ready.

Commit .omg/project.json so CI updates the same app on every run.

Commands

CommandWhat it does
omg login [--api-key KEY]Sign in to omg.dev.
omg whoamiShow the signed-in account.
omg logoutSign out.
omg deploy [--name NAME]Publish the current folder. Creates the app on the first deploy.
omg deploy --no-waitStart the deploy and return at once.
omg deploy --generate-iconAlso make an app icon.
omg create <name>Publish the current folder as a new app with this name.
omg appsList your apps.
omg visibility <slug> [public|omg-users]Show or set who can open an app.
omg rename <slug> <new-slug>Change an app's address.
omg env list|pull|set|rm|import <slug> ...Manage an app's environment variables.

Other ways to deploy

  • From ChatGPT or Claude. Describe the app in chat, and omg.dev builds and deploys it. See Build apps from ChatGPT or Claude.
  • From a coding agent. Claude Code, Codex and other agents can run omg deploy in the terminal like any other command. They can also use the omg.dev MCP server. See MCP.

Troubleshooting

ProblemCauseFix
omg.dev is not installed on this computer. Run omg computer setup first.@omg-dev/cli is older than 0.5.4.npm i -g @omg-dev/cli@latest
omg: this CLI runs on Bun, which was not found on this machine.Bun is not installed.curl -fsSL https://bun.sh/install | bash, then open a new terminal.
UnauthorizedYou are not signed in.omg login
omg runs a different programAnother omg is first on PATH, for example the old @omg-dev/apps package.which -a omg. Remove the other one, or run npx @omg-dev/cli deploy.
The deploy creates a new app each timeThe .omg/ folder is missing.Keep .omg/project.json in the folder, or deploy with the same --name.
The app returns Authentication requiredCollections are private to each signed-in user by default.Add sign-in, or make the collection public. See Schema reference.

Plans and limits: omg.dev/pricing.