hkuds/cli-anything

cli-anything-mailchimp

CLI harness for the Mailchimp Marketing API v3.0 — 303 commands across 30 resource groups (lists, campaigns, reports, automations, ecommerce, templates, and more). Supports JSON output and interactive REPL mode.

First seen May 13, 2026

Installation

$ npx skills add hkuds/cli-anything --skill cli-anything-mailchimp

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from hkuds/cli-anything · top by installs.

npx skills add hkuds/cli-anything

Browse all from hkuds/cli-anything

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 49.1K
License LICENSE
Default branch main
Open issues 49
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 9,642 B
  • docs SUMMARY.md 243 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 270 installs

SKILL.md

cli-anything-mailchimp

Identity

An agent-native CLI for the Mailchimp Marketing API v3.0, built on the CLI-Anything framework.

What This CLI Does

  • Manage audiences (lists) — create, update, delete lists; add/update/archive members; manage merge fields, segments, tags, and webhooks.
  • Run campaigns — create, schedule, send, pause, replicate, and analyse email campaigns.
  • Read reports — open rates, click rates, bounce stats, unsubscribes, email activity, geographic data.
  • Control automations — create and manage automated email workflows.
  • Manage e-commerce — stores, orders, customers, products, carts, and promo codes.
  • Use templates, file manager, landing pages, SMS campaigns, surveys, and all other Marketing API resources.

Prerequisites

  • Python 3.10+
  • MAILCHIMPAPIKEY environment variable set to your API key (including datacenter suffix, e.g. abc123-us8)

Installation

# From the CLI-Anything repo (once merged):
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness

# During development:
cd mailchimp/agent-harness && pip install -e .

Command Reference

Root

Command Description
cli-anything-mailchimp ping Health check — confirms API connectivity
cli-anything-mailchimp root list Get account info
cli-anything-mailchimp --json <cmd> Output any command as JSON
cli-anything-mailchimp Launch interactive REPL

Lists (Audiences)

Command Description
lists list List all audiences
lists get <LIST_ID> Get audience info
lists create --data '<json>' Create audience
lists update <LIST_ID> --data '<json>' Update audience
lists delete <LIST_ID> Delete audience
lists list-lists-id-members <LIST_ID> List members
lists get-lists-id-members-id <LISTID> <SUBSCRIBERHASH> Get member by MD5 hash
lists create-lists-id-members <LIST_ID> --data '<json>' Add member
lists list-lists-id-merge-fields <LIST_ID> List merge fields
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' Add merge field
lists list-lists-id-segments <LIST_ID> List segments
lists list-list-member-tags <LISTID> <SUBSCRIBERHASH> List member tags
lists create-list-member-tags <LISTID> <SUBSCRIBERHASH> --data '<json>' Add/remove member tags
lists list-lists-id-webhooks <LIST_ID> List webhooks
lists create-lists-id-webhooks <LIST_ID> --data '<json>' Add webhook

Campaigns

Command Description
campaigns list List campaigns
campaigns get <CAMPAIGN_ID> Get campaign info
campaigns create --data '<json>' Create campaign
campaigns update <CAMPAIGN_ID> --data '<json>' Update campaign settings
campaigns delete <CAMPAIGN_ID> Delete campaign
campaigns send <CAMPAIGN_ID> Send campaign immediately
campaigns schedule <CAMPAIGN_ID> --data '<json>' Schedule campaign
campaigns cancel-send <CAMPAIGN_ID> Cancel scheduled send
campaigns pause <CAMPAIGN_ID> Pause RSS campaign
campaigns resume <CAMPAIGN_ID> Resume RSS campaign
campaigns replicate <CAMPAIGN_ID> Duplicate campaign
campaigns list-content <CAMPAIGN_ID> Get campaign content
campaigns list-send-checklist <CAMPAIGN_ID> Pre-send checklist

Reports

Command Description
reports list List all campaign reports
reports get <CAMPAIGN_ID> Get campaign summary report
reports list-email-activity <CAMPAIGN_ID> Per-subscriber open/click activity
reports list-click-details <CAMPAIGN_ID> Link click breakdown
reports list-open-details <CAMPAIGN_ID> Per-subscriber opens
reports list-unsubscribed <CAMPAIGN_ID> Unsubscribers
reports list-locations <CAMPAIGN_ID> Geographic breakdown
reports list-domain-performance <CAMPAIGN_ID> Per-domain stats

Automations

