O que cli-anything-mailchimp faz?
Identidade
Um CLI nativo para agente da Mailchimp Marketing API v3.0, construído sobre o framework CLI-Anything.
O que este CLI Faz
- Gerenciar públicos (listas) — criar, atualizar, excluir listas; adicionar/atualizar/arquivar membros; gerenciar campos de mesclagem, segmentos, tags e webhooks.
- Executar campanhas — criar, agendar, enviar, pausar, replicar e analisar campanhas de e-mail.
- Ler relatórios — taxas de abertura, taxas de clique, estatísticas de rejeição, descadastros, atividade de e-mail, dados geográficos.
- Controlar automações — criar e gerenciar fluxos de trabalho de e-mail automatizados.
- Gerenciar e-commerce — lojas, pedidos, clientes, produtos, carrinhos e códigos promocionais.
- Usar templates, gerenciador de arquivos, páginas de destino, campanhas SMS, pesquisas e todos os outros recursos da Marketing API.
Pré-requisitos
- Python 3.10+
- Variável de ambiente
MAILCHIMP_API_KEY definida com sua chave de API (incluindo o sufixo do datacenter, ex.: abc123-us8)
Instalação
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness
cd mailchimp/agent-harness && pip install -e .
Referência de Comandos
Raiz
| Comando | Descrição |
|---|
cli-anything-mailchimp ping | Verificação de integridade — confirma conectividade com a API |
cli-anything-mailchimp root list | Obter informações da conta |
cli-anything-mailchimp --json <cmd> | Saída de qualquer comando como JSON |
cli-anything-mailchimp | Iniciar REPL interativo |
Listas (Públicos)
| Comando | Descrição |
|---|
lists list | Listar todos os públicos |
lists get <LIST_ID> | Obter informações do público |
lists create --data '<json>' | Criar público |
lists update <LIST_ID> --data '<json>' | Atualizar público |
lists delete <LIST_ID> | Excluir público |
lists list-lists-id-members <LIST_ID> | Listar membros |
lists get-lists-id-members-id <LIST_ID> <SUBSCRIBER_HASH> | Obter membro por hash MD5 |
lists create-lists-id-members <LIST_ID> --data '<json>' | Adicionar membro |
lists list-lists-id-merge-fields <LIST_ID> | Listar campos de mesclagem |
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' | Adicionar campo de mesclagem |
lists list-lists-id-segments <LIST_ID> | Listar segmentos |
lists list-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> | Listar tags de membro |
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --data '<json>' | Adicionar/remover tags de membro |
lists list-lists-id-webhooks <LIST_ID> | Listar webhooks |
lists create-lists-id-webhooks <LIST_ID> --data '<json>' | Adicionar webhook |
Campanhas
| Comando | Descrição |
|---|
campaigns list | Listar campanhas |
campaigns get <CAMPAIGN_ID> | Obter informações da campanha |
campaigns create --data '<json>' | Criar campanha |
campaigns update <CAMPAIGN_ID> --data '<json>' | Atualizar configurações da campanha |
campaigns delete <CAMPAIGN_ID> | Excluir campanha |
campaigns send <CAMPAIGN_ID> | Enviar campanha imediatamente |
campaigns schedule <CAMPAIGN_ID> --data '<json>' | Agendar campanha |
campaigns cancel-send <CAMPAIGN_ID> | Cancelar envio agendado |
campaigns pause <CAMPAIGN_ID> | Pausar campanha RSS |
campaigns resume <CAMPAIGN_ID> | Retomar campanha RSS |
campaigns replicate <CAMPAIGN_ID> | Duplicar campanha |
campaigns list-content <CAMPAIGN_ID> | Obter conteúdo da campanha |
campaigns list-send-checklist <CAMPAIGN_ID> | Lista de verificação pré-envio |
Relatórios
| Comando | Descrição |
|---|
reports list | Listar todos os relatórios de campanha |
reports get <CAMPAIGN_ID> | Obter relatório resumido da campanha |
reports list-email-activity <CAMPAIGN_ID> | Atividade de abertura/clique por assinante |
reports list-click-details <CAMPAIGN_ID> | Detalhamento de cliques em links |
reports list-open-details <CAMPAIGN_ID> | Aberturas por assinante |
reports list-unsubscribed <CAMPAIGN_ID> | Descadastros |
reports list-locations <CAMPAIGN_ID> | Detalhamento geográfico |
reports list-domain-performance <CAMPAIGN_ID> | Estatísticas por domínio |
Automações
| Comando | Descrição |
|---|
automations list | Listar automações |
automations get <WORKFLOW_ID> | Obter informações da automação |
automations create --data '<json>' | Criar automação |
automations pause <WORKFLOW_ID> | Pausar automação |
automations start <WORKFLOW_ID> | Iniciar automação |
automations archive <WORKFLOW_ID> | Arquivar automação |
automations list-emails <WORKFLOW_ID> | Listar e-mails da automação |
E-commerce
| Comando | Descrição |
|---|
ecommerce list-ecommerce-stores | Listar lojas |
ecommerce get <STORE_ID> | Obter informações da loja |
ecommerce create --data '<json>' | Adicionar loja |
ecommerce list-ecommerce-stores-id-orders <STORE_ID> | Listar pedidos |
ecommerce list-ecommerce-stores-id-products <STORE_ID> | Listar produtos |
ecommerce list-ecommerce-stores-id-customers <STORE_ID> | Listar clientes |
ecommerce list-ecommerce-stores-id-carts <STORE_ID> | Listar carrinhos |
ecommerce list-ecommerce-stores-id-promocodes <PROMO_RULE_ID> <STORE_ID> | Listar códigos promocionais |
Outros Recursos
| Grupo | Descrição |
|---|
templates | Templates de e-mail (listar, obter, criar, atualizar, excluir) |
template-folders | Pastas de templates |
campaign-folders | Pastas de campanhas |
file-manager | Arquivos e pastas no gerenciador de arquivos |
landing-pages | Páginas de destino (listar, criar, publicar, despublicar) |
sms-campaigns | Campanhas SMS (10 operações) |
surveys | Pesquisas (listar, obter, publicar) |
reporting | Relatórios de anúncios do Facebook e páginas de destino |
search-campaigns | Pesquisar campanhas por consulta |
search-members | Pesquisar membros em todos os públicos |
batches | Operações de API em lote |
batch-webhooks | Webhooks de operações em lote |
verified-domains | Verificação de domínio de e-mail |
authorized-apps | Aplicativos conectados via OAuth |
connected-sites | Integrações de sites conectados |
conversations | Conversas da caixa de entrada |
activity-feed | Feed de atividade da conta |
account-exports | Exportações de dados da conta |
Saída JSON
Todos os comandos suportam --json no nível raiz:
cli-anything-mailchimp --json lists list
cli-anything-mailchimp --json reports get abc123def
cli-anything-mailchimp --json lists list | jq '.lists[].name'
cli-anything-mailchimp --json campaigns list | jq '.campaigns[].id'
Formas de envelope (resposta nativa da API Mailchimp — use a chave específica do recurso):
{"lists": [...], "total_items": 42, "_links": [...]}
{"campaigns": [...], "total_items": 10, "_links": [...]}
{"id": "abc123", "name": "My List", ...}
{"ok": true, "message": "Deleted."}
{"ok": false, "message": "Resource Not Found: ...", "data": {...}}
Padrões Comuns de Agente
cli-anything-mailchimp --json ping | jq '.health_status'
cli-anything-mailchimp --json lists list | jq '.lists[] | {id, name}'
cli-anything-mailchimp --json lists list-lists-id-members <list_id> --status subscribed | jq '.members[].email_address'
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)'
cli-anything-mailchimp --json reports list-unsubscribed <campaign_id> | jq '.unsubscribes[].email_address'
cli-anything-mailchimp --json lists create-members <list_id> --data '{"email_address":"[email protected]","status":"subscribed"}'
cli-anything-mailchimp --json search-members list --query "[email protected]" | jq '.exact_matches.members[]'
REPL Interativo
Execute cli-anything-mailchimp sem argumentos para entrar no REPL:
◆ cli-anything · Mailchimp
v0.1.0
Digite help para comandos, quit para sair
◆ mailchimp ❯ ping
✓ {"health_status": "Everything's Chimpy!"}
◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}
◆ mailchimp ❯ quit
Notas
- Hash do assinante: O Mailchimp identifica membros pelo hash MD5 do e-mail em minúsculas. Calcule com
python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())".
- Payloads do corpo: Todos os comandos POST/PATCH/PUT aceitam
--data '<json>'. Consulte a documentação da API Mailchimp para o esquema de cada endpoint.
- Datacenter: Sua chave de API termina em
-us8, -eu2, etc. O CLI extrai isso automaticamente — inclua-o em MAILCHIMP_API_KEY.
- Limites de taxa: A Marketing API limita a 10 conexões simultâneas e um limite contínuo por conta. Para operações em massa, use o grupo
batches.