Publishes {{PERSONA_NAME}} carousel posts to Instagram, TikTok, and Facebook via the Late API.
How It Works
Finds the latest unpublished carousel sidecar in ~/{{PersonaDir}}/carousels/
Uploads each slide image to Late cloud storage via presigned URLs
Generates platform-optimized captions via Gemini
Publishes as a carousel post (multiple mediaItems) via Late API
Records in database (user_posts + platform_posts)
Usage
node skills/carousel-publish/scripts/carousel-publish.js [options]
Options:
--carousel "path/to/carousel.json" # Specific carousel (default: latest unpublished)
--platforms "instagram,tiktok" # Filter platforms (default: instagram,tiktok,facebook)
--schedule "2026-03-05T09:00:00" # Schedule post (default: publish now)
--dry-run # Show what would be posted, skip publish
Supported Platforms
Platform
Carousel Support
Notes
Instagram
Yes
Native carousel (up to 10 slides)
TikTok
Yes
Photo mode carousel
Facebook
Yes
Multi-image post
Twitter/X and YouTube do not support carousel posts and are excluded.
Prerequisites
LATE_API_KEY in .env
GEMINI_API_KEY in .env
Carousel must have slide images generated by carousel-gen
Platform accounts connected in Late (see SOCIALS.md)
Output
Updates sidecar JSON with published_at and late_post_id
Database rows in user_posts and platform_posts
1---2name: carousel-publish3description: carousel-publish4---5# carousel-publish67Publishes {{PERSONA_NAME}} carousel posts to Instagram, TikTok, and Facebook via the Late API.89## How It Works10111. Finds the latest unpublished carousel sidecar in `~/{{PersonaDir}}/carousels/`122. Uploads each slide image to Late cloud storage via presigned URLs133. Generates platform-optimized captions via Gemini144. Publishes as a carousel post (multiple `mediaItems`) via Late API155. Records in database (`user_posts` + `platform_posts`)1617## Usage1819```bash20node skills/carousel-publish/scripts/carousel-publish.js [options]2122Options:23 --carousel "path/to/carousel.json" # Specific carousel (default: latest unpublished)24 --platforms "instagram,tiktok" # Filter platforms (default: instagram,tiktok,facebook)25 --schedule "2026-03-05T09:00:00" # Schedule post (default: publish now)26 --dry-run # Show what would be posted, skip publish27```2829## Supported Platforms3031| Platform | Carousel Support | Notes |32|----------|-----------------|-------|33| Instagram | Yes | Native carousel (up to 10 slides) |34| TikTok | Yes | Photo mode carousel |35| Facebook | Yes | Multi-image post |3637Twitter/X and YouTube do not support carousel posts and are excluded.3839## Prerequisites4041- `LATE_API_KEY` in `.env`42- `GEMINI_API_KEY` in `.env`43- Carousel must have slide images generated by `carousel-gen`44- Platform accounts connected in Late (see SOCIALS.md)4546## Output4748- Updates sidecar JSON with `published_at` and `late_post_id`49- Database rows in `user_posts` and `platform_posts`
Run npx skillmds@latest add kevinbadi/carousel-publish in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
carousel-publish It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
kevinbadi (@kevinbadi) published this skill. Their other Agent Skills are listed on their SkillMD profile.