
ig-caption-writer
Draft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).
- Installs
- 46
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/sergebulaev/instagram-skills --skill ig-caption-writer- 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 ig-caption-writer 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.
Instagram Caption Writer
Write a caption that earns the tap and the save. Instagram hides everything after ~125 characters behind "more", so the hook does the entire job in the first line. This skill front-loads that hook, keeps the body skimmable, and lands one clear call to action.
When to use
- User says "write me an Instagram caption about X"
- User has a single image or a Reel and needs the caption around it
- User wants a sharper hook for a draft they already have
- User wants a caption that auto-publishes with their media on approval
Formulas this skill uses (caption-first shapes)
| Code | Formula | Primary goal | Best for |
|---|---|---|---|
| IG1 | Number-First Result | saves | one odd-precision result + a "steal this" promise |
| IG2 | Contrarian Truth | shares | a sharp, defensible against-the-grain claim |
| IG3 | Relatable Cold-Open | comments | a specific shared moment, no setup |
| IG4 | Mini-Story Confession | comments, follows | a real first-person story with a cost |
Full skeletons in ../../references/hook-formulas.md. For carousels (IG5-IG8) use
ig-carousel-planner; for Reels (IG9-IG10) the hook lives in the video, and this
skill writes the supporting caption.
Pick by goal first
| Goal | Reach for |
|---|---|
| Saves | IG1 |
| Shares | IG2 |
| Comments | IG3, IG4 |
| Follows | IG4 |
Steps
Voice profile first (all drafts). If ../../references/voice-profile.md has filled: yes, load it and match the user's voice fingerprint, hard rules, and CTA/link style throughout. If it is not filled, mention once that ig-humanizer --mode profile can learn their voice from a few posts, then proceed with the generic voice rules.
Never invent the specifics. The rules below ask for a concrete number, a date and a named entity, because that is what separates a real post from a generated one. Take them from what the user actually said in this conversation. Do not invent a figure, a date, a client name or a result, and do not soften a vague claim into a plausible-looking number. If the user has nothing concrete for a beat, ask them once, and if they still have nothing, drop the claim rather than decorate it. A published invented number is a retraction; a missing one is only a weaker post.
- Gather inputs. Topic, angle, the media (single image or Reel), target audience, and the goal (saves / shares / comments / follows).
- Pick the formula. Use the goal table to shortlist, then suggest 2-3 that also fit the topic and let the user choose.
- Write the hook (first 125 chars). It must land the payoff, tension, or number before the "more" fold and make sense on its own.
- Write the body. Short lines, white space between beats, one idea. Teach or tell the story that the hook promised. Keep it under 2,200 chars.
- Write one CTA. A specific save or send prompt ("save this for your next launch", "send to the friend who keeps doing #2"), a real question, or a single next step. Never "what do you think?".
- Add hashtags. Hand off the topic to
ig-hashtag-strategistor apply the 3-5 sized set yourself (see../../references/hashtag-strategy.md). Put them at the end or note they go in the first comment. - Humanizer pass. Scrub 2026 AI vocab by paragraph density, cap em
dashes (about one per 100 words; a caption's single dash is not a tell,
never swap one for a period), break stacked triads, generic openers and
reveal bridges. Fix only a paragraph that reads machine-flat; never
manufacture variance or one-word lines for drama. Add an odd-precision
number with a named referent or a named entity where the claim allows.
Canonical rules:
ig-humanizerV3. - Optional audit. Invoke
ig-humanizer --mode auditfor a pass-fail check. - Approval card. Show: formula used, the hook (flag if over 125 chars), full caption, char count, hashtag set, primary goal, and the media the user must supply.
- On approval, publish with media. Call
lib.publish(kind="post", draft_text=<approved caption>, target_url="https://www.instagram.com/", media=[<local file paths>], platforms=[<INSTAGRAM_PLATFORM_ID>], scheduled_time=<iso_or_None>). For a Reel passkind="reel". The wrapper runs the Publora draft then upload then schedule flow. With no media or no Publora key it returns a copy-paste block and a reminder to attach the media.
Hard rules
Global voice rules: see root SKILL.md Voice rules. Additional skill-specific
rules:
- The first 125 characters must stop the scroll on their own. Rewrite any hook that needs the second line to make sense.
- One idea per caption. Two ideas means two posts.
- One specific number where the claim allows it.
- 3-5 sized hashtags, never 30. 0-3 emoji, placed with intent.
- Media is required. Never present a caption as publishable without reminding the user to attach the image or video.
- Do not hard-sell. One natural mention of the next step, max.
Anti-patterns (skill will refuse)
- A hook that only makes sense after the fold.
- Em dashes above the cap (more than about one per 100 words), or an em dash swapped for a period.
- "Let's talk about.." or "Here's the thing.." openers; "The result?" as a reveal.
- Announced candor ("real talk", "not gonna lie", "POV:" on something that is not a POV) with no dated fact behind it.
- Staccato stacks ("No X. No Y. Just Z.") and one-word lines added for drama.
- 20-30 hashtags stuffed at the top.
- Engagement bait ("double tap if you agree", "comment YES").
- Rule-of-three lists without specifics.
- "leverage", "fundamentally", "game-changer", "level up", "dive in".
- Padding a one-line idea to look substantial.
Resources
../../references/hook-formulas.md- all 10 Instagram formulas (IG1-IG4 are caption-first)../../references/algorithm-heuristics.md- 2026 Instagram ranking rules../../references/hashtag-strategy.md- the 3-5 sized hashtag recipe../../references/media-workflow.md- the draft, upload, schedule flowreferences/caption-checklist.md- the per-caption scrub and fit list
Related skills
ig-carousel-planner- when the idea is a slide-by-slide carouselig-hashtag-strategist- build the sized hashtag setig-humanizer- AI-tell scrubber, plus--mode auditfor reviewig-hook-extractor- reverse-engineer a hook from a post you admire
FAQ
What does the ig-caption-writer skill do?
Draft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).
How do I install ig-caption-writer?
Run npx skills add https://github.com/sergebulaev/instagram-skills --skill ig-caption-writer 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/ig-caption-writer/ (personal) or .claude/skills/ig-caption-writer/ (project).
Which AI agents can use ig-caption-writer?
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 ig-caption-writer 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 ig-caption-writer?
It is published by sergebulaev in sergebulaev/instagram-skills. It has 46 recorded installs.
More from sergebulaev/instagram-skills
instagram-marketing
sergebulaev/instagram-skills
Plan, draft, audit, and publish content for Instagram. Use when the user wants to write a caption with a first-125-char hook, plan a slide-by-slide carousel, reverse-engineer the hook from a viral Reel or carousel, size hashtags the 2026 way, remove AI tells from a caption, or plan a week of Reels and carousels. Instagram requires media on every post, so the skills write the caption and the user supplies the image or video; posts publish via the Publora API draft, upload, schedule flow.
ig-carousel-planner
sergebulaev/instagram-skills
Plan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).
ig-hashtag-strategist
sergebulaev/instagram-skills
Build a sized Instagram hashtag set for a post using the 2026 reality that 3 to 5 well-chosen tags beat 30 random ones. Sizes each tag as niche (under 50k posts), mid (50k to 500k), or broad (500k+), then assembles a 2-3 niche, 1-2 mid, 0-1 broad mix that a small or mid account can actually rank in, matched to the post content and rotated to avoid spam patterns. Use to choose hashtags for a caption, carousel, or Reel. Not for writing the caption itself (use ig-caption-writer).
ig-content-planner
sergebulaev/instagram-skills
Generate a weekly Instagram content plan from a theme, audience, and content pillars. Produces a per-day mix of Reels, carousels, single images, and stories, each with a hook formula, angle, posting time, and primary goal, plus a weekly saves-and-shares goal (the 2026 lever), a story cadence, and a balance check across saves, shares, comments, and follows. Use to plan a week instead of ad-hoc posting. Not for drafting one caption (use ig-caption-writer) or one carousel (use ig-carousel-planner).
ig-humanizer
sergebulaev/instagram-skills
Remove the AI tells readers react to in an Instagram caption or carousel slide: 2026 vocabulary by density, reveal bridges, staccato stacks, stacked triads, performed sincerity, emoji storms; caps em dashes. Includes --mode audit (first-125 hook, length, hashtags, emoji, CTA, media) and --mode profile. Not for beating AI detectors (no edit reliably does). Not for writing from scratch (use ig-caption-writer or ig-carousel-planner). Keywords: humanize, de-AI caption, audit before posting.
ig-hook-extractor
sergebulaev/instagram-skills
Reverse-engineer the hook from a viral Instagram Reel or carousel, given a URL or a pasted caption. Identifies which of the 10 canonical 2026 formulas it uses (number-first, contrarian, relatable, confession, listicle, before/after, myth-buster, framework, pattern-interrupt Reel, how-I Reel), explains why it worked, names the primary goal, and returns a blank template mapped to your topic. Use to learn from a post you admire. Not for writing your own (use ig-caption-writer or ig-carousel-planner).
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.