social-media-post-drafting

Drafts character-limit-verified short-form posts for Mastodon, X, LinkedIn, Bluesky, and Threads.

10|2|Updated May 6, 2026
One-click install
npx skills add https://github.com/jcrabapple/hermes-skills --skill social-media-post-drafting-jcrabapple
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: social-media-post-drafting
Source: https://github.com/jcrabapple/hermes-skills/tree/main/social-media-post-drafting
Command: npx skills add https://github.com/jcrabapple/hermes-skills --skill social-media-post-drafting-jcrabapple

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Drafting social media posts that fit platform-specific character limits, avoid AI-sounding language, and stay factually accurate is error-prone when done by hand. This Skill handles platform identification, char-limit verification, topic research, and programmatic character-count validation so posts are ready to publish. ## Core Features & Use Cases - Platform-aware drafting: Identifies the target platform (Mastodon, X, LinkedIn, Bluesky, Threads, Facebook) and applies its actual character cap, including per-instance Mastodon limits and X tier differences. - Programmatic length verification: Counts characters with Python, including Mastodon's 23-character URL normalization, and iterates until the draft fits with headroom. - Research and humanizer pass: Web-searches primary sources before drafting factual posts, then strips AI vocabulary, em dashes, and filler so the post reads naturally. - Use Case: Ask for a Mastodon post announcing a software release; the Skill researches the release notes, drafts within your instance's 1989-character cap, verifies the count, and formats source links and hashtags. ## Quick Start Write a Mastodon post about the FeedEcho v1.9.1 release, keeping it under my instance's character limit and including the release link.

Frequently Asked Questions about social-media-post-drafting

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a social media post that fits a character limit?▼

Identify the target platform first, then verify its actual character cap since defaults vary (Mastodon instances range from 500 to 10,000). Draft the post, then count characters programmatically with Python len() and iterate until it fits with headroom.

How to count Mastodon post characters with URLs?▼

Mastodon normalizes every URL to 23 characters regardless of raw length. Use a regex to find URLs in the draft, then compute weighted length as len(post) plus 23 minus each URL's actual length, and compare against your instance's cap.

What is the character limit for Mastodon, X, and LinkedIn posts?▼

Mastodon defaults to 500 but varies per instance via MAX_TOOT_CHARS. X allows 280 for free accounts and up to 25,000 for Premium. LinkedIn posts cap at 3000 characters, comments at 1250, Bluesky at 300, and Threads at 500.

Can I verify a Mastodon instance's character limit programmatically?▼

Yes, query the instance API with curl: GET https://INSTANCE/api/v1/instance and read max_toot_chars, or use the v2 endpoint's configuration.statuses.max_characters field. The compose box counter also shows the live cap.

Why do shell commands fail when posting text with dollar signs?▼

Bash expands dollar signs and mangles multiline strings passed as inline arguments. Write the post to a file with write_file and pass it via a --status-file flag to the posting script instead of embedding the text in the command line.

When should I not use this social media drafting skill?▼

Avoid it for long-form content like blog posts, which belong to article-writing workflows, and for cover letters. It is designed specifically for short-form posts from single tweets to LinkedIn-length updates.