ghost-editor skill

A Claude Code skill that cuts a raw talking-head recording into a finished reel in one of about twenty styles

  • 451 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • Installation adds packages through Homebrew and pip and runs video processing scripts on your machine.
  • With a Gemini key, frames from your reels are sent to Google for the B-roll check.
All reasons and checks
Needs a VPN

kurbaitaev/ghost-editor

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/ghost-editor

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Installation adds packages through Homebrew and pip and runs video processing scripts on your machine.
  • With a Gemini key, frames from your reels are sent to Google for the B-roll check.

This is third-party code. Review the repository files before installing.

What it does

ghost-editor takes a long take where the speaker stumbles over the same line several times and keeps the best attempt at each line. A three-minute recording becomes a reel of about 30 seconds with captions, scenes, sounds and music. The style is set in one phrase: Clean OS, Seoul list, Whiteboard, Caption News, News Package, Swiss Grid and others, plus seven one-word presets such as `clean` and `meme`. Show the agent someone else's reel and it breaks it down and edits the recording the same way. Before rendering, the agent shows a page with a frame at every cut and waits for approval. After the build it checks pauses, sound levels, caption size and that graphics never cover the face.

Who it is for. Bloggers and experts who film on a phone and spend hours editing short videos for Reels, Shorts and TikTok.

Good fit when

  • You recorded a three-minute take full of slips, and the feed needs a clean half-minute reel.
  • There is a reel you like, and your own recording should be edited the same way.
  • A series of short videos goes out every week, and an editor costs too much.
  • A talking video needs word-level captions, B-roll and sound accents without manual work in an editor.

Not a fit when

  • You are on Windows, Linux or an Intel Mac: only Apple silicon is tested.
  • You need a long YouTube video or a multi-camera film.
  • There is no Claude subscription and the work has to run without a paid plan.

Example request

Edit ~/Downloads/my-video.mov into a reel in Clean OS and show me the cuts before rendering.

Limitations

The skill is built and tested on an Apple silicon Mac: the caption check relies on macOS text recognition, and Linux and Intel were not tested. Installation takes about 4 GB and sets up ffmpeg, Node, Python, Whisper and OpenCV, while optional modules add up to 2.4 GB each. The B-roll check needs a Gemini key and sends frames to Google; without the key this step is skipped. The narrator in the animated explainer requires an ElevenLabs key. A 60-second reel takes about 15–25 minutes on an M3 MacBook Air.

How to disable. Delete the `~/.claude/skills/ghost-editor` folder. Weights of the optional modules sit in `~/.cache` and can be removed separately.

FAQ

Which languages does ghost-editor understand?

The author tested English and Russian. The demo reels are in Russian because he posts in Russian.

Can I get a style that is not on the list?

Yes. Describe the style or show a reel, and the agent writes a recipe for it. That is how every named style in the repository was made.

Where do the sounds and music come from?

From the free Mixkit library, which `library_restore.py` downloads during installation, and from a pack of CC0 meme sounds inside the repository.

What happens without a Gemini key?

The presets keep working; only the B-roll check is skipped. With a key the agent also finds shots in your footage and makes stills for inserts.

How do I check that everything is installed?

Run `bash ~/.claude/skills/ghost-editor/scripts/doctor.sh`. It prints missing parts with a fix command for each and ends with `0 missing` when everything is ready.

Discussion

No questions or reviews yet.

Skills

Claude Code skill that turns raw talking-head clips into a finished Instagram reel, picks the best takes and cuts dead air

SkillExtended access143Repository stars

Eleven Claude Code skills turn a talking-head clip into reels: titles, graphics behind you and split screen

PluginExtended access74Repository stars

A Claude Code skill that builds motion graphics in code: 21 ready looks, five questions, three approval stills and an MP4 render.

SkillExtended access168Repository stars

Six editing skills for Claude Code that turn a raw talking-head clip into an animated short with captions, rendered locally

SkillExtended access61Repository stars

The video-explainer skill turns a script into a vertical 9:16 explainer: narration, captions, Remotion and a pre-render review

SkillExtended access124Repository stars

A Claude Code skill that records a product in the browser, composes a video with chapters and captions and masters the MP4 locally

