
codex-marketing-skills
Use and customize Codex Marketing Skills—YouTube research, Readwise integration, diagram generation, video production, and social publishing workflows for AI agents.
- Installs
- 881
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/marketing-skills --skill codex-marketing-skills- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads codex-marketing-skills automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Codex Marketing Skills
Skill by ara.so — Marketing Skills collection.
A curated collection of shareable marketing and creator workflow skills for AI coding agents. Includes YouTube research, Readwise search/export, visual diagram generation, motion graphics/video production, social media publishing, and brand deal research automation.
What It Does
Codex Marketing Skills provides ready-to-use skill modules that enable AI agents to:
- YouTube Researcher: Search channels, pull transcripts, analyze hooks and creator styles
- Readwise CLI Control: Query Reader saves and Readwise highlights for content research
- Excalidraw Diagrams: Generate editable visual diagrams and flowcharts
- Paper MCP Integration: Edit Paper boards and create polished decks
- Remotion/HyperFrames: Build motion graphics, launch videos, captions, and rendered assets
- Gen Media: Search fal.ai models and generate/edit images and video
- Brand Deal Researcher: Scan sponsorship emails, dedupe opportunities, research brands
- Buffer Publisher: Draft and schedule social media posts across channels
Each skill is designed to be drop-in compatible with Codex, Claude Code, Cursor, and similar AI agents.
Installation
Clone the Repository
git clone https://github.com/rbrown101010/codex-marketing-skills.git
cd codex-marketing-skills
Install a Skill
Copy the desired skill folder into your agent's skills directory:
# For Codex
mkdir -p "$HOME/.codex/skills"
cp -R skills/youtube-researcher "$HOME/.codex/skills/"
# For Claude Code (adjust path as needed)
cp -R skills/youtube-researcher "$HOME/.claude/skills/"
Configure Secrets
Each skill requires specific API keys or authentication. Set environment variables or use your system's secret manager:
# YouTube Researcher
export SUPADATA_API_KEY="your_key_here"
export SERPAPI_KEY="your_key_here"
# Buffer Publisher
export BUFFER_API_KEY="your_key_here"
# Gen Media
export FAL_KEY="your_key_here"
Never commit secrets to the repo. Reference docs/requirements.md in the project for the full setup checklist.
Skill Overview
1. YouTube Researcher
Location: skills/youtube-researcher
Requirements: SUPADATA_API_KEY, SERPAPI_KEY
What it does: Search YouTube channels, extract transcripts, analyze video hooks, and ground AI responses in creator style.
Key workflow:
import os
import requests
SUPADATA_API_KEY = os.getenv("SUPADATA_API_KEY")
SERPAPI_KEY = os.getenv("SERPAPI_KEY")
def search_youtube_channel(channel_id, query):
"""Search a specific YouTube channel for videos matching query."""
url = f"https://serpapi.com/search"
params = {
"engine": "youtube",
"search_query": f"{query} site:youtube.com/c/{channel_id}",
"api_key": SERPAPI_KEY
}
response = requests.get(url, params=params)
return response.json()
def get_transcript(video_id):
"""Fetch transcript for a YouTube video."""
url = f"https://api.supadata.ai/v1/youtube/transcript/{video_id}"
headers = {"Authorization": f"Bearer {SUPADATA_API_KEY}"}
response = requests.get(url, headers=headers)
return response.json()
# Example: analyze a creator's hook style
results = search_youtube_channel("veritasium", "physics")
for video in results.get("video_results", [])[:3]:
transcript = get_transcript(video["id"])
first_30_sec = [t for t in transcript if t["start"] < 30]
print(f"Hook for {video['title']}:")
print(" ".join([t["text"] for t in first_30_sec]))
2. Readwise CLI Control
Location: skills/readwise-cli-control
Requirements: Readwise CLI installed and authenticated
What it does: Search and export highlights from Readwise and Reader for content research.
Key commands:
# Search highlights
readwise search "marketing frameworks"
# Export highlights from a specific book
readwise export --book "Building a Second Brain" --format markdown
# List recent Reader saves
readwise reader list --limit 20
Python integration:
import subprocess
import json
def search_readwise(query):
"""Search Readwise highlights."""
result = subprocess.run(
["readwise", "search", query, "--format", "json"],
capture_output=True,
text=True
)
return json.loads(result.stdout)
# Example: find all highlights about "storytelling"
highlights = search_readwise("storytelling")
for h in highlights[:5]:
print(f"{h['text']} — {h['title']}")
3. Excalidraw Diagrams
Location: skills/excalidraw-diagrams
Requirements: excalidraw-cli installed
What it does: Generate editable Excalidraw diagrams from code or natural language.
Key commands:
# Generate diagram from JSON definition
excalidraw-cli create diagram.json --output funnel.excalidraw
# Export to PNG
excalidraw-cli export funnel.excalidraw --format png --output funnel.png
Python workflow:
import json
import subprocess
def create_excalidraw_diagram(elements, output_path):
"""Create an Excalidraw diagram from element definitions."""
diagram_def = {
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": elements
}
with open("temp_diagram.json", "w") as f:
json.dump(diagram_def, f)
subprocess.run([
"excalidraw-cli", "create", "temp_diagram.json",
"--output", output_path
])
# Example: create a simple funnel
elements = [
{"type": "rectangle", "x": 100, "y": 50, "width": 200, "height": 60, "text": "Awareness"},
{"type": "rectangle", "x": 100, "y": 150, "width": 180, "height": 60, "text": "Interest"},
{"type": "rectangle", "x": 100, "y": 250, "width": 160, "height": 60, "text": "Purchase"}
]
create_excalidraw_diagram(elements, "marketing_funnel.excalidraw")
4. Paper MCP
Location: skills/paper-mcp, skills/paper-deck-style
Requirements: Paper desktop app, local MCP server running
What it does: Programmatically edit Paper boards and create presentation decks.
Key operations (via MCP protocol):
import requests
MCP_SERVER = "http://localhost:8080"
def create_paper_card(board_id, title, content):
"""Create a new card on a Paper board."""
response = requests.post(
f"{MCP_SERVER}/boards/{board_id}/cards",
json={"title": title, "content": content}
)
return response.json()
def get_board_cards(board_id):
"""Retrieve all cards from a board."""
response = requests.get(f"{MCP_SERVER}/boards/{board_id}/cards")
return response.json()
# Example: create a campaign planning board
board_id = "campaign-q4-2026"
create_paper_card(board_id, "Audience", "Target: SaaS founders, 30-45, technical background")
create_paper_card(board_id, "Channels", "LinkedIn, YouTube, email newsletter")
5. Remotion and HyperFrames
Location: plugin-workflows/remotion, plugin-workflows/hyperframes
Requirements: Node.js, Remotion CLI, HyperFrames plugin
What it does: Create programmatic motion graphics, launch videos, and caption overlays.
Key commands:
# Render a Remotion composition
npx remotion render src/index.ts LaunchVideo output.mp4
# Preview in browser
npx remotion preview src/index.ts
React/Remotion example:
// src/LaunchVideo.jsx
import { useCurrentFrame, useVideoConfig, interpolate } from 'remotion';
export const LaunchVideo = () => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const opacity = interpolate(frame, [0, 30], [0, 1], { extrapolateRight: 'clamp' });
return (
<div style={{ flex: 1, justifyContent: 'center', alignItems: 'center', opacity }}>
<h1 style={{ fontSize: 100 }}>New Product Launch</h1>
</div>
);
};
HyperFrames GSAP animation:
// plugin-workflows/hyperframes-gsap/animate.js
import gsap from 'gsap';
export function animateCTA(element) {
gsap.timeline()
.from(element, { scale: 0.8, opacity: 0, duration: 0.5 })
.to(element, { scale: 1.05, duration: 0.3, yoyo: true, repeat: 1 });
}
6. Gen Media
Location: skills/genmedia
Requirements: genmedia CLI, FAL_KEY environment variable
What it does: Search and run fal.ai models for image/video generation.
Key commands:
# List available models
genmedia list
# Generate an image
genmedia run fal-ai/flux/schnell --prompt "product shot of a coffee mug on a desk" --output mug.png
# Generate a video
genmedia run fal-ai/ltx-video --prompt "camera pan over a modern office" --duration 5 --output office.mp4
Python wrapper:
import os
import subprocess
FAL_KEY = os.getenv("FAL_KEY")
def generate_image(prompt, model="fal-ai/flux/schnell", output="output.png"):
"""Generate an image using fal.ai models."""
subprocess.run([
"genmedia", "run", model,
"--prompt", prompt,
"--output", output,
"--api-key", FAL_KEY
])
return output
# Example: create a thumbnail image
thumbnail = generate_image(
"bold text 'Marketing Automation' over abstract tech background",
output="thumbnail.png"
)
print(f"Thumbnail saved to {thumbnail}")
7. Brand Deal Researcher
Location: skills/brand-deal-researcher
Requirements: Gmail API access, Calendar plugin (optional)
What it does: Scan incoming sponsorship emails, deduplicate opportunities, research brands, and produce structured summaries.
Workflow:
import os
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
def fetch_brand_deal_emails():
"""Fetch unread emails with 'sponsorship' or 'partnership' in subject."""
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/gmail.readonly'])
service = build('gmail', 'v1', credentials=creds)
query = "is:unread (subject:sponsorship OR subject:partnership OR subject:collaboration)"
results = service.users().messages().list(userId='me', q=query).execute()
messages = results.get('messages', [])
deals = []
for msg in messages:
full_msg = service.users().messages().get(userId='me', id=msg['id']).execute()
subject = next(h['value'] for h in full_msg['payload']['headers'] if h['name'] == 'Subject')
snippet = full_msg['snippet']
deals.append({"subject": subject, "snippet": snippet, "id": msg['id']})
return deals
# Example: print all new brand deal opportunities
deals = fetch_brand_deal_emails()
for deal in deals:
print(f"New opportunity: {deal['subject']}")
print(f"Preview: {deal['snippet']}\n")
8. Buffer Publisher
Location: skills/buffer-publisher
Requirements: BUFFER_API_KEY
What it does: Inspect Buffer account state, create drafts, queue posts, and schedule content.
Key API calls:
import os
import requests
BUFFER_API_KEY = os.getenv("BUFFER_API_KEY")
BASE_URL = "https://api.bufferapp.com/1"
def get_profiles():
"""List all connected social profiles."""
response = requests.get(
f"{BASE_URL}/profiles.json",
params={"access_token": BUFFER_API_KEY}
)
return response.json()
def create_post(profile_id, text, scheduled_at=None):
"""Create a new Buffer post (queued or scheduled)."""
data = {
"profile_ids[]": profile_id,
"text": text,
"access_token": BUFFER_API_KEY
}
if scheduled_at:
data["scheduled_at"] = scheduled_at
endpoint = f"{BASE_URL}/updates/create.json"
else:
endpoint = f"{BASE_URL}/updates/create.json"
response = requests.post(endpoint, data=data)
return response.json()
# Example: schedule a LinkedIn post
profiles = get_profiles()
linkedin_profile = next(p for p in profiles if p["service"] == "linkedin")
post = create_post(
linkedin_profile["id"],
"Excited to share our new marketing automation toolkit! 🚀",
scheduled_at="2026-05-25T10:00:00Z"
)
print(f"Post scheduled: {post['id']}")
Common Patterns
Chaining Skills
Combine multiple skills for end-to-end workflows:
# 1. Research content ideas from Readwise
highlights = search_readwise("content marketing")
# 2. Analyze competitor YouTube videos
competitor_videos = search_youtube_channel("competitor", "content strategy")
# 3. Generate a diagram visualizing the strategy
create_excalidraw_diagram(strategy_elements, "strategy.excalidraw")
# 4. Create social posts for Buffer
for idea in content_ideas:
create_post(linkedin_profile["id"], idea["text"])
Error Handling
Always check for missing credentials and API errors:
import os
import sys
def ensure_env_var(name):
value = os.getenv(name)
if not value:
print(f"Error: {name} environment variable not set.", file=sys.stderr)
sys.exit(1)
return value
BUFFER_API_KEY = ensure_env_var("BUFFER_API_KEY")
Rate Limiting
Respect API rate limits by adding delays:
import time
for video in video_list:
transcript = get_transcript(video["id"])
process_transcript(transcript)
time.sleep(1) # Avoid hitting rate limits
Troubleshooting
"API key not found"
Ensure environment variables are set before running:
echo $BUFFER_API_KEY # Should print your key
export BUFFER_API_KEY="your_key_here"
"Skill not loaded by agent"
Verify the skill folder is in the correct location:
ls "$HOME/.codex/skills/youtube-researcher"
# Should show SKILL.md and related files
"Permission denied" for CLI tools
Install CLI tools globally or ensure they're in your PATH:
which excalidraw-cli
npm install -g excalidraw-cli
MCP Server Not Responding
Check that the Paper desktop app is running and the MCP server is started:
curl http://localhost:8080/health
# Should return {"status": "ok"}
Readwise CLI Authentication
If Readwise commands fail, re-authenticate:
readwise logout
readwise login
Further Documentation
- Full setup checklist:
docs/requirements.md - Individual skill READMEs in each
skills/subfolder - Plugin workflow instructions in
plugin-workflows/
Contributing
This is a private team repo. To add a new skill:
- Create a folder in
skills/with a clear name - Include a README with requirements and examples
- Add an entry to the main repo table
- Never commit secrets or API keys
License: No license specified (private repo)
Repository: https://github.com/rbrown101010/codex-marketing-skills
FAQ
What does the codex-marketing-skills skill do?
Use and customize Codex Marketing Skills—YouTube research, Readwise integration, diagram generation, video production, and social publishing workflows for AI agents.
How do I install codex-marketing-skills?
Run npx skills add https://github.com/reason-machines/marketing-skills --skill codex-marketing-skills in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/codex-marketing-skills/ (personal) or .claude/skills/codex-marketing-skills/ (project).
Which AI agents can use codex-marketing-skills?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is codex-marketing-skills safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains codex-marketing-skills?
It is published by reason-machines in reason-machines/marketing-skills. It has 881 recorded installs.
More from reason-machines/marketing-skills
marketing-for-founders-saas-growth
reason-machines/marketing-skills
Access curated marketing strategies and channels to acquire the first 10/100/1000 users for SaaS products and startups
agentkits-marketing-automation
reason-machines/marketing-skills
Enterprise AI marketing automation toolkit with 18 agents, 93 commands, and 28 skills for campaign planning, content creation, SEO, CRO, and growth workflows
composiohq-awesome-claude-skills-seo-content-marketing
reason-machines/marketing-skills
SEO & content marketing skill suite with keyword research, content audits, technical SEO, competitor analysis, and AI-powered content workflows
ai-marketing-skills-automation
reason-machines/marketing-skills
Open-source AI marketing automation skills for growth experiments, sales pipeline, content ops, outbound, SEO, and finance automation
marketingskills-ai-agent-collection
reason-machines/marketing-skills
Marketing skills collection for AI agents - CRO, copywriting, SEO, analytics, and growth engineering
ai-marketing-claude-suite
reason-machines/marketing-skills
Comprehensive AI marketing automation suite for Claude Code with 15 skills including website audits, copywriting, email sequences, ad campaigns, competitive analysis, and PDF reporting
Popular marketing & seo skills
reddit-automation
flowkit-labs/skills
Find Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human in the loop to review and post. This markets on Reddit the honest way: contribute value, disclose who you are, never astroturf. Distilled from the playbook behind doany.ai's Reddit agent. Triggers on "find reddit opportunities", "reddit marketing", "reddit automation", "reply on reddit for my product", "reddit community engagement", "reddit lead gen", or any ask to turn Reddit threads into genuine, disclosed marketing replies.
twitter-automation
101-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
magentosh/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
qu-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
product-launch-video
heygen-com/hyperframes
Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.
twitter-automation
skills-shell/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet