Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hkuds avatar

Cli Anything Mailchimp

  • 226 installs
  • 46.6k repo stars
  • Updated August 3, 2026
  • hkuds/cli-anything

Operate Mailchimp audiences, campaigns, and automations from the terminal so coding agents can draft sends, sync lists, and trigger marketing workflows without leaving the IDE.

About

cli-anything-mailchimp wraps Mailchimp marketing APIs as a composable CLI skill so AI agents and developers can manage subscribers, segments, templates, and campaign sends from the terminal with consistent auth, flags, and JSON output.

  • Audience and list management from shell
  • Campaign create-send-review flows
  • Automation and tag operations
  • Agent-safe Mailchimp API wrapper
  • Fits cli-anything composable pattern

Cli Anything Mailchimp by the numbers

  • 226 all-time installs (skills.sh)
  • +12 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #193 of 550 CLI & Terminal skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-mailchimp

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs226
repo stars46.6k
Last updatedAugust 3, 2026
Repositoryhkuds/cli-anything

What it does

Operate Mailchimp audiences, campaigns, and automations from the terminal so coding agents can draft sends, sync lists, and trigger marketing workflows without leaving the IDE.

Files

SKILL.mdMarkdownGitHub ↗

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+
  • MAILCHIMP_API_KEY 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

CommandDescription
cli-anything-mailchimp pingHealth check — confirms API connectivity
cli-anything-mailchimp root listGet account info
cli-anything-mailchimp --json <cmd>Output any command as JSON
cli-anything-mailchimpLaunch interactive REPL

Lists (Audiences)

CommandDescription
lists listList 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 <LIST_ID> <SUBSCRIBER_HASH>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 <LIST_ID> <SUBSCRIBER_HASH>List member tags
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --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

CommandDescription
campaigns listList 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

CommandDescription
reports listList 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

CommandDescription
automations listList 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

CommandDescription
ecommerce list-ecommerce-storesList 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 <PROMO_RULE_ID> <STORE_ID>List promo codes

Other Resources

GroupDescription
templatesEmail templates (list, get, create, update, delete)
template-foldersTemplate folders
campaign-foldersCampaign folders
file-managerFiles and folders in the file manager
landing-pagesLanding pages (list, create, publish, unpublish)
sms-campaignsSMS campaigns (10 operations)
surveysSurveys (list, get, publish)
reportingFacebook ad and landing page reporting
search-campaignsSearch campaigns by query
search-membersSearch members across all audiences
batchesBatch API operations
batch-webhooksBatch operation webhooks
verified-domainsEmail domain verification
authorized-appsOAuth connected apps
connected-sitesConnected site integrations
conversationsInbox conversations
activity-feedAccount activity feed
account-exportsAccount 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":"me@example.com"}}' | 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":"user@example.com","status":"subscribed"}'

# Search for a member across all audiences
cli-anything-mailchimp --json search-members list --query "user@example.com" | 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@example.com'; 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 MAILCHIMP_API_KEY.
  • Rate limits: The Marketing API rate-limits at 10 concurrent connections and a rolling per-account limit. For bulk operations, use the batches group.

Related skills

CLI & Terminallifecyclecontentdistribution

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.