Skip to content

Marketing CLIs

Zero-dependency, single-file CLI tools for marketing platforms that don't ship their own.

Every CLI is a standalone Node.js script (Node 18+) with no npm install required — just chmod +x and go.

Install

Option 1: Run directly

bash
node tools/clis/ahrefs.js backlinks list --target example.com
bash
# Symlink any CLI you want available globally
ln -sf "$(pwd)/tools/clis/ahrefs.js" ~/.local/bin/ahrefs
ln -sf "$(pwd)/tools/clis/resend.js" ~/.local/bin/resend

# Then use directly
ahrefs backlinks list --target example.com
resend send --from you@example.com --to them@example.com --subject "Hello" --html "<p>Hi</p>"

Option 3: Add the whole directory to PATH

bash
export PATH="$PATH:/path/to/marketingskills/tools/clis"

Authentication

Every CLI reads credentials from environment variables:

CLIEnvironment Variable
activecampaignACTIVECAMPAIGN_API_KEY, ACTIVECAMPAIGN_API_URL
adobe-analyticsADOBE_ACCESS_TOKEN, ADOBE_CLIENT_ID, ADOBE_COMPANY_ID
ahrefsAHREFS_API_KEY
amplitudeAMPLITUDE_API_KEY, AMPLITUDE_SECRET_KEY
apolloAPOLLO_API_KEY
beehiivBEEHIIV_API_KEY
brevoBREVO_API_KEY
bufferBUFFER_API_KEY
calendlyCALENDLY_API_KEY
clearbitCLEARBIT_API_KEY
customer-ioCUSTOMERIO_APP_KEY (App API), CUSTOMERIO_SITE_ID + CUSTOMERIO_API_KEY (Track API)
dataforseoDATAFORSEO_LOGIN, DATAFORSEO_PASSWORD
demioDEMIO_API_KEY, DEMIO_API_SECRET
dubDUB_API_KEY
g2G2_API_TOKEN
ga4GA4_ACCESS_TOKEN
google-adsGOOGLE_ADS_TOKEN, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CUSTOMER_ID
google-search-consoleGSC_ACCESS_TOKEN
hotjarHOTJAR_CLIENT_ID, HOTJAR_CLIENT_SECRET
intercomINTERCOM_API_KEY
keywords-everywhereKEYWORDS_EVERYWHERE_API_KEY
kitKIT_API_KEY, KIT_API_SECRET
klaviyoKLAVIYO_API_KEY
linkedin-adsLINKEDIN_ACCESS_TOKEN
livestormLIVESTORM_API_TOKEN
mailchimpMAILCHIMP_API_KEY
mention-meMENTIONME_API_KEY
meta-adsMETA_ACCESS_TOKEN, META_AD_ACCOUNT_ID
mixpanelMIXPANEL_TOKEN (ingestion), MIXPANEL_API_KEY + MIXPANEL_SECRET (query)
onesignalONESIGNAL_REST_API_KEY, ONESIGNAL_APP_ID
optimizelyOPTIMIZELY_API_KEY
paddlePADDLE_API_KEY, PADDLE_SANDBOX (optional)
partnerstackPARTNERSTACK_PUBLIC_KEY, PARTNERSTACK_SECRET_KEY
plausiblePLAUSIBLE_API_KEY, PLAUSIBLE_BASE_URL (optional, for self-hosted)
postmarkPOSTMARK_API_KEY
resendRESEND_API_KEY
rewardfulREWARDFUL_API_KEY
savvycalSAVVYCAL_API_KEY
segmentSEGMENT_WRITE_KEY (tracking), SEGMENT_ACCESS_TOKEN (profile)
semrushSEMRUSH_API_KEY
sendgridSENDGRID_API_KEY
tiktok-adsTIKTOK_ACCESS_TOKEN, TIKTOK_ADVERTISER_ID
toltTOLT_API_KEY
trustpilotTRUSTPILOT_API_KEY, TRUSTPILOT_API_SECRET, TRUSTPILOT_BUSINESS_UNIT_ID
typeformTYPEFORM_API_KEY
hunterHUNTER_API_KEY
instantlyINSTANTLY_API_KEY
lemlistLEMLIST_API_KEY
snovSNOV_CLIENT_ID, SNOV_CLIENT_SECRET
wistiaWISTIA_API_KEY
zapierZAPIER_API_KEY

