Agent skill

Postwire

by davepoon in davepoon/buildwithclaude

Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version…

MITAuto-check passedWriting & Content

Install Postwire

skills CLI
$ npx skills add davepoon/buildwithclaude --skill postwire -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install davepoon/buildwithclaude postwire --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/davepoon/buildwithclaude.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/all-skills/skills/postwire .claude/skills/postwire && rm -rf skills-src

Use ~/.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/

Facts

Skill name
postwire
GitHub stars
3.6k
Token cost
~1.7k tokens
SKILL.md length
744 words
Files
1
Skills in repo
246
Repo updated
First seen
Licence
MIT

At a glance

Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version…

  • The user wants to publish
  • SKILL.md covers When to Use This Skill, What Makes This Different, Prerequisites and How to Use, plus 4 more sections
  • Calls curl; reaches postwire.io; needs POSTWIRE_API_KEY
  • Schedule one idea across several platforms

What it does

Postwire is an agent skill from davepoon/buildwithclaude. Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version of the post for each network instead of sending identical text everywhere. Use when the user wants to publish or schedule one idea across several platforms, wants per-network captions, or wants to know why a post was rejected before it is sent.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content. It works with LinkedIn, TikTok, YouTube and Instagram. The repository describes itself as: A single hub to find Claude Skills, Agents, Commands, Hooks, Plugins, and Marketplace collections to extend Claude Code, Claude Desktop, Agent SDK and OpenClaw. The licence is MIT.

When your agent uses it

  • The user wants to publish
  • Schedule one idea across several platforms
  • Wants per-network captions
  • Wants to know why a post was rejected before it is sent

Example prompts

  • “/postwire”

Requirements

  • A credential in POSTWIRE_API_KEY

What it can do on your machine

Read from SKILL.md and the folder at commit 10bfc43. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • postwire.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • POSTWIRE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Postwire loads about 1.7k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 744 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from davepoon/buildwithclaude at commit 10bfc43, republished under its MIT licence (© davepoon). 744 words, ~1,707 tokens.

Download SKILL.mdSave it as .claude/skills/postwire/SKILL.md (or your agent's skills folder).
name
postwire
description
Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version of the post for each network instead of sending identical text everywhere. Use when the user wants to publish or schedule one idea across several platforms, wants per-network captions, or wants to know why a post was rejected before it is sent.
category
social-media
license
MIT
requires.env
POSTWIRE_API_KEY

PostWire

Publish one idea to many social networks, with a different post written for each one.

Accounts are connected once through OAuth in the PostWire dashboard, so there is no per-platform developer app, review queue, or token refresh to maintain. One API key covers every network.

When to Use This Skill

  • The user wants the same idea published to several networks, but written properly for each
  • The user wants a post scheduled for later, or a week of posts queued from one topic
  • The user asks why a post failed, or whether a post will fail before sending it
  • The user is publishing video to TikTok or YouTube from an automation

What Makes This Different

Most multi-posting APIs take one string and send it to every platform. That reads badly and gets suppressed: a LinkedIn post written like a tweet performs like neither. PostWire has a /api/generate step that writes a caption per network — length, tone, hashtags and link handling — from a single prompt, which you then pass to publish or schedule.

It also refuses posts that are going to fail, before they are queued rather than after the platform rejects them:

networkrequires
TikTok, YouTubea video (video_url)
Instagrama photo or a video
everything elsetext is enough

Prerequisites

  • An account at postwire.io — free tier: 1 brand, 30 posts/month, no card
  • Networks connected in the dashboard (one OAuth click each)
  • POSTWIRE_API_KEY in the environment

Auth is Authorization: Bearer $POSTWIRE_API_KEY.

One gotcha worth knowing: the dashboard shows a preview key immediately after signup, before the email is confirmed. That key cannot publish. If the API answers "This is a preview key" (code: "preview_key"), confirm the email and take the key from API & MCP in the dashboard.

How to Use

Base URL: https://postwire.io/api

Check what is connected
bash
curl https://postwire.io/api/me -H "Authorization: Bearer $POSTWIRE_API_KEY"

Returns the plan, the monthly usage, and connections[] — publish only to networks listed there, otherwise the call fails with code: "not_connected" and the offending platforms.

Write a native caption per network
bash
curl -X POST https://postwire.io/api/generate \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "We shipped streaming uploads: 1GB videos now go through in 11 seconds",
    "platforms": ["linkedin", "x", "bluesky"]
  }'

Returns { "drafts": { "linkedin": {...}, "x": {...}, "bluesky": {...} } }. That object is what per_platform takes below — but show it to the user first, for the reason in the next section.

