Publishes {{PERSONA_NAME}} story videos to Instagram Stories and Facebook Stories via the Late API.
How It Works
Finds the latest unpublished story sidecar in ~/{{PersonaDir}}/stories/
Uploads stitched video to Late cloud storage via presigned URL
Generates platform-optimized captions via Gemini (short story-style)
Publishes as story via Late API to Instagram Stories and Facebook Stories
Records in database (user_posts + platform_posts)
Usage
node skills/stories-publish/scripts/stories-publish.js [options]
Options:
--story "path/to/story.json" # Specific story (default: latest unpublished)
--platforms "instagram,facebook" # Filter platforms (default: instagram,facebook)
--schedule "2026-03-05T09:00:00" # Schedule post (default: publish now)
--dry-run # Show what would be posted, skip publish
Supported Platforms
Platform
Story Support
Notes
Instagram
Yes
Instagram Stories
Facebook
Yes
Facebook Stories
TikTok does not support native stories and is excluded.
Prerequisites
LATE_API_KEY in .env
GEMINI_API_KEY in .env
Story must have video generated by stories-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: stories-publish3description: stories-publish4---5# stories-publish67Publishes {{PERSONA_NAME}} story videos to Instagram Stories and Facebook Stories via the Late API.89## How It Works10111. Finds the latest unpublished story sidecar in `~/{{PersonaDir}}/stories/`122. Uploads stitched video to Late cloud storage via presigned URL133. Generates platform-optimized captions via Gemini (short story-style)144. Publishes as story via Late API to Instagram Stories and Facebook Stories155. Records in database (`user_posts` + `platform_posts`)1617## Usage1819```bash20node skills/stories-publish/scripts/stories-publish.js [options]2122Options:23 --story "path/to/story.json" # Specific story (default: latest unpublished)24 --platforms "instagram,facebook" # Filter platforms (default: instagram,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 | Story Support | Notes |32|----------|--------------|-------|33| Instagram | Yes | Instagram Stories |34| Facebook | Yes | Facebook Stories |3536TikTok does not support native stories and is excluded.3738## Prerequisites3940- `LATE_API_KEY` in `.env`41- `GEMINI_API_KEY` in `.env`42- Story must have video generated by `stories-gen`43- Platform accounts connected in Late (see SOCIALS.md)4445## Output4647- Updates sidecar JSON with `published_at` and `late_post_id`48- Database rows in `user_posts` and `platform_posts`
Run npx skillmds@latest add kevinbadi/stories-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.
stories-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.