Security

Never hardcode API keys or tokens in scripts. All CLIs read credentials exclusively from environment variables.

  • Store keys in your shell profile (~/.zshrc, ~/.bashrc) or a .env file
  • The .env file is gitignored — but double-check before committing
  • Use --dry-run on any command to preview the request without sending it (credentials are masked as ***)
  • If you fork this repo, audit your commits to ensure no secrets are included

Command Pattern

All CLIs follow the same structure:

{tool} <resource> <action> [options]

Examples:

bash
ahrefs backlinks list --target example.com --limit 50
semrush keywords overview --phrase "marketing automation" --database us
mailchimp campaigns list --limit 20
resend send --from you@example.com --to them@example.com --subject "Hello" --html "<p>Hi</p>"
dub links create --url https://example.com/landing --key summer-sale

Output

All CLIs output JSON to stdout for easy piping:

bash
# Pipe to jq
ahrefs backlinks list --target example.com | jq '.backlinks[].url_from'

# Save to file
semrush keywords overview --phrase "saas marketing" --database us > keywords.json

# Use in scripts
DOMAINS=$(rewardful affiliates list | jq -r '.data[].email')

Available CLIs

CLICategoryTool
activecampaign.jsEmail/CRMActiveCampaign
adobe-analytics.jsAnalyticsAdobe Analytics
ahrefs.jsSEOAhrefs
amplitude.jsAnalyticsAmplitude
apollo.jsData EnrichmentApollo.io
beehiiv.jsNewsletterBeehiiv
brevo.jsEmail/SMSBrevo
buffer.jsSocialBuffer
calendly.jsSchedulingCalendly
clearbit.jsData EnrichmentClearbit
customer-io.jsEmailCustomer.io
dataforseo.jsSEODataForSEO
demio.jsWebinarDemio
dub.jsLinksDub.co
g2.jsReviewsG2
ga4.jsAnalyticsGoogle Analytics 4
google-ads.jsAdsGoogle Ads
google-search-console.jsSEOGoogle Search Console
hotjar.jsCROHotjar
hunter.jsEmail OutreachHunter.io
instantly.jsEmail OutreachInstantly.ai
intercom.jsMessagingIntercom
keywords-everywhere.jsSEOKeywords Everywhere
kit.jsEmailKit
klaviyo.jsEmail/SMSKlaviyo
lemlist.jsEmail OutreachLemlist
linkedin-ads.jsAdsLinkedIn Ads
livestorm.jsWebinarLivestorm
mailchimp.jsEmailMailchimp
mention-me.jsReferralMention Me
meta-ads.jsAdsMeta Ads
mixpanel.jsAnalyticsMixpanel
onesignal.jsPushOneSignal
optimizely.jsA/B TestingOptimizely
paddle.jsPaymentsPaddle
partnerstack.jsAffiliatePartnerStack
plausible.jsAnalyticsPlausible
postmark.jsEmailPostmark
resend.jsEmailResend
rewardful.jsReferralRewardful
savvycal.jsSchedulingSavvyCal
segment.jsAnalyticsSegment
semrush.jsSEOSEMrush
sendgrid.jsEmailSendGrid
snov.jsEmail OutreachSnov.io
tiktok-ads.jsAdsTikTok Ads
tolt.jsReferralTolt
trustpilot.jsReviewsTrustpilot
typeform.jsFormsTypeform
wistia.jsVideoWistia
zapier.jsAutomationZapier

Released under the MIT License.