X Content Planner
sergebulaev/x-skills
Generate a weekly X (Twitter) content plan from a theme, audience, and content pillars.
Expert knowledge for AI Twitter/X management — API v2 reference, content strategy, engagement playbook, safety, and performance tracking
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install RightNow-AI/openfang twitter-hand-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .claude/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .claude/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .claude/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install RightNow-AI/openfang twitter-hand-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .agents/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .agents/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .agents/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install RightNow-AI/openfang twitter-hand-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .cursor/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .cursor/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/RightNow-AI/openfang.git --path crates/openfang-hands/bundled/twitter--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install RightNow-AI/openfang twitter-hand-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .gemini/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .gemini/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install RightNow-AI/openfang twitter-hand-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .github/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .github/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .github/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install RightNow-AI/openfang twitter-hand-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RightNow-AI/openfang.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/crates/openfang-hands/bundled/twitter .opencode/skills/twitter-hand-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "twitter-hand-skill" agent skill from https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-hands/bundled/twitter into .opencode/skills/twitter-hand-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "twitter-hand-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
twitter-hand-skillExpert knowledge for AI Twitter/X management — API v2 reference, content strategy, engagement playbook, safety, and performance tracking
Twitter Hand Skill is an agent skill from RightNow-AI/openfang. Expert knowledge for AI Twitter/X management — API v2 reference, content strategy, engagement playbook, safety, and performance tracking
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Writing & Content, covering Content strategy and Social media posts. It works with X (Twitter). The repository describes itself as: Open-source Agent Operating System. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit acf2587. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.twitter.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TWITTER_BEARER_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Twitter Hand Skill loads about 2.9k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 959 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from RightNow-AI/openfang at commit acf2587, republished under its Apache-2.0 licence (© RightNow-AI). 959 words, ~2,939 tokens.
.claude/skills/twitter-hand-skill/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Twitter API v2 uses OAuth 2.0 Bearer Token for app-level access and OAuth 1.0a for user-level actions.
Bearer Token (read-only access + tweet creation):
Authorization: Bearer $TWITTER_BEARER_TOKENEnvironment variable: TWITTER_BEARER_TOKEN
Get authenticated user info:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/users/me"Response: {"data": {"id": "123", "name": "User", "username": "user"}}
Post a tweet:
curl -s -X POST "https://api.twitter.com/2/tweets" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Hello world!"}'Response: {"data": {"id": "tweet_id", "text": "Hello world!"}}
Post a reply:
curl -s -X POST "https://api.twitter.com/2/tweets" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Great point!", "reply": {"in_reply_to_tweet_id": "PARENT_TWEET_ID"}}'Post a thread (chain of replies to yourself):
tweet_idreply.in_reply_to_tweet_id = first tweet_idDelete a tweet:
curl -s -X DELETE "https://api.twitter.com/2/tweets/TWEET_ID" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"Like a tweet:
curl -s -X POST "https://api.twitter.com/2/users/USER_ID/likes" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tweet_id": "TARGET_TWEET_ID"}'Get mentions:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/users/USER_ID/mentions?max_results=10&tweet.fields=public_metrics,created_at,author_id"Search recent tweets:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/tweets/search/recent?query=QUERY&max_results=10&tweet.fields=public_metrics"Get tweet metrics:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/tweets?ids=ID1,ID2,ID3&tweet.fields=public_metrics"Response includes: retweet_count, reply_count, like_count, quote_count, bookmark_count, impression_count
| Endpoint | Limit | Window |
|---|---|---|
| POST /tweets | 300 tweets | 3 hours |
| DELETE /tweets | 50 deletes | 15 minutes |
| POST /likes | 50 likes | 15 minutes |
| GET /mentions | 180 requests | 15 minutes |
| GET /search/recent | 180 requests | 15 minutes |
Always check response headers:
x-rate-limit-limit: Total requests allowedx-rate-limit-remaining: Requests remainingx-rate-limit-reset: Unix timestamp when limit resetsDefine 3-5 core topics ("pillars") that all content revolves around:
Example for a tech founder:
Pillar 1: AI & Machine Learning (40% of content)
Pillar 2: Startup Building (30% of content)
Pillar 3: Engineering Culture (20% of content)
Pillar 4: Personal Growth (10% of content)| Type | Frequency | Purpose | Template |
|---|---|---|---|
| Hot take | 2-3/week | Engagement | "Unpopular opinion: [contrarian view]" |
| Thread | 1-2/week | Authority | "I spent X hours researching Y. Here's what I found:" |
| Tip/How-to | 2-3/week | Value | "How to [solve problem] in [N] steps:" |
| Question | 1-2/week | Engagement | "[Interesting question]? I'll go first:" |
| Curated share | 1-2/week | Curation | "This [article/tool/repo] is a game changer for [audience]:" |
| Story | 1/week | Connection | "3 years ago I [relatable experience]. Here's what happened:" |
| Data/Stat | 1/week | Authority | "[Surprising statistic]. Here's why it matters:" |
| Day | Best Times | Why |
|---|---|---|
| Monday | 8-10 AM | Start of work week, checking feeds |
| Tuesday | 10 AM, 1 PM | Peak engagement day |
| Wednesday | 9 AM, 12 PM | Mid-week focus |
| Thursday | 10 AM, 2 PM | Second-highest engagement day |
| Friday | 9-11 AM | Morning only, engagement drops PM |
| Saturday | 10 AM | Casual browsing |
| Sunday | 4-6 PM | Pre-work-week planning |
Hooks that work:
Tweet 1 (HOOK): Compelling opening that makes people click "Show this thread"
- Must stand alone as a great tweet
- End with "A thread:" or "Here's what I found:"
Tweet 2-N (BODY): One key point per tweet
- Number them: "1/" or use emoji bullets
- Each tweet should add value independently
- Include specific examples, data, or stories
Tweet N+1 (CLOSING): Summary + call to action
- Restate the key takeaway
- Ask for engagement: "Which resonated most?"
- Self-reference: "If this was useful, follow @handle for more"Rules:
Reply templates:
Like tweets from:
Do NOT auto-like:
WEEK OF [DATE]
Monday:
- 8 AM: [Tip/How-to] about [Pillar 1]
- 12 PM: [Curated share] related to [Pillar 2]
Tuesday:
- 10 AM: [Thread] deep dive on [Pillar 1]
- 2 PM: [Hot take] about [trending topic]
Wednesday:
- 9 AM: [Question] to audience about [Pillar 3]
- 1 PM: [Data/Stat] about [Pillar 2]
Thursday:
- 10 AM: [Story] about [personal experience in Pillar 3]
- 3 PM: [Tip/How-to] about [Pillar 1]
Friday:
- 9 AM: [Hot take] about [week's trending topic]
- 11 AM: [Curated share] — best thing I read this week| Metric | What It Measures | Good Benchmark |
|---|---|---|
| Impressions | How many people saw the tweet | Varies by follower count |
| Engagement rate | (likes+RTs+replies)/impressions | >2% is good, >5% is great |
| Reply rate | replies/impressions | >0.5% is good |
| Retweet rate | RTs/impressions | >1% is good |
| Profile visits | People checking your profile after tweet | Track trend |
| Follower growth | Net new followers per period | Track trend |
engagement_rate = (likes + retweets + replies + quotes) / impressions * 100
Example:
50 likes + 10 RTs + 5 replies + 2 quotes = 67 engagements
67 / 2000 impressions = 3.35% engagement rateTrack which content types and topics perform best:
| Content Type | Avg Impressions | Avg Engagement Rate | Best Performing |
|-------------|-----------------|--------------------|--------------------|
| Hot take | 2500 | 4.2% | "Unpopular opinion: ..." |
| Thread | 5000 | 3.1% | "I analyzed 500 ..." |
| Tip | 1800 | 5.5% | "How to ... in 3 steps" |Use this data to optimize future content mix.
| Dimension | Range | Description |
|---|---|---|
| Formal ↔ Casual | 1-5 | 1=corporate, 5=texting a friend |
| Serious ↔ Humorous | 1-5 | 1=all business, 5=comedy account |
| Reserved ↔ Bold | 1-5 | 1=diplomatic, 5=no-filter |
| General ↔ Technical | 1-5 | 1=anyone can understand, 5=deep expert |
NEVER post:
[
{
"id": "q_001",
"content": "Tweet text here",
"type": "hot_take",
"pillar": "AI",
"scheduled_for": "2025-01-15T10:00:00Z",
"created": "2025-01-14T20:00:00Z",
"status": "pending",
"notes": "Based on trending discussion about LLM pricing"
}
]Preview file for human review:
# Tweet Queue Preview
Generated: YYYY-MM-DD
## Pending Tweets (N total)
### 1. [Hot Take] — Scheduled: Mon 10 AM
> Tweet text here
**Notes**: Based on trending discussion about LLM pricing
**Pillar**: AI | **Status**: Pending approval
---
### 2. [Thread] — Scheduled: Tue 10 AM
> Tweet 1/5: Hook text here
> Tweet 2/5: Point one
> ...
**Notes**: Deep dive on new benchmark results
**Pillar**: AI | **Status**: Pending approvalBefore posting, evaluate each tweet:
© RightNow-AI, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in crates/openfang-hands/bundled/twitter of RightNow-AI/openfang.
Open the folder on GitHubat commit acf2587
Twitter Hand Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Twitter Hand Skill this skillRightNow-AI/openfang | 18k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| X Content Plannersergebulaev/x-skills | 124 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| X Algorithm Post Writingcarson2222/skills | 113 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Podcast Pipelineericosiu/ai-marketing-skills | 3.6k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Social Media Managementmanojbajaj95/claude-gtm-plugin | 105 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Platform Strategy Smsblacktwist/social-media-skills | 560 | — | ~3.8k | Automated safety check: Pass | MIT |
sergebulaev/x-skills
Generate a weekly X (Twitter) content plan from a theme, audience, and content pillars.
carson2222/skills
Writes and reviews X posts, threads and replies using what the open-sourced For You ranking system rewards, and explains why a post may have underperformed.
ericosiu/ai-marketing-skills
Podcast-to-Everything content pipeline. An agent skill from ericosiu/ai-marketing-skills.
manojbajaj95/claude-gtm-plugin
Comprehensive social media management for all platforms (LinkedIn, Twitter/X, Instagram, TikTok, Facebook, Pinterest, YouTube).
blacktwist/social-media-skills
When the user wants platform-specific tactical guidance for LinkedIn, Twitter/X, Threads, or Bluesky.
stevenflanagan1/social-ai-team
X/Twitter Content Specialist. An agent skill from stevenflanagan1/social-ai-team.
RightNow-AI/openfang
Reference of CSS selectors, step-by-step web workflows and error recovery tactics for an agent that browses, fills forms and compares prices on live sites.
RightNow-AI/openfang
Reference knowledge for open-source intelligence collection: the collection cycle, source reliability tiers, search query patterns and entity extraction.
RightNow-AI/openfang
Reference knowledge for AI lead generation: building an ideal customer profile, researching prospects on the web, enriching lead records and finding email formats.
RightNow-AI/openfang
Command reference for cutting clips from online video: yt-dlp downloads, whisper transcription, SRT subtitle files and ffmpeg processing, with Windows, macOS and Linux differences.
RightNow-AI/openfang
Reference knowledge for AI forecasting: superforecasting principles, a signal taxonomy, confidence calibration rules and reasoning chains for making and tracking predictions.
RightNow-AI/openfang
Reference knowledge for AI deep research: a five-phase process, strategies by question type, CRAAP source scoring, cross-referencing, synthesis and citation formats.
Works with
Categories
Expert knowledge for AI Twitter/X management — API v2 reference, content strategy, engagement playbook, safety, and performance tracking. Twitter Hand Skill is an agent skill from RightNow-AI/openfang.
Twitter Hand Skill fits situations like: tasks that involve Content strategy; tasks that involve Social media posts.
Run `npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a claude-code`. Or copy the skill folder (crates/openfang-hands/bundled/twitter in RightNow-AI/openfang) into .claude/skills/twitter-hand-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a codex`. Or copy the skill folder (crates/openfang-hands/bundled/twitter in RightNow-AI/openfang) into .agents/skills/twitter-hand-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add RightNow-AI/openfang --skill twitter-hand-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/twitter-hand-skill, .gemini/skills/twitter-hand-skill, .github/skills/twitter-hand-skill and .opencode/skills/twitter-hand-skill in your project.
Going by SKILL.md and its folder, Twitter Hand Skill needs the command-line tools its instructions call (curl) and credentials named TWITTER_BEARER_TOKEN. Our summary lists: A credential in TWITTER_BEARER_TOKEN.
SKILL.md names 1 domain. In commands or code: api.twitter.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Twitter Hand Skill is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Twitter Hand Skill: X Content Planner (sergebulaev/x-skills, 124 stars), X Algorithm Post Writing (carson2222/skills, 113 stars), Podcast Pipeline (ericosiu/ai-marketing-skills, 3.6k stars) and Social Media Management (manojbajaj95/claude-gtm-plugin, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
RightNow-AI (a GitHub organization) maintains it in RightNow-AI/openfang, which has 18,214 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on July 2, 2026.
Source: RightNow-AI/openfang on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.