Every Command in the Cheerful CLI
Twenty-five command groups and 176 commands, grouped below by the job rather than alphabetically. This list is generated from the CLI's own command definitions, so it cannot quietly drift from what the binary accepts — but flags are not listed here, and cheerful <group> <command> --help is the reference for those.
Read the write commands as write commands. Anything named create, update, delete, launch, send, edit or bulk-edit does the real thing against your real account.
The Cheerful CLI exposes 25 command groups covering campaigns, creators, lists, threads, drafts, email, rules, integrations, gifting orders, post tracking and analytics.
Campaigns and creators#
The main loop: build a campaign, put creators in it, launch it. campaigns launch and email send are real sends — the CLI is not read-only.
| Command | What it does |
|---|---|
cheerful campaigns list | List all campaigns |
cheerful campaigns get | Get campaign details |
cheerful campaigns create | Create a new campaign |
cheerful campaigns update | Update campaign metadata |
cheerful campaigns edit | Edit campaign fields (name, goal, rules, template, product-links) |
cheerful campaigns clone | Clone (duplicate) an existing campaign as a new draft |
cheerful campaigns delete | Delete a campaign and all related data |
cheerful campaigns launch | Launch a campaign Triggers: SendCampaignOutboxWorkflow Requires: >=1 sender, >=1 recipient with email, outbox populated Returns: { workflow_id: String, run_id: String } Use cheerful schema commands campaigns.launch for full JSON schema |
cheerful campaigns add-recipients | Add recipients to campaign by email addresses |
cheerful campaigns upload-csv | Upload recipients/creators from a CSV file |
cheerful campaigns test-email | Send a test email using the campaign's template to a given address |
cheerful campaigns set-label | Set custom Shopify order label on a campaign's order drafting workflow |
cheerful campaigns status | Get campaign outbox status |
cheerful campaigns merge-tags | Get available merge tags |
cheerful campaigns summary | Generate AI client summary |
cheerful campaigns senders remove | Remove a sender from a campaign by its email address |
cheerful campaigns recipients add | Add recipients from CSV |
cheerful campaigns recipients search | Search for recipients |
cheerful creators list create | Create a new creator list |
cheerful creators list add | Add a creator to a list |
cheerful creators list remove | Remove a creator from a list |
cheerful creators list view | View creators in a list |
cheerful creators search | Search creators by keyword or similarity |
cheerful creators lookalike | Find lookalike/similar creators based on a seed handle |
cheerful creators enrich | Enrich a creator profile Triggers: EnrichForCampaignWorkflow Use cheerful schema commands creators.enrich for full JSON schema |
cheerful creators profile | Get creator profile |
cheerful creators campaign-creators | List creators in a campaign |
cheerful creators get | Get a specific campaign creator |
cheerful creators inspect | Inspect a creator's full state within a campaign Shows creator fields, workflow executions, and thread state in one view. |
cheerful creators table | View context-aware creator table for a campaign Calls GET /campaigns/{campaign_id}/unified-recipients |
cheerful creators export | Export campaign creators as CSV Fetches all creators from GET /campaigns/{id}/unified-recipients and writes CSV |
cheerful creators view | View creator profile details by handle |
cheerful creators import | Import creators from a CSV file into a creator list CSV must have columns: handle, platform, email (required), follower_count (optional). If --list-id is not provided a new list is created automatically. |
cheerful creators remove | Remove a creator from a campaign (and associated threads/orders) Calls DELETE /campaigns/{campaign_id}/creators/{creator_id} |
cheerful creators add-to-campaign | Add a single creator or bulk-add via CSV to a campaign |
cheerful lists list | List all creator lists |
cheerful lists get | Get list details |
cheerful lists create | Create a new list |
cheerful lists update | Update a list |
cheerful lists delete | Delete a list |
cheerful lists creators list | List creators in a list |
cheerful lists creators add | Add a creator to a list by UUID |
cheerful lists creators remove | Remove a creator from a list |
cheerful lists creators import | Bulk import creators from CSV |
cheerful csv import | Import data from a CSV file |
cheerful csv export | Export data to a CSV file |
Replies and drafts#
Everything after a creator answers. drafts generate runs the same drafting the web app runs, and email send sends.
| Command | What it does |
|---|---|
cheerful threads list | List email threads |
cheerful threads view | View thread details (alias: get) |
cheerful threads search | Search threads |
cheerful threads hide | Hide a thread |
cheerful threads unhide | Unhide a thread |
cheerful threads nudge | Manually trigger a follow-up draft for a thread (Gmail/SMTP only) |
cheerful inbox list | List inbox items by tab (pending, outbox, ignored, all) |
cheerful inbox search | Search across inbox tabs |
cheerful inbox view | View full thread content |
cheerful drafts get | Get draft for a thread |
cheerful drafts create | Create a draft |
cheerful drafts update | Update an existing draft |
cheerful drafts bulk-edit | Bulk edit drafts for a campaign Triggers: BulkDraftEditWorkflow Requires: campaign_id + edit instructions Use cheerful schema commands drafts.bulk-edit for full JSON schema |
cheerful drafts generate | Generate a draft via AI (Temporal workflow) Triggers: ThreadResponseDraftWorkflow Requires: thread_id with campaign association Returns: { draft_id: String, status: String } Use cheerful schema commands drafts.generate for full JSON schema |
cheerful drafts inspect | Inspect draft state: DB drafts (UI + LLM) and thread metadata Shows both UI and LLM drafts for a thread, useful for debugging draft discrepancies. |
cheerful email send | Send an email (approve existing draft or send custom body) |
cheerful email schedule | Schedule an email for later |
cheerful email scheduled list | List scheduled emails |
cheerful email scheduled cancel | Cancel a scheduled email |
cheerful email scheduled reschedule | Reschedule an email |
cheerful email schedule-cancel | Cancel a scheduled email by its dispatch ID |
cheerful email followup configure | Configure follow-up timing for a campaign |
cheerful email followup enable | Enable follow-up email sequences for a campaign |
cheerful email followup disable | Disable follow-up email sequences for a campaign |
cheerful email drafts | List drafts filtered by status |
cheerful email draft approve | Approve and send the existing draft for a thread |
cheerful email draft edit | Edit the body (and optionally subject) of an existing draft |
cheerful email bulk-edit | Bulk-edit drafts across a campaign using an instruction template |
cheerful email hide | Hide/ignore a conversation |
cheerful email unhide | Unhide a conversation |
cheerful signature create | Create a new email signature (user-level or campaign-specific) |
cheerful signature list | List all signatures (optionally filtered by campaign) |
cheerful signature view | View a specific signature by ID |
cheerful signature update | Update a signature |
cheerful signature delete | Delete a signature by ID |
cheerful signature set-default | Set a signature as the default |
How the agent behaves#
The per-campaign brief. Rules and FAQs are what drafts are generated against, so a constraint that is not written here is a constraint nothing enforces.
| Command | What it does |
|---|---|
cheerful rules list | List rules for a campaign |
cheerful rules add | Add a rule to a campaign |
cheerful rules edit | Edit a specific rule by line number (1-based) |
cheerful rules delete | Delete a specific rule by line number (1-based) |
cheerful rules bulk-edit | Bulk replace all rules for a campaign |
cheerful rules apply | Apply campaign rules retroactively to existing drafts via bulk-draft-edit |
cheerful faq list | List FAQ entries for a campaign |
cheerful faq add | Add a FAQ entry to a campaign |
cheerful faq edit | Edit a FAQ entry by number (1-based) |
cheerful faq delete | Delete a FAQ entry by number (1-based) |
cheerful automations list | List automation rules for a campaign |
cheerful automations get | Get automation rule details |
cheerful automations create | Create a new automation rule |
cheerful automations enable | Enable an automation rule |
cheerful automations disable | Disable an automation rule |
cheerful automations update | Update an automation rule |
cheerful automations delete | Delete an automation rule |
cheerful automations executions | List automation rule executions |
Connections#
Mailboxes, Google Sheets and the rest. Status and connect/disconnect only.
| Command | What it does |
|---|---|
cheerful auth login | Log in with OAuth (browser) or API key |
cheerful auth logout | Log out and clear credentials |
cheerful auth whoami | Show current authenticated user |
cheerful integrations accounts | List connected accounts (Gmail + SMTP) |
cheerful integrations smtp list | List SMTP accounts |
cheerful integrations smtp add | Add an SMTP account |
cheerful integrations smtp remove | Remove an SMTP account |
cheerful integrations signatures list | List email signatures |
cheerful integrations signatures create | Create a signature |
cheerful integrations signatures update | Update a signature |
cheerful integrations signatures delete | Delete a signature |
cheerful integrations instantly status | Check Instantly connection status |
cheerful integrations instantly connect | Connect Instantly |
cheerful integrations instantly disconnect | Disconnect Instantly |
cheerful integrations instantly test | Test Instantly connection |
cheerful gmail list | List connected Gmail accounts |
cheerful sheet connect | Connect a Google Sheet to a campaign |
cheerful sheet disconnect | Disconnect the Google Sheet from a campaign (clears sheet URL and config) |
cheerful sheet tabs | Fetch available tab names from a Google Sheet URL |
cheerful sheet configure | Configure sheet column mapping and skip/target column settings |
Gifting and results#
Orders, discount codes, post detection and the numbers that come out.
| Command | What it does |
|---|---|
cheerful orders view | View order details for a specific campaign creator |
cheerful orders list | List orders for a campaign (defaults to all ordered creators) |
cheerful orders create | Create a gift order for a creator (requires completed workflow execution) |
cheerful orders digest | Trigger daily order digest for a campaign (posts summary to Slack) |
cheerful goaffpro list-codes | List GoAffPro discount codes for a campaign |
cheerful post-tracking enable | Enable post tracking for a campaign |
cheerful post-tracking disable | Disable post tracking for a campaign |
cheerful post-tracking scan | Manually trigger a post scan for a specific creator in a campaign |
cheerful post-tracking list | List detected posts for a campaign (or a specific creator) |
cheerful post-tracking metrics | View aggregated post metrics for a campaign |
cheerful post-tracking add | Manually add a missed post to a campaign |
cheerful analytics dashboard | View dashboard analytics |
cheerful analytics status | View campaign status report (outbox dispatch breakdown) |
cheerful analytics engagement | View engagement rates for a campaign |
cheerful analytics funnel | View funnel/pipeline for a campaign |
cheerful analytics export | Export campaign analytics as CSV |
cheerful analytics reports | View the server-computed posts report (/v1/posts/reports) |
Operational groups, named but not enumerated#
Five groups ship in the same binary and are not product surface: temporal (inspect and trigger workflow runs), workflows and schema (the embedded workflow and activity schema, for debugging what a command actually starts), config (the CLI’s own settings), and ssr (an experimental synthetic-consumer panel). They are real and they work; they are simply operational tooling, and cheerful <group> --help is a better reference for them than a page that would double in length.
If one of those becomes something you rely on, say so — that is the signal that would move it into this page properly.
What this does not do#
- Flags are not listed here.
cheerful <group> <command> --helpis the source for those, and it cannot be out of date. - Command aliases are omitted deliberately —
thread,automationand a few others are accepted as singulars but are not separate commands. - The five operational groups are named rather than enumerated.
- This page is generated from a committed snapshot of the CLI source, so a brand-new command can be live in the binary before it appears here.
Frequently asked questions#
- How many commands does the Cheerful CLI have?
- Twenty-five groups and 176 commands, including nested ones such as cheerful integrations smtp add.
- Where do I find the flags for a command?
- cheerful <group> <command> --help. Flags are not reprinted here, because a help output cannot be stale and a docs page can.
- Which commands write?
- Anything named create, update, delete, launch, send, edit, clone, enable, disable or bulk-edit. Around a third of the surface writes.
- What are the temporal, workflows and schema groups?
- Operational tooling for inspecting and triggering the Temporal workflows behind the product. They work, they are just not product surface.