Skip to content
Agentmart
Submit a tool

clip

Cut a video into short-form clips (highlights/shorts) — cut given timecodes directly, or pick the best moments from a Perso AI STT project.

Skill by perso-ai

IndexedMIT★ 40
Write a review

Chalk Labs

Need help deploying clip?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/perso-ai-clip

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Cut a video into short-form clips (highlights/shorts) — cut given timecodes directly, or pick the best moments from a Perso AI STT project. Reframes 16:9→9:16. Subtitles are added separately by the srt skill.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 2

  • codeload.github.com · found in install command
  • portal-media.perso.ai · found in code

Files it touches

  • ~/.claude/skills/clip

Tools it pre-approves 6

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash(node
  • scripts/clip.mjs
  • *),
  • ../dubbing/scripts/resolve_key.mjs
  • ${CLAUDE_SKILL_DIR}/scripts/*),
  • ${CLAUDE_SKILL_DIR}/../dubbing/scripts/*)

What's inside

Skill name
clip
Description
Cut a video into short-form clips (highlights/shorts) — cut given timecodes directly, or pick the best moments from a Perso AI STT project. Reframes 16:9→9:16. Subtitles are added separately by the srt skill.
License
MIT
Allowed tools
Bash(node, scripts/clip.mjs, *),, Bash(node, ../dubbing/scripts/resolve_key.mjs, *),, Bash(node, ${CLAUDE_SKILL_DIR}/scripts/*),, Bash(node, ${CLAUDE_SKILL_DIR}/../dubbing/scripts/*)
Instructions
52 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves some shell commands

Files (3)

  • SKILL.md
  • clipper.mjs · lib/
  • clip.mjs · scripts/

SKILL.md (first lines)

# /clip

Cut a video into short clips + reframe. **Subtitles are not this skill's job** — after cutting, the `srt` skill styles them (see the handoff below).

## Entry points

- **Explicit timecodes** ("cut 2:00–3:00 of this video") → cut the local file directly: `--video "<file>" --ranges "2:00-3:00,..."`. No STT, no key, no credits.
- **AI highlight selection on an STT project** → `--plan` then `--clips` (the flow below). Needs the project's transcript + word timestamps.
- **Raw video, "find the good moments"** (no timecodes given) → you can't pick highlights without a transcript, so **ask the user which they want**:
  - **STT** (proper selection, uses credits): run the `srt` skill's STT first to create the project, then clip it with `--plan`/`--clips`.
  - **Free** (no STT): the user gives the timecodes and you cut them with `--video --ranges`.

  Proceed with their choice — don't run STT (which bills credits) without asking.

## Core rules

- **Only the worker sees the raw key** — never open, echo, or pass it as an argument.
- **The key gate applies only to `--project`/`--plan`/`--clips`.** `--video --ranges` and `--sidecars` are fully offline — never run a key check/registration for them.
- **Run in the background** — encoding takes time.
- This skill shares the dubbing skill's libraries: the `dubbing` folder must be installed next to `clip`.

## Flow

**Phase 1 — plan.** `node scripts/clip.mjs --project <seq> --plan` prints the summary's section map (topic guide) plus the full sentence transcript, each line as `order [start-end] text`.

**Phase 2 — pick, then cut.** Read the transcript and choose clips, each `{ "title": "...", "start_order": N, "end_order": M }`. Rubric:

- **Hook first** — start on a sentence that grabs attention (question, bold claim, funny/surprising line).
- **End where the moment resolves, not at the first complete sentence.** Ride the beat to its end — the whole reaction, follow-through, and any secondary punchline. Read a few sentences past the apparent ending; keep them if still the same reaction.
- **Cut at the transition** — end just before the energy drops or the tone shifts (excited reaction → calm narration).
- **Peak** — favour funny / surprising / emotional / quotable moments; the high point often sits a sentence or two after the literal reveal.
- **Length 30–90s** — the worker warns when outside; prefer the full arc over a premature cut.
- **Title** — describes the moment; becomes the file name (`01_<title>.mp4`).

Sections are chapter-length — use the section map only as a guide, then tighten to a hook.

Run: `node scripts/clip.mjs --project <seq> --clips '<json>' [--out folder]` (`--clips` also accepts `@path`). Landscape (16:9) sources are reframed to 9:16 (drama-shorts letterbox); portrait sources are kept. The worker writes the clips plus a `clips.json` manifest (records each clip + the transcript slice needed for subtitles later). Relay `[progress]`; deliver the files from `[clips-output]`.

## Subtitles → hand off to the srt skill

Subtitles are off by default. After cutting, tell the user clips are ready and **ask whether to add subtitles**. If they want subtitles, **show the presets first — never jump straight to one**, exactly as the srt skill's styling flow does: the interactive **gallery** (select + Apply) in the Claude app, or the static `../srt/assets/style_presets.png` + `node ../srt/scripts/style.mjs --list-presets` menu elsewhere. Let the user pick a preset or describe a style (short-form presets like `karaoke`/`bold-punch` suit clips). Only after they pick:

1. Write the sidecars: `node scripts/clip.mjs --sidecars "<out>/clips.json"` — add `--karaoke` **only** for a karaoke preset (it also writes `<clip>.timestamps.json` for measured word timing; a plain preset needs just the `.srt`).
2. Style each clip with the **srt** skill: `node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id>` (append `--word-timestamps "<clip>.timestamps.json"` for karaoke). See the srt skill's "Style & burn subtitles" section.

Add `--host <runtime>` for telemetry (silent), same as the other workers.

## Config (env)

Same as `/dubbing` / `/srt` (`PERSO_API_BASE`/`PERSO_MEDIA_BASE` — https `perso.ai` hosts only, `PERSO_SPACE_SEQ`, `XP_API_KEY`, `PERSO_NO_TELEMETRY`, …).

From perso-ai/perso-dubbing-plugin, MIT.

Signals

Stars
40
Forks
4
Open issues
1
Last commit (this folder)
Aug 5, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from perso-ai

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get clip running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying clip?

CallGet help
Cite this page

clip skill. Agent Mart. https://agentmart.dev/skills/perso-ai-clip (last updated 2026-10-24)