Happier Docs
Development

Dev box

Run Happier CLI + daemon inside a container (dev-box), and pair it to your account without opening a browser.

This page explains how to run Happier inside a container (for example: a remote VM or a disposable “dev box”) and authenticate it from your local machine.

Dev box image

We publish a preview dev box image on Docker Hub:

docker pull happierdev/dev-box:preview

We also publish the same image to GitHub Container Registry (GHCR):

docker pull ghcr.io/happier-dev/dev-box:preview

The image includes:

  • happier CLI
  • optional provider CLIs (install on first boot via env)

Note: “dev box” is our Docker image name — it’s not tied to any specific editor “devcontainer” feature.

Optional: install provider CLIs on first boot

Set HAPPIER_PROVIDER_CLIS to install provider CLIs into the container user’s npm prefix:

docker run --rm -it \
  -e HAPPIER_PROVIDER_CLIS=claude,codex \
  happierdev/dev-box:preview

Supported values today: claude, codex.

Persist ~/.happier so credentials, machine IDs, logs, etc. survive container restarts:

docker run --rm -it \
  -v happier-home:/home/happier/.happier \
  happierdev/dev-box:preview

Pair a remote container/host from your local CLI (no web UI)

If your local machine is already authenticated (happier auth status is OK), you can pair a remote host/container over SSH:

happier auth pair-remote --ssh user@host --json

What this does:

  1. Runs happier auth request --json on the remote host.
  2. Approves the request locally using your existing token (the local token is not sent to the remote host).
  3. Runs happier auth wait --public-key ... --json on the remote host to claim the request and write credentials.

Manual (scriptable) alternative

If you want to integrate with custom orchestration:

  1. On the remote host:
happier auth request --json
  1. On your local machine (authenticated):
happier auth approve --public-key <publicKey> --json
  1. Back on the remote host:
happier auth wait --public-key <publicKey> --json

On this page