# Caption Library, hashtags and spintax

Save captions and hashtag sets in the Caption Library and drop them into any post. Plus the caption toolbar, hashtag limits per network, and spintax, which gives each account a different version of your text.

Last checked: Oct 8, 2026 on the live app. Source: https://heropost.ai/docs/posting/captions-and-hashtags/

## How it works

Every caption box in the post editor has a small toolbar in its bottom-right corner. From there you can reuse a saved caption, save the one you're writing, write or rewrite it with AI, add emoji, and copy it to every network.

Two more things help with captions: the **Caption Library** page, where you keep the captions and hashtag sets you use often, and **spintax**, which lets Heropost pick different words for each account.

## The caption toolbar

[Screenshot: The bottom-right corner of the Caption box with the counter and the Caption Library, save, AI captions, emoji and sync icons]

From left to right:

| Tool | What it does |
|---|---|
| Counter, such as **120/2,200** | Characters used, out of the network's limit. On the All tab it shows the strictest limit of the post's networks. Going over doesn't stop you typing, but the network's tab shows an error. |
| **Access Caption Library** (speech bubble) | Opens your saved captions. Picking one **replaces** everything in the box. |
| **Save caption to library** (bookmark) | Saves the text in the box to the Caption Library, named after its first 30 characters. |
| **AI captions** (sparkles) | Writes a new caption, or rewrites this one. See [AI captions](#ai-captions). |
| **Add emojis** (smiley) | Opens an emoji picker with search. Emoji go where your cursor was; the picker stays open until you click elsewhere. |
| Sync icon, such as "Update caption to all social networks" | Copies the text to every network that has its own version. See [Write once, then adjust it for each network](/docs/posting/different-text-per-network/). |

You'll find the toolbar on captions, first comments, YouTube's **Description**, TikTok's **Title** and Reddit's **Text**. A few one-line fields don't have it: the YouTube and Pinterest **Title**, Reddit's **Caption** (the post's title), and link fields.

## The Caption Library

Click **Caption Library** in the left menu. Each workspace has its own.

[Screenshot: The Caption Library page with saved captions, the Search box and the Add Caption button]

### Save a caption

1. Press **Add Caption**.
2. Optional: click the pencil next to **Caption** at the top to give it a name, up to 50 characters. Without one, it's called "Caption: 12" and so on.
3. Write the text in **Caption** (up to 63,206 characters). Emoji and AI captions work here too.
4. Press **Save Caption**.

Or, in the post editor, click **Save caption to library** on any caption box: Heropost saves the text and shows "Caption saved to library".

### Use a saved caption in a post

1. In the post editor, click **Access Caption Library** on the box you want to fill.
2. Click a caption to select it. With more than three captions, a **Search...** box helps you find one by name or text.
3. Press **Add Caption**.

[Screenshot: The Caption Library window in the post editor with one caption selected and the Add Caption button]

**Add Caption replaces everything already in the box.** To combine a saved caption with your text, add the saved one first, then write the rest.
### Edit or delete a saved caption

On the Caption Library page, click a caption to edit it, or open its **⋮** menu for **Edit** and **Delete**. Deleting asks **Delete Caption?** and shows "Caption deleted successfully". Posts that used the caption keep their text.

## Hashtags

Heropost publishes hashtags as you type them, as part of the text. A few ways to handle them:

- **Keep sets of hashtags** in the Caption Library, for example "Hashtags: bakery", and add them with **Access Caption Library**. Add the set first, then write the caption above it.
- **Put them in the first comment** on Facebook, Instagram, LinkedIn, YouTube, Threads and Bluesky. See [Add a first comment](/docs/posting/first-comment/).
- **Let AI suggest them:** in **AI captions**, choose a number under **Hashtags**.

Hashtag limits that Heropost checks:

| Network | Most hashtags |
|---|---|
| Facebook, Instagram | 30 in the caption, and 30 in the first comment |
| X | 30 (within the 280 characters) |
| YouTube | 30 in the description, and 30 in the first comment |
| Pinterest | 10 in the description |
| Other networks | No hashtag limit in Heropost; only the character limit |

Over the limit, the editor shows, for example, "You can have up to 30 hashtags in caption".

## Spintax: different words each time

Spintax lets one post say things in different ways. Write the options in curly braces, separated by a vertical bar:

```text
{Hi|Hello|Hey} everyone! Our {spring|new season} menu is here.
```

When the post goes out, Heropost picks one option from each set of braces, at random and separately for each account. So three Facebook Pages can get three different openings from the same post, and every repeat of a [repeating post](/docs/posting/repeat-posts/) gets a fresh pick.

- **It works everywhere text is published:** captions, first comments, titles and descriptions, on every network.
- **Options can contain options:** in `{Big|{Huge|Great} news}`, the inner set is picked first.
- **The preview and the calendar show what you typed,** braces and all. You only see the picked version on the network.
- **The counter counts everything you typed,** every option included. Keep the whole text within the network's limit, even though each published version is shorter.

**Curly braces are always read as spintax.** Text in braces never appears as typed: `{name}` is published as `name`. Don't use curly braces for anything else, such as placeholders, in a post.
## AI captions

The sparkles icon opens **AI captions**:

- **New Caption** (or **New First Comment**, **New Description**…): describe what you want in **Prompt**, or start from a network's ready-made prompts under **Templates**. Set **Tone**, **Creativity**, **Words**, **Hashtags** and **Language**, then press **Generate**.
- **View/Edit:** rewrite the text with **Rephrase**, **Make shorter**, **Make punchier** or **Fix spelling and grammar**. Each result is kept as a numbered version you can go back to.
- **Apply** puts the version you're looking at into the box, replacing what was there.

AI captions is the AI for writing: it's the unlimited AI in the plans sold today, and it doesn't use AI actions. The AI doesn't check the network's limits, so look at the counter after you apply. More: [AI captions, hashtags and rewriting](/docs/ai/ai-captions/).

## If it doesn't work

| What you see | What it means | What to do |
|---|---|---|
| "You can have up to 30 hashtags in caption" (or "in first comment", "in description") | Over the network's hashtag limit. | Remove some, or move some to the first comment. |
| A Pinterest caption with more than 10 hashtags doesn't save | Pinterest descriptions take 10 hashtags at most. | Keep 10 or fewer on the Pinterest tab. |
| "You haven't saved any captions yet." | The Caption Library of this workspace is empty. | Save one with **Save caption to library**, or on the **Caption Library** page. |
| "Failed to load your caption library. Please try again." | The library didn't load. | Close the window and open it again. |
| "Failed to save caption" | The caption wasn't saved. | Try again. Viewers can't save captions. |
| "Caption is required" or "You can have up to 50 characters in name" | The library caption is empty, or its name is too long. | Add text, or shorten the name. |
| A saved caption isn't in the list | It was saved in another workspace. | Switch workspace, or save it again here. |
| Your text lost its curly braces | Braces are read as spintax. | Use other brackets, such as ( ) or [ ]. |
| The counter says you're over, but each version is short | The counter adds up every spintax option. | Shorten the options, or move some text to the first comment. |

## Questions

**Can I insert a saved caption without replacing my text?**

No: **Add Caption** replaces the box's content. Add the saved caption first, then type around it.


**Does Heropost suggest hashtags?**

**AI captions** adds hashtags when you choose a number under **Hashtags** before you press **Generate**. There's no separate hashtag research tool.


**Can my team use the Caption Library?**

Yes. Everyone in the workspace sees the same library. Owners, Admins and Editors can save captions.


**Does spintax work with Hero_Agent's posts?**

Yes. Spintax is applied when a post goes out, however it was written. If you want variations, ask Hero_Agent to write them with spintax, or add the braces yourself in the editor.