Confirm Before Publishing

/api/post and /api/schedule are visible writes: they put text under the user's own name, in public, where other people see it. Treat them the way you would treat sending an email as them.

Before either call, show the user:

  • the exact text that will go out, per network — not the prompt that generated it
  • which networks it is going to
  • when it publishes (now, or the exact run_at)

and wait for a yes.

This matters most right after /api/generate. Those drafts are model output: passing them straight into per_platform without showing them means the user finds out what they said by reading their own timeline. Generate, show, confirm, then post.

Show full SKILL.md (277 more words)Show less
Publish now
bash
curl -X POST https://postwire.io/api/post \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["linkedin", "x"],
    "per_platform": { "linkedin": {"text": "..."}, "x": {"text": "..."} }
  }'

Without per_platform, a single text is used everywhere — simpler, but it is the behaviour this tool exists to avoid.

The response is per platform, and one failure does not cancel the rest:

json
{ "results": [ { "ok": true, "platform": "linkedin", "id": "..." },
               { "ok": false, "platform": "x", "error": "..." } ] }
Schedule instead
bash
curl -X POST https://postwire.io/api/schedule \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "run_at": "2026-09-01T09:00:00Z",
    "platforms": ["linkedin", "instagram"],
    "photo_url": "https://example.com/image.jpg",
    "label": "Launch announcement"
  }'

run_at is ISO 8601. The schedule endpoint validates connections and the media rules up front, so a post that cannot work is rejected now instead of failing quietly at 7am.

Fill a week from one topic
bash
curl -X POST https://postwire.io/api/week \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "topic": "what we learned running a one-person SaaS", "platforms": ["linkedin", "x"], "days": 5 }'

Five angles on one topic, queued across five days. Text-only networks only — the video platforms would reject every one of them, and the endpoint says so rather than queueing them to fail.

Errors Worth Handling

codemeaningfix
preview_keykey from before email confirmationconfirm email, use the key in API & MCP
email_unverifiedmailbox not confirmed yetopen the emailed link
not_connectedplatform not connected; platforms[] lists whichconnect it in the dashboard
media_requiredTikTok/YouTube without video, Instagram without mediaadd video_url or photo_url
429monthly plan limit or a burst guardcheck usage in /api/me

Media Notes

  • Media is passed by URL (video_url, photo_url); PostWire fetches and forwards the bytes.
  • TikTok and YouTube videos are streamed in chunks, so they can be up to 1GB. Other networks and hosts that do not send Content-Length are capped at 80MB, because the file has to be held in memory.
  • POST /api/media/upload-url returns a signed URL to upload a file directly (max 50MB) if you do not have somewhere to host it.

Also Available

PostWire ships an MCP server, so an agent can call these as tools rather than as HTTP requests, and there are n8n templates for the same flows. Both are linked from the dashboard.

© davepoon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/all-skills/skills/postwire of davepoon/buildwithclaude.

Open the folder on GitHubat commit 10bfc43

Compare with similar skills

Postwire 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.

Postwire compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Postwire this skilldavepoon/buildwithclaude3.6k—~1.7kAutomated safety check: PassMIT
Postizgitroomhq/postiz-agent5052 repos~7.9kAutomated safety check: PassAGPL-3.0
Outlier Post FinderScrapeCreators/social-media-research-skills3.3k—~1.5kAutomated safety check: NotesMIT
Caption Writer Smsblacktwist/social-media-skills557—~5.3kAutomated safety check: PassMIT
Social Publisherericrisco/rsc-harness156—~3.2kAutomated safety check: PassMIT
Caption Writersocial-media-skills/skills116—~1.7kAutomated safety check: PassMIT

