Skip to main content
The agentref CLI is a lightweight command-line tool that wraps the AgentRef REST API v1 and MCP server. It is designed for scripting, CI/CD pipelines, and quick account operations from the terminal.
The CLI reuses existing AgentRef surfaces — REST API v1 for account/program operations and MCP for marketplace access. It does not duplicate business logic; all domain logic stays on the server.

Running the CLI

From the AgentRef repository:
./bin/agentref help
Or via npm:
npm run agentref -- help

Authentication

The CLI resolves credentials in this order:
  1. --api-key flag (highest priority)
  2. AGENTREF_API_KEY environment variable
  3. ~/.agentref/config.json file

Config File

Store persistent configuration at ~/.agentref/config.json:
~/.agentref/config.json
{
  "baseUrl": "https://www.agentref.dev/api/v1",
  "apiKey": "ak_live_your_api_key_here",
  "updatedAt": "2026-03-23T10:00:00Z"
}
Create API keys in the AgentRef dashboard under Settings > API Keys. Keys are shown only once — store them securely.

Global Options

Every command accepts these flags:
FlagDescription
--jsonStable machine-readable output envelope
--base-url <url>Override API base URL
--api-key <key>Override stored API key
--timeout-ms <ms>Request timeout in milliseconds
--retries <n>Retry count for retryable failures

JSON Output

When --json is passed, all commands return a consistent envelope:
{
  "ok": true,
  "command": "programs list",
  "transport": "rest",
  "data": { ... },
  "meta": { ... }
}
This is useful for piping into jq or other automation tools.

Commands

whoami

Display the authenticated user identity.
agentref whoami

me

Show full merchant account details.
agentref me

programs list

List your affiliate programs.
agentref programs list
agentref programs list --limit 5 --page 2
agentref programs list --json
FlagDescription
--limit <n>Number of programs per page
--page <n>Page number
--page-size <n>Items per page
--offset <n>Offset-based pagination

programs create

Create a new affiliate program.
agentref programs create \
  --name "Acme Referrals" \
  --commission-type recurring \
  --commission-percent 25
FlagRequiredDescription
--name <name>YesProgram name
--commission-type <type>Yesone_time, recurring, or recurring_limited
--commission-percent <1-100>YesCommission percentage
Additional optional flags match the create_program API parameters (cookie duration, payout threshold, etc.).

marketplace list

Browse the public marketplace catalog.
agentref marketplace list
agentref marketplace list --via mcp
FlagDescription
--via <rest|mcp>Transport layer to use (default: rest)
Standard filter flagsCategory, min commission, etc.
The --via mcp option routes the request through the MCP endpoint instead of REST, which can be useful for testing MCP connectivity.

Exit Codes

The CLI uses structured exit codes for scripting:
CodeMeaning
0Success
1Unknown / unexpected error
2Usage error (invalid arguments)
3Config error (missing config file or API key)
4Auth error (401 / 403)
5Rate limited (429)
6Network / timeout error
7Server error (5xx)
8API / MCP contract or client error

Scripting with Exit Codes

agentref whoami --json
if [ $? -eq 4 ]; then
  echo "API key is invalid or expired"
  exit 1
fi

Examples

Quick status check

# Verify credentials work
agentref whoami

# List programs as JSON for parsing
agentref programs list --json | jq '.data[] | {name, status}'

Create a program from a script

#!/bin/bash
set -e

export AGENTREF_API_KEY="ak_live_..."

agentref programs create \
  --name "Q1 Referral Program" \
  --commission-type one_time \
  --commission-percent 15 \
  --json

echo "Program created successfully"

CI/CD integration

.github/workflows/setup-program.yml
- name: Create affiliate program
  env:
    AGENTREF_API_KEY: ${{ secrets.AGENTREF_API_KEY }}
  run: |
    agentref programs create \
      --name "Production Referrals" \
      --commission-type recurring \
      --commission-percent 20 \
      --json
For more complex automation workflows, consider using the Node.js SDK or Python SDK instead. The CLI is best for quick operations and shell scripting.