Halo v1 is live — read the launch notes.

CLI

The halo command — deploy, link, alias, log, env. The dashboard, but in your terminal.

The Halo CLI is a single binary built on Bun. Every dashboard action has a CLI equivalent. Most teams live in the CLI for daily work and only open the dashboard for org-wide settings.

Install

npm
bash
npm install -g @halo/cli
bun
bash
bun add -g @halo/cli
brew
bash
brew install halo
curl
bash
curl -fsSL halo.example.com/install | sh

Authenticate

bash
halo login

Token is stored at ~/.halo/credentials. CI? Set HALO_TOKEN instead.

Common commands

CommandWhat it does
halo initScaffold a new project from a template.
halo linkConnect the current repo to a Halo project.
halo deployBuild + upload + deploy from cwd.
halo alias <domain>Promote a deployment to a domain.
halo logs --tailStream logs from production.
halo env add KEY valueSet an environment variable.
halo rollbackPromote the previous deployment.

halo init

bash
halo init --from next-saas-starter

Templates live at github.com/halo/templates. Pass any folder name.

halo deploy

bash
halo deploy --prod              # straight to production
halo deploy --target preview    # default
halo deploy --build-env KEY=val # one-off build env

halo deploy runs idempotently — if nothing changed, it returns the existing deployment URL instead of rebuilding.

Scripting

Request example
JSON
bash
halo deploy --json
Programmatic
ts
import { execa } from "execa";
const { stdout } = await execa("halo", ["deploy", "--json"]);
const { url } = JSON.parse(stdout);
Last updated Edit this page
↑↓ navigate open esc close