agentleFS
milind-sonimilind-soni/OpenMausBot/skills/social-posts/SKILL.md

social-posts

Skill23k starsChanged 3 months agoApache-2.0View on GitHub

Show how a social post will look on each platform, with show_html: Instagram (with carousels), LinkedIn (with document carousels), X, Threads, Facebook, TikTok, Reels and Shorts. Use whenever you write a social post, whether or not Postiz is connected.

1 other project uses a version of this.

Adopted by

Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 0 new projectsWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 0 in all, so this is a hint, not a trend.

Most recently taken up by

Who's talking about milind-soni/OpenMausBot

The biggest 5 of 31 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 31

Talked about on YouTube, Bluesky and Hacker News (31 times).

On YouTube · 24

19 more on YouTube

On Bluesky · 5

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. kitloomlk-stack/marketing-seo-kit★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Call show_html with title and the path, or the html.

    line 51
  2. Very specific:

    When the person shares it, publish_page publishes the same folder.

    line 52
  3. Distinctive:

    Write a good carousel like this: one idea per slide, a cover that promises something specific, 5 to 10 slides, about 20 words a slide, and …

    line 69
  4. Very specific:

    When Postiz is connected, its integrationSchema is the authority for that channel's rules.

    line 91

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Social post previews

Whenever you write a social post, show it as it will look. Don't ask first, and don't wait for an answer: show the preview and carry on with the work. It's for social posts only, so skip it for a blog post or an article.

Fill the template

posts.html sits next to this guide, in the folder named by this skill's root. Copy it to your working folder and replace only the JSON in the posts-data block at the top. Keep the rest, including the licence notice at the top of the file.

{
  "account": { "name": "Juniper Coffee", "handle": "junipercoffee", "subtitle": "Roasters in Leeds", "avatar": "avatar.png" },
  "posts": [{
    "title": "Autumn launch",
    "when": "Draft",
    "text": "Text for every platform that has none of its own.",
    "media": [{ "src": "photo.jpg", "alt": "A bag of coffee" }],
    "platforms": {
      "instagram": { "text": "Its own caption.", "media": [] },
      "x": {}
    }
  }]
}
  • platforms decides which previews show: instagram, linkedin, x, threads, facebook, tiktok, reels, shorts. Each can have its own text, media and when; anything left out comes from the post. Write each platform's text for that platform.
  • A plan of several posts is several entries in posts; they stack on one page.
  • With no avatar the card shows initials. No media and empty text still draw properly.
  • media items: an image { "src", "alt" }, a video { "video", "poster", "duration" } (seconds), or a slide (below). Add width and height when a file's size can't be read, so its shape can be checked.

Show it

Pick by what the post has:

The post hasDo this
Only text, or slides you wroteSend the file's whole text as html. At most 256 KB, and the template is about 48 KB.
Images on diskMake a folder: the template as index.html, the images beside it, named in src ("src": "photo.jpg"). Show it with path. png, jpg, gif, webp, avif and svg work. The folder holds at most 5 MB and 200 files, and index.html at most 256 KB, so shrink big images first.
An image on the webDownload it into the folder first. The chat blocks images from other sites, and the card says so.
A video on diskPut it in the folder and name it: { "video": "clip.mp4", "poster": "frame.jpg" }. It plays and seeks in the chat, at any size: mp4 (H.264), webm or mov. It plays from the folder and isn't copied, so keep the file there unchanged. If it is moved, edited or deleted, the card falls back to the poster until you show the page again. Always add a poster.
A public linkpublish_page leaves video out and says so, and the public page shows the poster with a play mark. The chat card keeps playing the video.

Call show_html with title and the path, or the html. To change a preview, call it again with the page's app_id. When the person shares it, publish_page publishes the same folder; only do that when they ask.

Carousels without images

You can make a carousel with no image tool: write the slides. layout slides take care of the design, and set the shape with "slideShape": "4:5" (the default) or "1:1" on the post.

"brand": { "background": "#2b1d16", "text": "#fbf3e6", "accent": "#e8a15b" },
"media": [
  { "layout": "cover", "kicker": "New on Friday", "title": "Three things to know", "note": "Swipe to read" },
  { "layout": "points", "title": "What's in the bag", "points": ["Plum", "Cocoa", "Smoke"] },
  { "layout": "quote", "quote": "Like the first cold morning.", "by": "Priya, head roaster" },
  { "html": "<p class=\"slide-kicker\">Your own</p><h3 class=\"slide-title\">Any HTML you like</h3>" }
]

Write a good carousel like this: one idea per slide, a cover that promises something specific, 5 to 10 slides, about 20 words a slide, and a last slide that says what to do next. In your own html slides size text in cqw (a percentage of the slide's width), so it fits at every size.

These slides show in the preview only. To post them for real, the person needs them as images, or as a PDF for LinkedIn: say so plainly. This skill can't export them.

What each platform wants

From each platform's own docs. The cards note these quietly; nothing is ever blocked.

PlatformTextMedia
Instagram2,200 characters, 30 hashtags, 20 @ tagsImages 4:5 to 1.91:1. Carousel up to 20; every slide crops to the first one's shape
LinkedIn3,000 characters. LinkedIn's guidance is to stay within 150 to avoid a cut, so put the hook firstA "carousel" is a document (usually a PDF): up to 300 pages, 100 MB
X280, where emoji and CJK count as 2 and any link as 23Up to 4 photos, or 1 video
Threads500; an emoji counts as its UTF-8 bytesCarousel 2 to 20. Video up to 5 minutes
FacebookNo published limit, so no check
TikTokVideo caption 2,200; photo description 4,000Up to 35 photos
ReelsAs Instagram9:16 recommended; 3 seconds to 15 minutes
ShortsSquare or vertical; up to 3 minutes

When Postiz is connected, its integrationSchema is the authority for that channel's rules; follow it where it differs. The preview is a close likeness, not a pixel match: say so if the person asks.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.