# Ig Caption

Write the Instagram caption - the line that survives the "...

- Repository: https://github.com/Jakeschincariol/instagram-agent-skill (4342 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-09-13
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Jakeschincariol/instagram-agent-skill --skill ig-caption -g -a claude-code -y`
Codex: `npx skills add Jakeschincariol/instagram-agent-skill --skill ig-caption -g -a codex -y`
Cursor: `npx skills add Jakeschincariol/instagram-agent-skill --skill ig-caption -g -a cursor -y`
Gemini CLI: `npx skills add Jakeschincariol/instagram-agent-skill --skill ig-caption -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Jakeschincariol/instagram-agent-skill`

## Description

Write the Instagram caption - the line that survives the "... more" cut, the body, the single ask, the search terms and the three hashtags - and lint it before it goes out. Use when the user says "write the caption", "caption this", "what do I put in the description", has a reel or a carousel ready and needs the text, or asks about hashtags.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ig-caption

One tool lives in this folder and it runs:

```bash
python3 caption.py caption.txt
python3 caption.py caption.txt --keywords "client proposals,agency pricing"
```

It prints the caption the way the feed prints it: the first 125 characters in a
box, everything else behind the tap. Read that box before you read anything
else you wrote.

## First, decide which job this caption has

This is the decision that ruins captions when it is skipped.

**Job A: the video already hooked them.** A Reel carries its own hook in the
first two seconds, spoken and on screen. The caption is not a second hook and
competing with the video is how you lose both. Its job is the ask, the context
that makes the ask make sense, and the words people search.

**Job B: the caption is the content.** A photo, a single image, a carousel
cover that opens a loop. Here line one is the hook and it works exactly like a
Reel hook: concrete, short, and cut off at a cliff rather than mid-clause.

Ask which one you are writing. If the user has a Reel with a strong hook,
write A and say why.

## The shape

```
Line 1      125 characters of visible space. Job A: the ask, plainly.
            Job B: the hook.
            Never a greeting, never a hashtag, never an emoji as the first
            character.
Body        short paragraphs, one line of white space between each. Two to six
            of them. This is where the search terms live.
The ask     one. Comment a keyword, save it, or DM. One.
Hashtags    up to five, on their own line at the bottom, or none.
```

Limit is 2,200 characters and almost nothing needs 2,200. A caption that earns
the tap and then delivers 600 characters beats one that delivers 1,800.

## Hashtags, honestly

The rest: https://github.com/Jakeschincariol/instagram-agent-skill/blob/HEAD/skills/ig-caption/SKILL.md
