Recurly CLI
CLI for the Recurly v3 API
Gobillingcligorecurly
A command-line interface for the Recurly v3 API. Built in Go with interactive configuration, multiple output formats, built-in jq filtering, and watch mode for polling resources.
Installation
Homebrew
brew install built-fast/devtools/recurly-cli
Go install
go install github.com/built-fast/recurly-cli@latest
From source
make build # produces ./bin/recurly
Quick Start
# Interactive setup — creates ~/.config/recurly/config.toml
recurly configure
# List accounts
recurly accounts list --limit 50 --sort created_at --order desc
# Get a subscription
recurly subscriptions get <subscription_id>
# Create an account
recurly accounts create --code acct-1 --email user@example.com
# Create a plan from a YAML file
recurly plans create --from-file plan.yaml
# Open an account in the browser
recurly open accounts <account_id>
Configuration
Three-tier configuration with flags taking highest priority:
- Command-line flags (highest)
- Environment variables
- Config file
~/.config/recurly/config.toml(lowest)
Environment Variables
| Variable | Description |
|---|---|
RECURLY_API_KEY |
API key (overrides config file) |
RECURLY_REGION |
Region: us (default) or eu |
RECURLY_SITE |
Site subdomain |
API Reference
Accounts
recurly accounts list
recurly accounts get <account_id>
recurly accounts create --code <code> --email <email>
recurly accounts update <account_id> [--email <email>]
recurly accounts deactivate <account_id>
recurly accounts reactivate <account_id>
Accounts - Billing Info
recurly accounts billing-info get <account_id>
recurly accounts billing-info update <account_id>
recurly accounts billing-info remove <account_id>
Accounts - Nested Resources
recurly accounts subscriptions list <account_id>
recurly accounts invoices list <account_id>
recurly accounts transactions list <account_id>
recurly accounts redemptions list <account_id>
recurly accounts redemptions list-active <account_id>
recurly accounts redemptions create <account_id>
recurly accounts redemptions remove <account_id> <redemption_id>
Subscriptions
recurly subscriptions list
recurly subscriptions get <subscription_id>
recurly subscriptions create --plan-code <code> --account-code <code>
recurly subscriptions update <subscription_id> [--auto-renew true]
recurly subscriptions cancel <subscription_id>
recurly subscriptions reactivate <subscription_id>
recurly subscriptions pause <subscription_id>
recurly subscriptions resume <subscription_id>
recurly subscriptions terminate <subscription_id>
recurly subscriptions convert-trial <subscription_id>
Plans
recurly plans list
recurly plans get <plan_id>
recurly plans create --code <code> --name <name>
recurly plans update <plan_id> [--name <name>]
recurly plans deactivate <plan_id>
Plans - Add-ons
recurly plans add-ons list <plan_id>
recurly plans add-ons get <plan_id> <add_on_id>
recurly plans add-ons create <plan_id> --code <code> --name <name>
recurly plans add-ons update <plan_id> <add_on_id> [--name <name>]
recurly plans add-ons delete <plan_id> <add_on_id>
Items
recurly items list
recurly items get <item_id>
recurly items create --code <code> --name <name>
recurly items update <item_id> [--name <name>]
recurly items deactivate <item_id>
recurly items reactivate <item_id>
Invoices
recurly invoices list
recurly invoices get <invoice_id>
recurly invoices line-items <invoice_id>
recurly invoices collect <invoice_id>
recurly invoices void <invoice_id>
recurly invoices mark-failed <invoice_id>
Coupons
recurly coupons list
recurly coupons get <coupon_id>
recurly coupons create-percent --code <code> --name <name> --discount-percent 20
recurly coupons create-fixed --code <code> --name <name>
recurly coupons create-free-trial --code <code> --name <name>
recurly coupons update <coupon_id> [--name <name>]
recurly coupons deactivate <coupon_id>
recurly coupons restore <coupon_id>
recurly coupons list-codes <coupon_id>
recurly coupons generate-codes <coupon_id>
Transactions
recurly transactions list
recurly transactions get <transaction_id>
Output Format
# 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'
Watch Mode
Poll a resource on an interval:
recurly subscriptions get <sub_id> --watch 10s
Shell Completion
recurly completion bash
recurly completion zsh