Similar skills

  • Postiz

    gitroomhq/postiz-agent

    Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest…

    505 GitHub starsUsed in 2 repos~7.9k tokens
    Writing & ContentAuto-check passed
  • Outlier Post Finder

    ScrapeCreators/social-media-research-skills

    A skill your agent uses when the user wants to find posts, videos, reels, shorts, tweets, or social content that overperformed versus a creator, brand, or competitor baseline.

    3.3k GitHub stars~1.5k tokensUpdated 1 mo ago
    Writing & ContentAuto-check: notes
  • Caption Writer Sms

    blacktwist/social-media-skills

    When the user wants to write a caption for a visual-first social media post on Facebook, Instagram, TikTok, Pinterest, or YouTube.

    557 GitHub stars~5.3k tokensUpdated 5 mo ago
    Writing & ContentAuto-check passed
  • Social Publisher

    ericrisco/rsc-harness

    A skill your agent uses when planning a posting schedule, building a multi-platform content calendar, or reshaping one source asset into channel-native posts across X, LinkedIn, Instagram, Threads…

    156 GitHub stars~3.2k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Caption Writer

    social-media-skills/skills

    A skill your agent uses to write platform-native social media captions (post copy) in the brand's voice — the words that accompany a post on Instagram, LinkedIn, TikTok, Facebook, X/Twitter…

    116 GitHub stars~1.7k tokensUpdated 6 days ago
    Writing & ContentAuto-check passed
  • Content Repurposer Sms

    blacktwist/social-media-skills

    When the user wants to turn one piece of content into multiple formats or adapt content across text-first and visual-first platforms (LinkedIn, Twitter/X, Threads, Bluesky, Facebook, Instagram…

    557 GitHub stars~3.7k tokensUpdated 5 mo ago
    Writing & ContentAuto-check passed

More from davepoon/buildwithclaude

All 246 skills in this repo
  • Qwen Vision

    davepoon/buildwithclaude

    A skill your agent uses when the user asks to "analyze video", "watch this video", "what happens in this video", "describe this clip", "review this footage", "classify these videos", "compare…

    3.6k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Hard Predict Future

    davepoon/buildwithclaude

    Activate this agent for any future-oriented question that requires deep quantitative analysis, historical precedents, and structured scenario planning.

    3.6k GitHub starsUsed in 1 repo~4.2k tokens
    Auto-check passed
  • iOS Hig Design Guide

    davepoon/buildwithclaude

    Build, update, and apply iOS design specifications using Apple Human Interface Guidelines (HIG) source data.

    3.6k GitHub stars~735 tokensUpdated yesterday
    Auto-check passed
  • Video Downloader

    davepoon/buildwithclaude

    Download YouTube videos with customizable quality and format options.

    3.6k GitHub starsUsed in 1 repo~871 tokens
    Auto-check passed
  • Atlas Cloud Media

    davepoon/buildwithclaude

    Discover Atlas Cloud image and video models, inspect their live schemas, and submit one confirmed media generation request with bounded GET polling.

    3.6k GitHub stars~852 tokensUpdated yesterday
    Auto-check passed
  • Slack Gif Creator

    davepoon/buildwithclaude

    Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives.

    3.6k GitHub starsUsed in 12 repos~4.3k tokens
    Auto-check passed

Questions about Postwire

What does Postwire do?

Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version…. Postwire is an agent skill from davepoon/buildwithclaude. Publish and schedule to TikTok, Instagram, YouTube, LinkedIn, X, Bluesky, Mastodon, Facebook, Threads, Reddit, Telegram and Discord through one PostWire API call — writing a separate, native version of the post for each network instead of sending identical text everywhere.

When should I use Postwire?

Postwire fits situations like: the user wants to publish; schedule one idea across several platforms; wants per-network captions; wants to know why a post was rejected before it is sent.

How do I install Postwire in Claude Code?

Run `npx skills add davepoon/buildwithclaude --skill postwire -a claude-code`. Or copy the skill folder (plugins/all-skills/skills/postwire in davepoon/buildwithclaude) into .claude/skills/postwire in your project. Claude Code loads it when a task matches its description.

How do I install Postwire in Codex?

Run `npx skills add davepoon/buildwithclaude --skill postwire -a codex`. Or copy the skill folder (plugins/all-skills/skills/postwire in davepoon/buildwithclaude) into .agents/skills/postwire in your project. Codex loads it when a task matches its description.

Can I use Postwire in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davepoon/buildwithclaude --skill postwire -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/postwire, .gemini/skills/postwire, .github/skills/postwire and .opencode/skills/postwire in your project.

What does Postwire need to run?

Going by SKILL.md and its folder, Postwire needs the command-line tools its instructions call (curl) and credentials named POSTWIRE_API_KEY. Our summary lists: A credential in POSTWIRE_API_KEY.

Does Postwire access the network?

SKILL.md names 1 domain. In commands or code: postwire.io; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Postwire safe to install?

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.

What licence does Postwire use?

Postwire is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Postwire use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Postwire?

Skills that share tags, products or a category with Postwire: Postiz (gitroomhq/postiz-agent, 505 stars), Outlier Post Finder (ScrapeCreators/social-media-research-skills, 3.3k stars), Caption Writer Sms (blacktwist/social-media-skills, 557 stars) and Social Publisher (ericrisco/rsc-harness, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Postwire?

davepoon (a GitHub user) maintains it in davepoon/buildwithclaude, which has 3,601 GitHub stars. The repository holds 246 skills in this directory. The repository was last updated on October 6, 2026.

Source: davepoon/buildwithclaude on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.