Skip to main content
The CNAP CLI provides terminal-based access to all API operations with interactive pickers, streaming logs, and shell access to running pods.

Installation

brew install cnap-tech/tap/cnap

Authentication

# Log in via browser (device flow) — stores a session token
cnap auth login

# Log in with a Personal Access Token (for CI/CD)
cnap auth login --token cnap_pat_...

# Check authentication status (shows token type and expiry)
cnap auth status

# Remove stored credentials (revokes session server-side)
cnap auth logout
The device flow opens your browser for approval, then stores a session token in ~/.cnap/config.yaml. Sessions are long-lived and auto-refresh on use. For CI/CD, use --token with a Personal Access Token.
Set CNAP_API_TOKEN environment variable to override the stored token, useful for CI/CD pipelines.

Output Formats

# Table output (default)
cnap installs list

# JSON output
cnap installs list -o json

# Quiet mode (IDs only)
cnap installs list -o quiet

# Set default format in config
cnap config set output.format json
The -o / --output flag is available on all commands.

Pagination

List commands accept --limit and --cursor flags for pagination:
# First page (10 items)
cnap clusters list --limit 10

# Next page using cursor from previous response
cnap clusters list --limit 10 --cursor <cursor>
Default limit is 50, maximum is 100.

Configuration

The CLI stores configuration in ~/.cnap/config.yaml:
api_url: https://api.cnap.tech
auth_url: https://dash.cnap.tech
active_workspace: j575xyz789ghi012
auth:
  token: a1b2c3d4e5f6...  # session token from device flow (or cnap_pat_... for PATs)
output:
  format: table

Environment Variables

VariableDescriptionOverrides
CNAP_API_TOKENAPI token (PAT or session token)auth.token in config
CNAP_API_URLAPI base URLapi_url in config
CNAP_AUTH_URLAuth/dashboard URLauth_url in config
CNAP_DEBUGEnable debug logging

Debugging

Enable verbose output with the --debug flag or CNAP_DEBUG=1:
cnap --debug installs list
This shows HTTP request/response details for troubleshooting.