Skip to content
Back to skills

Postey Video

ASecurity

Turn one video into posts everywhere with Postey: transcribe it, write a caption per platform, upload with a cover frame, and leave drafts ready for approval. Handles local files and large uploads, which the MCP server cannot reach.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 25, 2026
ai-agentsshellbash

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add posteyai/skills --skill postey-video --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Postey Video?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Postey Video
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/posteyai-postey-video/badge)](https://www.skillsdirectory.com/skills/posteyai-postey-video)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: postey-video
version: 1.0.4
description: >
  Turn one video into posts everywhere with Postey: transcribe it, write a caption
  per platform, upload with a cover frame, and leave drafts ready for approval.
  Handles local files and large uploads, which the MCP server cannot reach.
when_to_use: >
  Use when the user gives a video URL or a local video path, asks to post a video
  or reel to Instagram/TikTok/YouTube, wants one video cross-posted everywhere,
  wants a video transcribed into captions, or wants a cover frame chosen.

allowed-tools:
  - Bash(${CLAUDE_SKILL_DIR}/scripts/postey.js:*)

# Requires the `postey` skill: account selection, the write path and the craft
# layer (caption-playbook, hook-formulas, platform-archetypes,
# thread-and-video-formats) all live there.
requires:
  - postey

# Capability-keyed ownership — canonical keys from capability-snapshot.json.
# This skill OWNS media.transcribe: transcription needs local ffmpeg and the file
# itself, which is the contract's dividing question answered "skill".
capabilities:
  owns:
    - media.transcribe
  reads:
    - media.upload
    - file.list
    - file.read
    - file.upload
    - post.create
  prompts:
    - generate-captions-from-transcript
    - generate-captions-batch

mcp-tools:
  resources:
    - postey://accounts
    - postey://platform-limits
  tools:
    # GENERATED from capabilities: by scripts/gen-mcp-tools.js — do not hand-edit.
    - create_post
    - file_manager
    - list_files
    - read_file
    - transcribe_video
    - upload_media
  prompts:
    - generate-captions-from-transcript
    - generate-captions-batch

routing:
  read-only-state:     mcp-resource > mcp-tool
  local-file:          cli
  video-transcription: cli > mcp-tool
  write-post:          mcp-tool
  fallback:            mcp-tool
---

# Postey Video

One video becomes a caption per platform and a draft per account. Nothing publishes without the
user's explicit approval, and **scheduling counts as publishing**.

## Why this ships its own CLI

`scripts/postey.js` here is a **byte-identical copy** of the hub's, verified by
`scripts/check-script-parity.js`. A skill cannot rely on the path to another skill's directory —
no install layout guarantees one — so the copy travels with the pack. The consequence is that
this skill and the hub version-bump together whenever the CLI changes.

`capability-snapshot.json` sits beside it because `postey.js` requires it at runtime for the
platform list. A copy without it crashes on require.

## Routing

| Situation | Path |
|---|---|
| A local video or image path | **CLI**, unconditionally — MCP cannot see the user's disk |
| Transcription | **CLI** (`video transcribe`); `transcribe_video` when your client has no shell |
| Large or chunked upload | **CLI** — the MCP inline path is context-bound |
| Creating or updating the draft | **MCP** (`create_post` / `update_post`) — always, even after a CLI upload |

The CLI stops at the upload and hands back the fields for the MCP write. It never creates the
draft itself.

## Workflow

1. **Read the accounts** — `postey://accounts`, or `get_accounts` if your client cannot read
   resources. Never assume which platforms are connected.
2. **Transcribe** if there is no caption yet. Never paste a raw transcript as a caption.
3. **Write one caption per platform** from the transcript. Craft rules come from the hub:
   `caption-playbook.md`, `hook-formulas.md`, `platform-archetypes.md` and
   `thread-and-video-formats.md`. If a brand profile exists, its voice and banned lists apply.
4. **Upload** via the CLI, taking the cover frame with it.
5. **Create the draft** through MCP, then attach each additional platform with `update_post` on
   the same `post_id`.
6. **Validate** each platform with `validate_post_content`, fix, then present the share link.

## Reference

- Full transcription and cross-post workflow: [video-workflow.md](video-workflow.md)
- The video-everywhere content flow: [references/video-to-everywhere.md](references/video-to-everywhere.md)

Files in this skill

  • SKILL.md4 KB
  • capability-snapshot.json4.6 KB
  • pack.json651 B
  • references/video-to-everywhere.md3.2 KB
  • scripts/mediaValidator.js7.9 KB
  • scripts/postey.js76.4 KB
  • scripts/videoUtils.js5 KB
  • video-workflow.md5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.