Caption Writer logo

Caption Writer

Community
duncan-buildroom
caption-writer

Get a ready-to-post caption about something you built, made, or learned — written in your voice, in the right length for Instagram, LinkedIn, X, or TikTok. Picks one of four post shapes that actually work and writes a first line that stops the scroll. Use when the user says "write a caption", "caption for this post", "I built something, what do I say", "how do I post about this", "write the copy for my Instagram post", "I don't know how to talk about what I made", "help me post this without sounding salesy", or "/caption-writer".

Overview

Publisherduncan-buildroom
Repositoryfreeskills
Skill namecaption-writer
Stars
65
Forks
15
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by duncan-buildroom on GitHub. Read the source before you install it.

Installation

Install the Caption Writer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/duncan-buildroom/freeskills/tree/main/caption-writer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/duncan-buildroom/freeskills.git /tmp/freeskills
mkdir -p .claude/skills
cp -r /tmp/freeskills/caption-writer .claude/skills/caption-writer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Caption Writer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Caption Writer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Caption Writer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Caption Writer — post about the thing you made without sounding like an ad

Most people build something and then go quiet, because writing about it feels like bragging. The fix is to stop announcing yourself and start showing the thing. This skill picks the right post shape, writes a first line that does all the work, and saves a finished caption you can paste and post.

Personalization

This skill works in your brand voice. Before running, load the brand profile at ~/.claude/brand-profile.md.

  • If it doesn't exist, run the personalize skill first (or just tell me your name, niche, offer, and audience — I'll create it).
  • If a field this skill needs is blank, I'll ask one or two quick questions and save the answers back to the profile so you only answer once.
  • Never invent facts or results about the user — use only what's in the profile, or ask.

Steps

1. Get the raw material

Ask for whatever they have, in plain words. Two questions, max:

  • "What's the thing? Tell me what it is and what it does, like you're texting a friend."
  • "Is there a link, a screenshot, or a video? And which platform is this going on?"

If they ramble, that's good — the best lines are usually already in their rambling. Pull exact phrases they used and keep them. Do not clean up their words into marketing language.

If they only have a vague "I've been working on stuff," ask one more: "What changed today that didn't exist yesterday?" That answer is the post.

2. Pick the post shape

Choose ONE of four. Say which you picked and why, in one line. Never blend two.

  • Show the thing. Best when there's a screenshot, video, or live link. The caption's job is small: say what it is, who it's for, and one honest detail about making it. The visual carries the post.
  • The lesson from a mistake. Best when something broke, took five tries, or they were wrong about something. Highest trust of the four. Structure: what I believed → what actually happened → what I'd do now.
  • Before and after. Best when there's a visible or measurable change: old page vs new page, 3 hours vs 10 minutes, empty list vs 40 people. Needs a real contrast, not a vibe.
  • Honest progress update. Best when nothing is finished. This is the build-in-public post. Structure: where it is right now → the one hard part → what's next. Unfinished is allowed. Fake finished is not.

3. Write the first line

The first line is the whole post. On every platform, it's the only line most people see before deciding.

Rules:

  • No throat-clearing. Banned openers: "Excited to share", "I'm thrilled to announce", "So I've been thinking", "Hey everyone", "Quick post about".
  • Start at the sharpest moment. Drop the wind-up sentence and open on the second sentence you would have written.
  • Be specific and concrete. "I built a tool that tells you if your rent is too high" beats "I built something I'm proud of."
  • A number, a strange detail, or an admission all work. Cleverness usually doesn't.

Write three candidate first lines. Show them to the user, pick the strongest yourself, and say why in one line. They can override.

4. Write the body for the platform

One idea per line. Blank line between lines. No paragraph blocks.

