analyze-video
Internal sub-procedure (not a standalone entry point) — the shared footage-analysis pipeline that produces audio transcripts,…
Backs up user libraries and all their contents (external video excluded). This skill can also be useful when you need to restore a library.
$ npx -y skills add barefootford/buttercut --skill backup-library --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/backup-libraryContext preview
The summary Claude sees to decide when to auto-load this skill.
Backs up user libraries and all their contents (external video excluded). This skill can also be useful when you need to restore a library.
name: backup-library description: Backs up user libraries and all their contents (external video excluded). This skill can also be useful when you need to restore a library.
Backups default to `~/Documents/buttercut-video-editor-backups`. Each library gets its own subdirectory there, and each run drops a timestamped archive of just that one library — so adding a new clip to one library only writes that library's archive, not a full duplicate of everything.
~/Documents/buttercut-video-editor-backups/
wedding/
wedding_20260520_140000.aar
programmer-story-vlog/
programmer-story-vlog_20260520_140000.aarRead `backups_dir` from `libraries/settings.yaml`. If the key is missing, ask the user with `AskUserQuestion` whether to use the default (`~/Documents/buttercut-video-editor-backups`, recommended) or a custom folder, and save the answer to `libraries/settings.yaml` under `backups_dir`. If `libraries/settings.yaml` doesn't exist yet, create it from `templates/settings_template.yaml` first.
When invoked from another skill that must stay non-interactive (e.g. `process-library` auto-backup) and `backups_dir` isn't set, skip the prompt and use the default — the user can change it later.
Default to backing up just the library you've been working on — that's almost always what "run a backup" means. Only back up everything when the user explicitly asks for "all libraries" or you're doing a one-time cleanup pass.
# Back up the one library you just touched (the usual case) ruby lib/buttercut/backup_libraries.rb --library <library-name> # Back up every library (only when the user explicitly asks) ruby lib/buttercut/backup_libraries.rb
The script reads `backups_dir` from `libraries/settings.yaml` (falling back to the default). Pass `--backups-dir <path>` to override for one run.
Apple Archive (`.aar`) is used when the macOS `aa` CLI is available — hardware-accelerated on Apple Silicon, Finder handles double-click extract. Falls back to `.zip` otherwise — on Windows the zip is written with the built-in System32 `tar.exe` (or PowerShell) since there's no `zip` CLI; the output is a normal double-clickable .zip either way.
After a successful `backup_all` run, the script removes the legacy in-project `backups/` directory (the old single-archive layout) if it still exists and the resolved `backups_dir` is somewhere else. Per-library runs leave it alone.
Extract the per-library archive back into `libraries/`:
# Apple Archive (macOS) — restores into libraries/<library-name>/ aa extract -i ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.aar -d libraries/<library> # Zip on macOS/Linux — already contains the <library>/ folder unzip ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.zip -d libraries/ # Zip on Windows (Git Bash) — System32's bsdtar reads zip; plain `tar` (GNU) can't /c/Windows/System32/tar.exe -xf ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.zip -C libraries/
This is the source code for the core ButterCut XML generator and video editing agent. If you love or hate Docker, have opinions on types, and have a favorite text editor, this is the spot for you.
Internal sub-procedure (not a standalone entry point) — the shared footage-analysis pipeline that produces audio transcripts,…
The ButterCut home menu — welcome the user back, then ask what they'd like to do (start a new cut, add footage to a library, a…
The ButterCut home menu — welcome the user back, then ask what they'd like to do (start a new cut, add footage to a library, a…
Builds a contact sheet from a video clip — evenly spaced frames laid out in a single grid image, each with its hh:mm:ss timestamp…
Create a new ButterCut library. Gather library info (name, footage location, language, transcript proofreading) and scaffold the…
Build a cut from a library — scene, selects, roughcut, custom task, or an edit from a written script. Starts by asking what kind…