//moonshift cli

Moonshift in your terminal.

One prompt, a deployed app, from a single self-contained binary. No Node, Bun, or build step to install.

What it is

The CLI is a thin client over the Moonshift API. You type an idea, it builds and deploys a real site, and you can iterate on it without leaving the command line. All of the building, deploying, and marketing happens server-side. Nothing heavy runs on your machine.

It ships as one self-contained binary. There is no runtime to install first: no Node, no Bun, no build step.

Install

macOS and Linux:

bash
curl -fsSL https://moonshift.io/install.sh | bash

Windows (PowerShell):

powershell
irm https://moonshift.io/install.ps1 | iex

The installer detects your OS and architecture, downloads the matching binary, verifies its SHA-256, and installs it to a bin directory on your PATH. To upgrade later, run the same command again.

First run

Sign in once. The login uses a device-code flow: it prints a short code and a URL, and you approve it in your browser.

bash
moonshift login

Then run moonshift on its own to open the interactive launchpad: an idea box with a slash palette. Inside a pipe or a CI job, where there is no interactive terminal, it prints a static list of commands instead.

bash
moonshift

Commands

Every command runs as moonshift <command>.

command
what it does
moonshift
Open the interactive launchpad: idea box plus a slash palette.
login
Sign in with a device code. Prints a code and URL to approve in your browser.
logout
Clear the saved token from local config.
whoami
Show the account you are signed in as.
create "<idea>"
Build and deploy a site from one prompt.
resume [run-id]
Re-open a past run to keep iterating on it.
connect [provider]
Link GitHub, Vercel, X, LinkedIn, or Meta to your account.
templates
Browse the starter templates you can build from.
runs
List your latest runs with their status and URLs.
open <run-id>
Open a run's live site in your browser.
logs <run-id>
Stream a run's live build log in the terminal.
clone <url>
Rebuild an existing site from its URL.
stats <run-id>
Show visitor analytics for a shipped site.
domains <run-id>
Connect a custom domain to a project.
moons
Check your moon balance and top up.
doctor
Run an auth and API health checklist.
update
Check for a newer CLI and update (or run the install one-liner again).

create flags

Flags shape a single build. Pass them after the idea, for example moonshift create "a landing page for my bakery" --standard.

flag
what it does
--standard / --full
Pick the build mode. Default is fast.
--template <slug>
Start from a named template.
--archetype <type>
Set the kind of project to build.
--deploy vercel|netlify|none
Choose where it ships, or skip deploy.
--provider <id>
Pin a specific model provider for the run.
--attach <path>
Send a local file along with your prompt.
--approval
Pause for your approval at each step.
--skip <phase>
Skip a named phase of the build.
--json
Emit machine-readable JSON instead of the TUI.
--no-tui
Print plain lines, no full-screen interface.
--no-splash
Skip the intro splash screen.

Slash commands

In the launchpad, type / to open the palette. There are three build modes: fast (the default), standard, and full.

slash command
what it does
/mode fast|standard|full
Switch the build mode. Fast is the default.
/connect
Open the connect-accounts view.
/resume
Pick a past run to continue.
/runs
List your recent runs.
/logs
Stream the live log for a run.
/templates
Browse starter templates.
/clone
Rebuild a site from its URL.
/moons
Check your moon balance.
/domains
Connect a custom domain.
/stats
Show visitor analytics for a site.
/whoami
Show the signed-in account.
/doctor
Run the health checklist.
/update
Check for a newer CLI.
/login
Sign in.
/logout
Sign out.

Connect your accounts

Run moonshift connect to see what is linked and open the web settings page. Run moonshift connect github to link GitHub and wait until it is done.

bash
moonshift connect moonshift connect github

Once GitHub is connected, builds push to your own repository and every iteration commits back to it.

Iterate after launch

After a run ships, type a change in the composer, for example make the buttons green, and press Enter. A new version iterates on the existing project and redeploys to the same URL. To re-open an older run, use moonshift resume.

  1. step 01
    Ship the first version

    Run create with your idea. You get a live URL when it finishes.

  2. step 02
    Describe one change

    Type a plain-language edit in the composer and press Enter.

  3. step 03
    Redeploy to the same URL

    Moonshift iterates on the project and ships the new version in place.

  4. step 04
    Re-open anytime

    Run moonshift resume to pick up a past run later.

Security and source

The CLI is a thin client. It does three things: it calls the Moonshift API, it draws the terminal UI, and it reads and writes your local config. That is all it contains.

The pipeline, prompts, and orchestration stay server-side and are never shipped to your machine. The binary is the minified compiled bundle: no TypeScript source, no source maps, and no embedded secrets. It authenticates with the per-user token created by moonshift login.

Troubleshooting

  • Command not found. Add the printed bin directory to your PATH, then open a new terminal.
  • "Not signed in". Run moonshift login and approve the code in your browser.
  • Garbled icons. Run with MOONSHIFT_ICONS=ascii for plain characters.
  • Check health. Run moonshift doctor for an auth and API checklist.