Match the platform:

  • Instagram — 4 to 8 short lines. The first line has to work before the "more" cut. Conversational. Up to 5 hashtags at the very bottom, plain and specific, no hashtag soup.
  • LinkedIn — 6 to 12 short lines. Same voice, slightly more context about who it helps and why it matters. No corporate register, no "humbled to". First 2 lines show before the "see more" cut.
  • X — under 280 characters, or a single tight post. Cut every word that isn't load-bearing. No hashtags.
  • TikTok — 1 to 2 lines only. The caption supports the video, it doesn't repeat it. Add a question that invites comments.

5. Add the CTA

If a link is involved, do NOT put a raw link in the post on Instagram or TikTok — it kills reach and nobody can tap it anyway. Use a comment keyword instead:

Comment GAME and I'll send you the link.

Pick a keyword that's one word, all caps, and related to the thing (GAME, TOOL, SITE, BUDGET, TRACKER). Comments turn into conversations, and conversations are where people actually buy. On LinkedIn and X a link in the post is fine, but a keyword still gets more replies.

If there is no link, end with a real question they'd actually answer — about the thing, not "what do you think?" Something like "What would you want it to do next?"

One CTA per post. Never two.

6. Read it back out loud

Before saving, run this check on the draft:

  • Does the first line make someone stop, with no context?
  • Is there any line that only exists to sound impressive? Cut it.
  • Would they say this sentence to a friend at a table? If no, rewrite it.
  • Any of these words? unlock, leverage, elevate, game-changer, journey, thrilled, humbled. Cut them.
  • Is there exactly one ask?

Output — save it

Write the finished caption to ~/captions/YYYY-MM-DD-<short-slug>.md (create ~/captions/ if needed).

The file contains: the platform, the post shape chosen, the final caption exactly as it should be pasted (in a copy-ready block), the two runner-up first lines, and the comment keyword if there is one.

Tell the user the path. Then tell them the single next action: post it, and reply to every comment within the first hour.

Example (input → output)

Input: "I made a little browser game where you dodge falling emails. It's dumb but it works and it's live. Posting on Instagram."

Output (saved to ~/captions/2026-07-30-email-dodge-game.md):

Shape: Show the thing.

I made a game where you dodge falling emails and it is genuinely stressful.

It started as a joke about my inbox.

Took four nights. Most of that was making the emails fall at a speed that felt mean but fair.

It runs in your browser. No download, no signup.

Comment GAME and I'll send you the link.

Runner-up first lines: "My inbox became a video game." / "Four nights of work to make falling emails feel mean but fair."

Notes / edge cases

  • The failure mode this prevents: writing a caption that describes how the person feels instead of showing what they made. Feelings don't travel. The thing does.
  • If they have nothing built and nothing learned, don't write a post. Tell them so. An empty post costs more than no post.
  • If the input is thin, use "Honest progress update" — it's the only shape that works with an unfinished thing, and it's the most likely to get real replies.
  • If they don't know who the post is even for, or every caption sounds like everyone else's, stop and hand off to positioning-filter first.
  • If the idea is bigger than one caption — three or more distinct points — hand off to thread-writer instead of cramming it in.
  • Never invent a metric. "It's faster now" is fine. "It's 40% faster" is only fine if they measured it.

Frequently asked questions

What does the Caption Writer AI skill do?

Get a ready-to-post caption about something you built, made, or learned — written in your voice, in the right length for Instagram, LinkedIn, X, or TikTok. Picks one of four post shapes that actually work and writes a first line that stops the scroll. Use when the user says "write a caption", "caption for this post", "I built something, what do I say", "how do I post about this", "write the copy for my Instagram post", "I don't know how to talk about what I made", "help me post this without sounding salesy", or "/caption-writer".

Why use Caption Writer on TypingMind?

Because you install it once and use it with any model. Caption Writer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Caption Writer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/duncan-buildroom/freeskills/tree/main/caption-writer. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Caption Writer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Caption Writer?

As many as you like. As long as a model supports skills, you can use Caption Writer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Caption Writer AI skill free?

It is published on GitHub by duncan-buildroom. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