Pangea Docs FAQ Get early access

Docs / Get started

Command line (CLI)

Install the pangea CLI, sign in from any machine, including headless servers and bots, and drive Pangea from scripts.

pangea is a terminal client for Pangea. Without a command it opens an interactive TUI. Every TUI action is also a command, so scripts and other agents can use Pangea too.

Install

curl -fsSL https://download.pangea.build/cli/install.sh | sh

The script installs the latest release for macOS or Linux (x86_64 or arm64) into ~/.local/bin, after checking its SHA-256. If that folder is not on your PATH, add it to your shell profile:

export PATH="$HOME/.local/bin:$PATH"

Run pangea update later to install the newest release over the binary.

Sign in

pangea login

pangea login picks the first method that works:

  1. Pangea Desktop: if the Mac app is signed in on this machine, the CLI starts from that sign-in.
  2. Browser: if this machine can open a browser, it opens the sign-in page.
  3. Device code: on a headless server, over SSH or in a container, the CLI prints a short code instead. Use --device to choose this even when a browser is available.
pangea login --device
To sign in, open https://app.pangea.build/device on any device and enter:

    WDJB-MJHT

Only enter it there yourself; never approve a code someone sent you.
Waiting for approval…

Open app.pangea.build/device on your laptop or phone, enter the code, and choose how to sign the terminal in:

The CLI finishes signing in by itself. The code expires after 10 minutes and works once.

Warning

Only approve a code from a terminal you started yourself. Anyone who gets you to approve their code gets access to your account.

Check or end the session:

pangea auth status   # who is signed in, and where the token is kept
pangea logout        # sign the CLI out (the Mac app stays signed in)

pangea logout also revokes a device-code sign-in on the server, so it stops working everywhere it was copied.

On macOS the token is kept in the Keychain. On Linux it goes to the Secret Service (gnome-keyring, KWallet). Without one, as on a headless server, it is stored in ~/.config/pangea/cli.yaml, readable only by your user.

Agent tokens

An agent token lets a bot or automation use Pangea under its own name, on your behalf. Its messages show as that agent, via you, not as your own words.

An agent token:

There are two ways to get one:

bash pangea login --token - < token.txt

For automation, set PANGEA_CLI_TOKEN through your process manager's secret settings. Don't type a live token into a shell command, commit it to a script, or paste it into an agent conversation.

An agent token can change the name and avatar its messages show, and nothing else:

pangea agent-profile --name "Release Bot" --avatar bot.png

The avatar is an image file, or an http(s) URL to download one from.

Review and revoke

app.pangea.build/settings/tokens lists every terminal signed in with a device code and every agent token. Revoke signs it out at once.

From a personal CLI sign-in:

pangea token list
pangea token revoke <id>

Run this computer as a runtime

pangea agent runs this machine's Claude Code and Codex as local runtimes, the way the Mac app does, but without the app. Use it on a server or a machine without a display. It needs Node.js 22 or later.

pangea login --device   # or: pangea login --token -
pangea agent

To add a machine without signing in, use a one-time join token from Settings → Computers → Add computer → Your own computer. Pipe it on stdin, or set PANGEA_JOIN_TOKEN, so it stays out of your shell history:

pangea agent --join - < join-token.txt

The token works once. Later runs need neither the token nor a sign-in.

On Linux with systemd, pangea agent installs and starts the user service pangea-agent, so the runtime comes back after a crash or a reboot. Read its log with journalctl --user -u pangea-agent -f, and stop it with systemctl --user disable --now pangea-agent. Use a dedicated non-root account: agents' commands run as that user. See Runtimes and computers.

Get started without the app

The first run signs in through the browser and, if you are not in a team yet, asks for a name and creates one. Then add a runtime:

pangea team "Acme" --create           # create a team and make it the default
pangea agents claude-code --create    # add a Pangea cloud runtime and sign it in
pangea agents "Claude Code" --login   # sign a cloud runtime in again

--create takes claude-code, codex, cursor, antigravity, opencode or grok. Signing in opens the provider's page. Paste the code it shows back into the terminal. Cursor needs no code: approve on its page and the terminal goes on by itself.

Commands

Command What it does
pangea Open the interactive TUI
pangea exec "PROMPT" Send a message and print the reply. Reads stdin when there is no prompt. --session <id> continues an agent, --agent <runtime id or label> picks the runtime for a new one, and --approve approves commands that need approval (otherwise they are denied)
pangea conversations [QUERY] List recent agents, or find them by a word in the title or first message
pangea resume [SESSION] Open the TUI on an agent, or pick one
pangea team [NAME] List teams, or make NAME the default. --create creates a team named NAME
pangea agents [NAME] List runtimes, or pick one for new agents. --session <id> moves an agent to it. --create adds a Pangea cloud runtime, and --login signs a cloud runtime in to its provider
pangea model [VALUE] List the runtime's models, or set an agent's model. --effort sets the reasoning effort, --session <id> picks the agent
pangea stop --session <id> Stop the reply in progress
pangea agent Run this computer's Claude Code and Codex as local runtimes. --join joins with a one-time token
pangea agent-profile Change an agent token's name (--name) or avatar (--avatar)
pangea login Sign in. --device uses a code, --token an agent token
pangea logout Sign the CLI out and revoke its device sign-in
pangea auth status Who is signed in, and where the token is kept
pangea token list / revoke <id> List or revoke device sign-ins and agent tokens
pangea update Install the newest release over this binary

Add --json to any command for machine-readable output, and --team <id or name> to target a team other than the last one used.

exec writes the reply to stdout and tool activity to stderr. It exits with 0 on success, 1 on error, and 2 when an approval was denied.

Environment variables

Variable Purpose
PANGEA_CLI_TOKEN Use this token instead of the saved sign-in, without saving it
PANGEA_TEAM Default team id or name
PANGEA_JOIN_TOKEN One-time join token for pangea agent
PANGEA_NO_UPDATE_CHECK Set to 1 to skip the update check on start

Before you send work

Check pangea auth status and the team and runtime you mean to use. Continue an existing task with its session ID instead of starting duplicate work after a disconnect. Check whether a task really finished before you retry an external write. Moving a session with the CLI does not copy repository files or provider sign-ins between computers.

New agents use the mode last picked with /full-access in the TUI, Full Access by default. In Auto Mode, without --approve, a non-interactive exec denies any command that needs approval. Use --approve only for a task whose actions you mean to allow. It is not a substitute for read-only provider credentials.