Command Description
automations list List automations
automations get <WORKFLOW_ID> Get automation info
automations create --data '<json>' Create automation
automations pause <WORKFLOW_ID> Pause automation
automations start <WORKFLOW_ID> Start automation
automations archive <WORKFLOW_ID> Archive automation
automations list-emails <WORKFLOW_ID> List automation emails

E-commerce

Command Description
ecommerce list-ecommerce-stores List stores
ecommerce get <STORE_ID> Get store info
ecommerce create --data '<json>' Add store
ecommerce list-ecommerce-stores-id-orders <STORE_ID> List orders
ecommerce list-ecommerce-stores-id-products <STORE_ID> List products
ecommerce list-ecommerce-stores-id-customers <STORE_ID> List customers
ecommerce list-ecommerce-stores-id-carts <STORE_ID> List carts
ecommerce list-ecommerce-stores-id-promocodes <PROMORULEID> <STORE_ID> List promo codes

Other Resources

Group Description
templates Email templates (list, get, create, update, delete)
template-folders Template folders
campaign-folders Campaign folders
file-manager Files and folders in the file manager
landing-pages Landing pages (list, create, publish, unpublish)
sms-campaigns SMS campaigns (10 operations)
surveys Surveys (list, get, publish)
reporting Facebook ad and landing page reporting
search-campaigns Search campaigns by query
search-members Search members across all audiences
batches Batch API operations
batch-webhooks Batch operation webhooks
verified-domains Email domain verification
authorized-apps OAuth connected apps
connected-sites Connected site integrations
conversations Inbox conversations
activity-feed Account activity feed
account-exports Account data exports

JSON Output

All commands support --json at the root level:

# List all audiences as JSON
cli-anything-mailchimp --json lists list

# Get a campaign report as JSON
cli-anything-mailchimp --json reports get abc123def

# Pipe to jq — use the native Mailchimp field name for the resource
cli-anything-mailchimp --json lists list | jq '.lists[].name'
cli-anything-mailchimp --json campaigns list | jq '.campaigns[].id'

Envelope shapes (native Mailchimp API response — use the resource-specific key):

// List endpoints — key matches the resource name (lists, campaigns, members, etc.)
{"lists": [...], "total_items": 42, "_links": [...]}
{"campaigns": [...], "total_items": 10, "_links": [...]}

// Single resource GET / POST / PATCH
{"id": "abc123", "name": "My List", ...}

// DELETE
{"ok": true, "message": "Deleted."}

// Error
{"ok": false, "message": "Resource Not Found: ...", "data": {...}}

Common Agent Patterns

# Get account health
cli-anything-mailchimp --json ping | jq '.health_status'

# List all audience IDs and names
cli-anything-mailchimp --json lists list | jq '.lists[] | {id, name}'

# Find all subscribed members in an audience
cli-anything-mailchimp --json lists list-lists-id-members <list_id> --status subscribed | jq '.members[].email_address'

# Create a campaign and get its send checklist
cli-anything-mailchimp --json campaigns create --data '{"type":"regular","settings":{"subject_line":"Hello","from_name":"Me","reply_to":"[email protected]"}}' | jq '.id'
cli-anything-mailchimp --json campaigns list-send-checklist <campaign_id> | jq '.items[] | select(.result == false)'

# Get unsubscribes for a sent campaign
cli-anything-mailchimp --json reports list-unsubscribed <campaign_id> | jq '.unsubscribes[].email_address'

# Add a member to an audience (subscriber hash = MD5 of lowercased email)
cli-anything-mailchimp --json lists create-members <list_id> --data '{"email_address":"[email protected]","status":"subscribed"}'

# Search for a member across all audiences
cli-anything-mailchimp --json search-members list --query "[email protected]" | jq '.exact_matches.members[]'

Interactive REPL

Run cli-anything-mailchimp with no arguments to enter the REPL:

◆  cli-anything · Mailchimp
   v0.1.0
   Type help for commands, quit to exit

◆ mailchimp ❯ ping
  ✓ {"health_status": "Everything's Chimpy!"}

◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}

◆ mailchimp ❯ quit

Notes

  • Subscriber hash: Mailchimp identifies members by the MD5 hash of their lowercased email. Compute with python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())".
  • Body payloads: All POST/PATCH/PUT commands accept --data '<json>'. See Mailchimp API docs for the schema of each endpoint.
  • Datacenter: Your API key ends in -us8, -eu2, etc. The CLI extracts this automatically — include it in MAILCHIMPAPIKEY.
  • Rate limits: The Marketing API rate-limits at 10 concurrent connections and a rolling per-account limit. For bulk operations, use the batches group.