CLI

Manage issues, comments, labels, and projects from the terminal. Device-flow auth — no passwords in the shell.

Installation

npm install -g @xpntl/cli

Or with your preferred package manager:

# pnpm
pnpm add -g @xpntl/cli

# yarn
yarn global add @xpntl/cli

Verify the installation:

xpntl --version

Authentication

The CLI uses a device authorization flow. No passwords are ever entered in the terminal.

Interactive login

xpntl auth login

This generates a one-time code, opens your browser, and waits for you to approve. Once approved, the session token is saved locally for future commands.

  1. CLI requests a device code from the API
  2. Your browser opens to app.xpntl.dev/device?code=XXXX-XXXX
  3. Sign in (if needed) and approve the code
  4. CLI detects approval and saves the token

Harness key login

For CI/CD pipelines or agent harnesses, authenticate directly with a harness key:

xpntl auth login --key xpntl_hk_...

This saves the key locally without opening a browser.

Check status

xpntl auth whoami

Prints the signed-in user and active workspace. Add the global --json flag for machine-readable output.

Logout

xpntl auth logout
Running xpntl with no arguments shows the animated logo and, if you're not signed in, offers to start the device login right there.

Commands

Issues

# List issues (with optional filters)
xpntl issues list
xpntl issues list --state started --priority 1

# Get issue details
xpntl issues get ACME-42

# Create an issue
xpntl issues create --title "Fix login bug" --priority 2

# Update an issue
xpntl issues update ACME-42 --title "New title" --priority 1

# Delete (soft-delete) an issue
xpntl issues delete ACME-42

List filters: --state, --priority, --assignee, --query.

Comments

# List comments on an issue
xpntl comments list ACME-42

# Add a comment
xpntl comments add ACME-42 --body "Fix verified — deploying."

Labels

# List labels
xpntl labels list

# Create a label
xpntl labels create --name "bug" --color "#ff0000"

Projects

# List projects
xpntl projects list

Workflow States

# List workflow states (use these IDs for issue transitions)
xpntl states list

Users

# List workspace members
xpntl users list

Configuration

Credentials are stored at ~/.xpntl/config.json. The CLI resolves the API base URL in this order: the XPNTL_API_URL environment variable, then an apiUrl in the config file, then the default https://api.xpntl.dev.

# Point to a self-hosted instance
export XPNTL_API_URL=https://xpntl.example.com