Command-line interface for the Recurly v3 API. Manage accounts, subscriptions, plans, invoices, items, coupons, and transactions from your terminal.
- Go 1.26+
brew install built-fast/devtools/recurly-cligo install github.com/built-fast/recurly-cli@latestOr build from source:
make build # produces ./bin/recurlyRun the interactive setup:
recurly configureThis creates ~/.config/recurly/config.toml with your API key, region, and site.
You can also configure via environment variables:
export RECURLY_API_KEY=your-api-key
export RECURLY_REGION=us # us (default) or eu
export RECURLY_SITE=mysite # site subdomainOr pass flags directly:
recurly accounts list --api-key <key> --region euPrecedence: flags > environment variables > config file.
# List resources
recurly accounts list --limit 50 --sort created_at --order desc
# Get a resource
recurly subscriptions get <subscription_id>
# Create
recurly accounts create --code acct-1 --email user@example.com
# Update
recurly subscriptions update <sub_id> --auto-renew true
# Create from file (JSON or YAML)
recurly plans create --from-file plan.yaml
# Destructive operations require confirmation (or --yes)
recurly subscriptions cancel <sub_id>
recurly subscriptions cancel <sub_id> --yes| Resource | Commands |
|---|---|
accounts |
list, get, create, update, deactivate, reactivate |
accounts billing-info |
get, update, remove |
accounts subscriptions |
list |
accounts invoices |
list |
accounts transactions |
list |
accounts redemptions |
list, list-active, create, remove |
subscriptions |
list, get, create, update, cancel, reactivate, pause, resume, terminate, convert-trial |
plans |
list, get, create, update, deactivate |
plans add-ons |
list, get, create, update, delete |
items |
list, get, create, update, deactivate, reactivate |
invoices |
list, get, line-items, collect, void, mark-failed |
coupons |
list, get, create-percent, create-fixed, create-free-trial, update, deactivate, restore, list-codes, generate-codes |
transactions |
list, get |
# Table (default), JSON, or pretty JSON
recurly accounts list --output table
recurly accounts list --output json
recurly accounts list --output json-pretty
# Select specific fields
recurly accounts list --field id,code,email
# Built-in jq filtering (no external jq needed)
recurly subscriptions list --jq '.data[] | select(.state == "active") | .id'Poll a resource on an interval:
recurly subscriptions get <sub_id> --watch 10srecurly open accounts <account_id>recurly completion bash
recurly completion zshInstall dependencies:
brew bundleRun the full check suite (formatting, linting, tests, e2e, vulnerability scan):
make checkIndividual targets:
make build # Build binary
make test # Unit tests
make test-e2e # E2E tests (BATS + Prism mock server)
make lint # golangci-lint
make fmt # Format code
make surface # Regenerate CLI surface snapshot
make vuln # Dependency vulnerability scanMIT