Skip to content

Quickstart

Deploy your first app to APCO Cloud in about five minutes. You'll install the CLI, log in, create a manifest, and ship a live app to https://<slug>.apco.space.

1. Install the CLI

APCO accounts are invite-only, but the CLI is public on npm as apco-cli. You need Node.js 22.13 or newer. Install the current 0.1 release line, which puts the apco command on your PATH, then verify it:

bash
npm install --global apco-cli@0.1
apco --help

CI / headless use

Set APCO_TOKEN in the environment to authenticate non-interactively (skips the device-flow login below).

2. Log in

apco login uses a device flow: it prints a URL and a code, you approve in the browser, done.

bash
apco login
To authorize this device, open:
  https://apco.space/device?user_code=ABCD-EFGH

Verification code: ABCD-EFGH

Waiting for approval...
Logged in to APCO Cloud as you@example.com.

The CLI stores an API key in ~/.config/apco/config.json. Verify with:

bash
apco whoami

CI and headless environments

Skip apco login and set APCO_TOKEN=<api key> instead. It takes precedence over the stored login. Create scoped keys on the dashboard's Tokens page — see token scopes.

3. Create a manifest

From your app's directory:

bash
cd my-app
apco init

This writes apco.yml:

yaml
version: 2
app:
  name: my-app
  slug: auto      # "auto" = the server assigns a unique subdomain
  type: auto      # auto | static | ssr; existing images use explicit dockerimage
  port: 3000
env:
  files: []

type: auto picks static when a publish directory (dist, .output/public, public) exists, otherwise ssr. See the manifest reference for every field.

4. Deploy

bash
apco deploy

The CLI packs your working directory into a tarball (excluding .git, node_modules, and anything matched by .apcoignore), uploads it, and streams the build until your app is live:

· Assigned slug my-app (https://my-app.apco.space)
· Packing my-app
· Uploading source (42 files)
[apco] deploy 8a41f3aa for my-app (type=ssr, channel=production)
[railpack] detected node app
[build] ...
✓ Deployed my-app in 48s → https://my-app.apco.space
Deployed my-app to https://my-app.apco.space

No Git required — what's in your directory is what ships. The first deploy creates the project (you'll be asked to confirm unless you pass --yes).

Already have a runnable OCI image? Use apco init --template dockerimage instead. That path sends no source, pins the registry digest, and otherwise uses the same health-gated rollout. See Deploying OCI images.

5. Open it

bash
apco open

Prints the project URL and opens https://my-app.apco.space in your browser.

Where to go next

Everything speaks JSON

Every command accepts --json and prints exactly one machine-readable JSON object — handy for scripts and AI agents. See the agent contract.

APCO Cloud — ship apps with one command.