{"_id":"@affonso/cli","_rev":"6-8f08efe35e1b57c91d82a8807f4be549","name":"@affonso/cli","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@affonso/cli","version":"0.1.0","keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.0","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"bin":{"affonso":"dist/cli.js"},"dist":{"shasum":"51f4cd251b8e00fdf622ba363ca41bc3868fb817","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.0.tgz","fileCount":1,"integrity":"sha512-fEMWBcpI15bgHmIesQGf8iYd4wAkmH0LGuqIc5gWsBeBsN/xswM0c/EYwqhGf9A9Rf0Ah9CHvwoSj9R61hw85w==","signatures":[{"sig":"MEUCIHQ6AlR4btTLV0JdhPm4ydkWyjRB1rLif697s1MyAm/dAiEAzPEgrjSvumCObTTZvLWPiz3+uNVOfafSwHpq95+Kzsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835},"engines":{"node":">=18"},"gitHead":"f59a02e71af4966ecbae3a88a227b673989980b6","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"_npmVersion":"10.9.2","description":"Command line interface for the Affonso affiliate marketing platform","directories":{},"_nodeVersion":"22.13.0","dependencies":{"open":"^10.0.0","commander":"^12.0.0","@affonso/sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1775853230097_0.8957113172175886","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@affonso/cli","version":"0.1.1","keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.1","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"bin":{"affonso":"dist/cli.js"},"dist":{"shasum":"64f0caed9bef5324c5a77be858b00dc76ab2ba1d","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.1.tgz","fileCount":1,"integrity":"sha512-NBYBpvIrqmpU2hDS4aHky6EIZXYTvFy6zND7bRVVQebyAiR7DZP3DXpEgGd4pEQE+OCS9rbmH6ALMCy4SRhw1A==","signatures":[{"sig":"MEYCIQDWnPTQCYbFXBgy8xYHcFJxcAPtnVgUo52VXQMs45WOoQIhAPju6diP08jKdLYj/QItNbx0s1jQXXPpV4c5lVh/CSaQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835},"engines":{"node":">=18"},"gitHead":"e4a29e557b4a3cb8a920ac92ef5819c0945e5540","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"_npmVersion":"10.9.2","description":"Command line interface for the Affonso affiliate marketing platform","directories":{},"_nodeVersion":"22.13.0","dependencies":{"open":"^10.0.0","commander":"^12.0.0","@affonso/sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1775853911470_0.20638587941699926","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@affonso/cli","version":"0.1.2","keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.2","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"bin":{"affonso":"dist/index.js"},"dist":{"shasum":"894ac50cddb81286bd5b92245d4d96d6e2e310e9","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.2.tgz","fileCount":3,"integrity":"sha512-sz4w5WEvfI9kxoqezVHMhsAgbvpSC6qYLi7N7sqbd/tTsyEIzmpwOfJkKNpI2B4hPeQMOvPusGZLxBJ7Oqd+BA==","signatures":[{"sig":"MEQCICWXngc3TkO1A7WfA3uvCbj/m2KY7yvC9tvqyuE62oFLAiAN7ngW2XuiUOgAV5peO5FVQSeQc+M5CR10Rh2wsvSOUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66699},"engines":{"node":">=18"},"scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"_npmVersion":"10.9.2","description":"Command line interface for the Affonso affiliate marketing platform","directories":{},"_nodeVersion":"22.13.0","dependencies":{"open":"^10.0.0","commander":"^12.0.0","@affonso/sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.2_1775854189020_0.8078332814881937","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@affonso/cli","version":"0.1.3","keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.3","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"bin":{"affonso":"dist/index.js"},"dist":{"shasum":"12d8201de3c267f0bd1cb85a941ed328a27e8779","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.3.tgz","fileCount":3,"integrity":"sha512-HRm8/odvY40yq1fKrwG1CEGjdQQARAjNgvbPcU5roO5CcG6OqaXGeJS7uc3WuLOFeWUji6qSOWbYsEXe2TFmVw==","signatures":[{"sig":"MEYCIQDNLl+gslhD9tizwoxr7LsFjHhKA8D6P7bf6cJTvIFQMAIhAJhpU+USf3N3TIcct6kE5lO4clUsc81RbvxrjETohii6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66720},"engines":{"node":">=18"},"scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"_npmVersion":"10.9.2","description":"Command line interface for the Affonso affiliate marketing platform","directories":{},"_nodeVersion":"22.13.0","dependencies":{"open":"^10.0.0","commander":"^12.0.0","@affonso/sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.3_1775856133420_0.13787374585668632","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@affonso/cli","version":"0.1.4","keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.4","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"bin":{"affonso":"dist/index.js"},"dist":{"shasum":"b36ea83d490c8d0d1ccbf41cfce317c2353004dd","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.4.tgz","fileCount":3,"integrity":"sha512-bCMiYwWRsRo7WKQZ8dfk/f8i3J6KVfCPWY6tRQX5Ala/iQMwtm8eZBlztWkK96EEG2I8uiUXazJTK+l9ZdFMDQ==","signatures":[{"sig":"MEQCIDXL817sVhgaesmbNq5TJ34A3CXXBl6Nd+Af6ehTVcJkAiAsIs/2Uyh0b9SyI98NfRuFtS8Cv3Ff8uxakD/jdbs2yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66691},"engines":{"node":">=18"},"scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"_npmVersion":"10.9.2","description":"Command line interface for the Affonso affiliate marketing platform","directories":{},"_nodeVersion":"22.13.0","dependencies":{"open":"^10.0.0","commander":"^12.0.0","@affonso/sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.4_1776381639862_0.6283984695991773","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@affonso/cli","version":"0.1.5","description":"Command line interface for the Affonso affiliate marketing platform","bin":{"affonso":"dist/index.js"},"scripts":{"build":"tsup","prepack":"npm run build -- --silent","dev":"tsup --watch","test":"vitest run","test:package":"npm run build && node scripts/smoke-package.mjs","test:watch":"vitest","lint":"biome check src/","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit"},"engines":{"node":">=18"},"dependencies":{"@affonso/sdk":"^0.2.0","commander":"^12.0.0","open":"^10.0.0"},"devDependencies":{"@biomejs/biome":"^1.9.0","@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.7.0","vitest":"^2.0.0"},"keywords":["affonso","affiliate","cli"],"license":"MIT","_id":"@affonso/cli@0.1.5","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-EmeHMLkPdtETB78xManzn+z2OIYoj/jNwtBPx2Dz51kg4u1fWdXtiD990MiX68hbfeGDerK9lIVimQYQ1eouMA==","shasum":"5aecbd4d32a04e6ff4dd73429e65d2b8bd9b324d","tarball":"https://registry.npmjs.org/@affonso/cli/-/cli-0.1.5.tgz","fileCount":3,"unpackedSize":91006,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQClWTPWcHNxfNGxzIkKEp4OOVTzzarjxqp9lrUgSdL/JwIgVAb6P73u0XbOPra00Gjbw78gMPvRkOzGxLv7EqVNuWo="}]},"_npmUser":{"name":"silvestro","email":"silvestro@affonso.io"},"directories":{},"maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.5_1784497799102_0.6657977157894317"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T20:33:50.032Z","modified":"2026-07-19T21:49:59.480Z","0.1.0":"2026-04-10T20:33:50.224Z","0.1.1":"2026-04-10T20:45:11.613Z","0.1.2":"2026-04-10T20:49:49.145Z","0.1.3":"2026-04-10T21:22:13.553Z","0.1.4":"2026-04-16T23:20:40.013Z","0.1.5":"2026-07-19T21:49:59.310Z"},"license":"MIT","keywords":["affonso","affiliate","cli"],"description":"Command line interface for the Affonso affiliate marketing platform","maintainers":[{"name":"silvestro","email":"silvestro@affonso.io"}],"readme":"# @affonso/cli\n\nCommand-line interface for the [Affonso](https://affonso.io) affiliate marketing platform. Manage affiliates, referrals, commissions, payouts, and program settings — from your terminal or through AI agents.\n\n## Why a CLI?\n\nThe Affonso CLI is designed for two audiences:\n\n- **Developers** who want to manage their affiliate program without leaving the terminal\n- **AI agents** (OpenClaw, Paperclip, Claude, GPT, custom agents) that can use shell tools to build automated affiliate workflows — approving affiliates, tracking commissions, managing payouts, and more\n\nEvery command supports `--json` output, making it straightforward for agents to parse responses and chain commands together.\n\n## Installation\n\n```bash\nnpm install -g @affonso/cli\n```\n\nOr run directly with npx:\n\n```bash\nnpx @affonso/cli <command>\n```\n\n## Authentication\n\n### OAuth (recommended)\n\n```bash\naffonso login\n```\n\nOpens your browser for secure authentication via OAuth 2.1 with PKCE. Tokens are stored locally in `~/.config/affonso/auth.json`.\n\n```bash\naffonso logout    # revoke token and clear credentials\naffonso whoami    # show current auth status\n```\n\n### API key\n\nPass it per-command, set it in your environment, or store it in the CLI config:\n\n```bash\n# Per-command\naffonso affiliates list --api-key sk_live_...\n\n# Environment variable\nexport AFFONSO_API_KEY=sk_live_...\n\n# Store in config\naffonso config set api-key sk_live_...\n```\n\nAuth priority: `--api-key` flag > `AFFONSO_API_KEY` env var > stored config > OAuth token.\n\n## Usage\n\n```bash\naffonso <command> <subcommand> [options]\n```\n\n### Global options\n\n| Option | Description |\n|---|---|\n| `--json` | Output as JSON |\n| `--api-key <key>` | API key for this request |\n| `--base-url <url>` | Custom API base URL |\n| `--no-color` | Disable colored output |\n| `--version` | Show version |\n| `--help` | Show help |\n\n### Commands\n\n#### Affiliates\n\n```bash\naffonso affiliates list [--status pending|approved|rejected] [--search <query>] [--limit <n>] [--page <n>]\naffonso affiliates get <id>\naffonso affiliates create --name <name> --email <email> --program-id <id>\naffonso affiliates update <id> [--name <name>] [--status <status>] [--email <email>]\naffonso affiliates delete <id>\n```\n\n#### Referrals\n\n```bash\naffonso referrals list [--affiliate-id <id>] [--status <status>] [--limit <n>]\naffonso referrals get <id>\naffonso referrals create --email <email> --affiliate-id <id>\naffonso referrals update <id> [--status <status>] [--email <email>]\naffonso referrals delete <id>\n```\n\n#### Commissions\n\n```bash\naffonso commissions list [--status <status>] [--affiliate-id <id>] [--limit <n>] [--page <n>]\naffonso commissions get <id>\naffonso commissions create --referral-id <id> --sale-amount <n> --sale-amount-currency <code> --commission-amount <n> --commission-currency <code>\naffonso commissions update <id> [--status <status>] [--sale-amount <n>]\naffonso commissions delete <id>\n```\n\n#### Coupons\n\n```bash\naffonso coupons list [--affiliate-id <id>] [--search <query>]\naffonso coupons get <id>\naffonso coupons create --affiliate-id <id> --code <code> --discount-type <type> --discount-value <n> --duration <dur>\naffonso coupons delete <id>\n```\n\n#### Payouts\n\n```bash\naffonso payouts list [--status <status>] [--affiliate-id <id>]\naffonso payouts get <id>\naffonso payouts update <id> --status <status>\n```\n\n#### Clicks\n\n```bash\naffonso clicks create --program-id <id> --tracking-id <id> [--referrer <url>] [--utm-source <val>]\n```\n\n#### Embed tokens\n\n```bash\naffonso embed-tokens create [--affiliate-id <id>] [--email <email>]\n```\n\n#### Program settings\n\n```bash\naffonso program get\naffonso program update [--name <name>] [--auto-approve] [--no-auto-approve]\n\n# Sub-resources\naffonso program payment-terms get|update\naffonso program tracking get|update\naffonso program restrictions get|update\naffonso program fraud-rules get|update\naffonso program portal get|update\naffonso program notifications list|update <id>\naffonso program groups list|get <id>|create|update <id>|delete <id>\naffonso program creatives list|get <id>|create|update <id>|delete <id>\n```\n\n#### Marketplace (public, no auth required)\n\n```bash\naffonso marketplace list [--category <cat>] [--search <query>]\naffonso marketplace get <id>\n```\n\n#### Config\n\n```bash\naffonso config get <key>     # api-key, base-url\naffonso config set <key> <value>\n```\n\n## JSON output\n\nAdd `--json` to any command for machine-readable output:\n\n```bash\naffonso affiliates list --json\naffonso affiliates get aff_123 --json\n```\n\nThis is especially useful for AI agents that need to parse and act on the data programmatically.\n\n## Use with AI agents\n\nThe CLI works as a tool for any AI agent that can execute shell commands. Set `AFFONSO_API_KEY` in the agent's environment and use `--json` for structured output:\n\n```bash\n# An agent can list pending affiliates and approve them\naffonso affiliates list --status pending --json\naffonso affiliates update aff_123 --status approved --json\n\n# Track and manage commissions\naffonso commissions list --affiliate-id aff_123 --json\naffonso payouts list --status pending --json\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}