SkillExtended access396Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
ghost-editor (this card)no451
video-useno30,994general editing with colour grading and inserts; here vertical reels in ready styles with the best take picked
Stickman Video Directorno5,805prepares scripts and prompts for stickman clips; here editing of your own recording

README in short

The README shows a grid of styles, a comparison with a human edit and a table of phrases for each style. Requirements and questions sit in collapsible blocks, with details in docs/HOW-IT-WORKS.md and docs/PLAYBOOK.md.

README badge

Original SKILL.md

---
name: ghost-editor
description: "AI video editor for talking-head reels. Turns a raw phone recording of someone talking to camera (retakes, pauses, false starts) into a finished vertical 1080x1920 reel for Instagram, TikTok or Shorts: the best take of each sentence, pause trimming, word-timed captions that never cover the face, motion scenes on the spoken word, sound effects mixed against the voice and checked B-roll. Use when the user hands over a talking-head video and says \"edit this\", \"make a reel\", \"make it look like this video\", \"add captions/sound effects\", \"pick the best takes\", \"remove the pauses\", asks for a re-cut, or names a style. Named styles (recipes/, docs/PLAYBOOK.md): Clean OS, Seoul list, RESULT, Face RESULT, stan style, vector explainer, POV montage, Whiteboard, Kinetic doc, Step Deck, Product page, Tactile paper, Caption News, News Package, Telestrator, Halftone Dossier, Swiss Grid, Data Story, Hologram HUD; plus seven presets (clean, editorial, meme, cinematic, launch, kinetic, pop). Not for landscape screen recordings."
---

# ghost-editor

One recording in, one reel out. The creative work is choosing takes and
planning beats. The scripts do everything else the same way every time: cut
math, zoom tweens, captions, SFX levels, asset copying, QA. Nothing on
screen says anything the speaker did not say. A meme is a reaction, so it
lands ON or just AFTER the punchline, never before it.

Skill dir: `~/.claude/skills/ghost-editor` (below: `$S`). A reel project is any
directory (`$P`); `build.mjs` copies what it needs into `$P/assets` so the
project renders on its own.

## Cost: one fresh helper per reel, the right model per step
Measured on a batch of 21 reels: looking at frames was ~5 % of the Claude usage. The cost is context re-read on every
turn (one helper that built 3 reels in a row re-read 212 M cached tokens over 464 turns) and new generator code written
per reel (two helpers per style each wrote their own lib). Numbers: docs/PLAYBOOK.md "Cost".
- **One reel = one FRESH helper** (Agent tool). Never one helper for several reels or a wave. The session that talks to
  the user orchestrates: fill `templates/briefs/build-one-reel.txt` (build -> preview -> stop), send them the preview,
  and on their OK fill `templates/briefs/finish-one-reel.txt` for a new helper. Changes after their notes go to a fresh
  helper with the reel's `reel.py` and their words (the generator is the state, not the old transcript); SendMessage the
  old helper only for a one-line fix. Spawn helpers as `reel-helper` when the session lists it
  (`templates/agents/reel-helper.md`, copied to ~/.claude/agents/; shell and file tools only): a general-purpose helper
  starts at ~85 k tokens of tool and skill lists and re-reads them on every call. Long jobs run in one blocking call,
  never a background job polled per turn.
- **Model per step:** Opus (the default) plans and judges: takes, hook, beats, components, `reel.py`, snapshots, the
  user's notes. Sonnet (Agent tool `model: "sonnet"`) runs fixed recipes: preview / final renders, `finals.py` qa /
  deliver, `components.py record`, file moves and commits. It stops on a hard QA fail and reports; the fix goes back to
  Opus. Many frames are Gemini Flash's job (broll_vision / broll_qa), not Claude's.
- **Little code per reel:** a named style's reel is a short generator on its recipe's builder (`clean-os/cleanos.py` +
  `kit.py`, `result-podcast/faceresult.py`, `whiteboard/board.py`, `seoul-list/seoul.py`); read `<builder> --api`, not
  old generators, and never write a per-batch lib. A part two reels needed goes into the builder's kit.
- **Small context:** grep / `sed -n`, not cat; one overview sheet per look (`snap.py beats` -> overview.jpg), not single
  frames; never re-read what you just wrote. Measure a reel with `scripts/reel_usage.py <helper transcripts>`.

## Pipeline

Report a problem