by WeftCut
Free, open-source AI video editor for macOS, Windows and Linux — drive the whole timeline from any MCP client.
# Add to your Claude Code skills
git clone https://github.com/WeftCut/WeftCutLast scanned: 10/9/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@electron/get: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@shadcn/registry: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@ts-morph/common: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "app-builder-lib: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "braces: braces vulnerable to stack-exhaustion denial of service through deeply nested patterns",
"severity": "high"
},
{
"type": "npm-audit",
"message": "dmg-builder: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "electron-builder: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "electron-builder-squirrel-windows: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "fast-glob: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "global-agent: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "micromatch: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "roarr: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "shadcn: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "sprintf-js: sprintf-js vulnerable to denial of service through unbounded precision specifiers",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ts-morph: Vulnerability found",
"severity": "high"
}
],
"status": "WARNING",
"scannedAt": "2026-10-09T11:09:47.221Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how WeftCut compares with popular alternatives.
WeftCut is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by WeftCut. Free, open-source AI video editor for macOS, Windows and Linux — drive the whole timeline from any MCP client. It has 161 GitHub stars.
WeftCut returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/WeftCut/WeftCut" and add it to your Claude Code skills directory (see the Installation section above).
WeftCut is primarily written in TypeScript. It is open-source under WeftCut on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh WeftCut against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
[!NOTE] WeftCut is still under active development, so some features and UI/UX may change before v1.0.0. Join us to improve the project!

Most editors bolt AI on as a feature: a button that generates something, a sidebar that suggests a cut. WeftCut exposes the editor itself as a tool surface. A localhost MCP server publishes all editing tools — place, trim, split, restyle, keyframe, group, caption, mix, checkpoint — and whatever agent you already have open drives them. The intelligence lives outside the app: the installer bundles no model weights, and the local engines for speech and vision are an opt-in download when you want them.
None of that rides on a stripped-down editor. Everything an agent can reach, you can do by hand, in a full NLE: A/B-roll timeline, keyframes with a curve editor, effects, captions, a role-based audio mixer, and hardware-accelerated export.
[!NOTE]
We don't have a verified macOS installer yet, so allow it under System Settings → Privacy & Security → Open Anyway
Copy the prompt in settings into your client, and your agent is holding the editor.
dry_run) and find the collision before it touches your project.set_history_lock so a stray Ctrl-Z doesn't land in the middle of its work — and the lock, plus the reason it gave, is shown to you.For a longer run, an agent can call begin_agent_session and fold the UI down to preview, scrub, and a record of what it is doing:

A Motif is an on-screen element written as code — a real web page (HTML, CSS, SVG, canvas, WebGL, whatever you reach for) dropped on the timeline as a layer. It isn't a fixed preset: the author declares the knobs, and the inspector builds the form from that declaration, so seconds, label and accent below are editable in the app.
The one rule that makes it an editor feature instead of a screen recording: a Motif renders as a pure function of time. It never advances itself. The harness owns the clock and drives the page to each composition frame, so the same t always yields the same pixels — when you scrub, when you re-export, and in preview and export alike.
// The built-in Countdown's whole script, near enough verbatim — the rest of the
// file is the SVG ring it animates. `props` is whatever the manifest declares;
// `frame` runs once per composition frame and keeps no state of its own.
motif.define({
setup: async function (props, ctx) {
_label = props.label != null ? String(props.label) : "GO";
num.style.color = props.accent;
ring.style.stroke = props.accent;
ring.setAttribute("stroke-dasharray", C);
ring.animate([{ strokeDashoffset: 0 }, { strokeDashoffset: C }],
{ duration: ctx.duration * 1000, easing: "linear", fill: "both" });
},
frame: function (t, ctx) {
var n = Math.max(0, Math.ceil(ctx.duration - t));
num.textContent = n > 0 ? String(n) : _label;
},
});

Writing a web page is the thing coding agents are already best at — so an agent can author a brand-new overlay for your edit instead of picking one from a catalog. The authoring spec ships inside the app as an agent skill, so the model gets the contract without you pasting documentation.
Lower thirds, countdowns, karaoke text and animated title cards are the obvious uses. Anything you can build on a page is the actual limit.

Timeline — A/B-roll rows with filmstrips and waveforms, frame-accurate SMPTE editing, ripple delete that closes the gap behind it, linked A/V that trims as one clip, cross-track groups, and nested compositions.
Agent: move_layer · trim_layer · split_layer · ripple_delete_gap · create_link · create_group · move_layers_to_composition
Keyframes — animate any parameter, with bézier easing, a curve editor, tangent control, motion paths and extrapolation.
Agent: set_keyframe · update_keyframe · smooth_keyframes · set_extrapolation
Speech and captions — transcribe a clip and get editable caption layers packed onto your caption tracks; import SRT/VTT/ASS into the media pool and drop it where it starts. Transcription runs against a cloud provider, or entirely on your machine once you let the app fetch a local engine (whisper.cpp, FunASR) — or an agent can pull the raw audio out and run its own model. Text-to-speech for scratch voiceover.
Agent: transcribe_clip · extract_clip_audio · apply_transcripts · apply_subtitles · synthesize_speech
Audio — role-based mixing (dialogue / music / SFX / voiceover) with live per-role metering, gain, pan, fades and denoise. Pauses finds the dead air in a take and cuts it as one undoable edit, keeping a pad so speech still breathes.
Agent: detect_pauses · remove_pauses · set_role_gain · set_role_flags

Understanding the footage — shot-boundary detection with per-shot brightness, motion and sharpness, frame comparison, and vision-model descriptions of what a clip actually contains. An agent can cut on content, not just on timecode.
Agent: analyze_clip · auto_split_by_shot · describe_clip · compare_frames
Titles, effects and transitions — styled text layers with outlines, per-layer effect chains including chroma key with an eyedropper that picks from the live frame, and transitions between clips.
Agent: add_effect · update_effect · add_transition · update_transition
Export — H.264 / HEVC / AV1, hardware or software encoders, resolution / fps / quality controls, and streamed muxing.
Find anything — one Ctrl+K palette over commands, media, clips, captions and markers, search for whatever you want.

| Layer | Stack |
|---|---|
| Shell | Electron 44 · TypeScript 7 · electron-vite · Vite 8 · Node 24 |
| UI | React 19 · Zustand · Immer · Tailwind CSS v4 · Base UI · shadcn/ui · Dockview · lucide · i18next (en-US / zh-CN) · fuzzysort |
| Preview | PixiJS v8 · WebGPU / WebGL · WebCodecs VideoDecoder pool · mediabunny · own YUV→RGB shaders · Web Audio clock |
| Export | Worker + OffscreenCanvas · GPU YUV pack pass · PBO readback · rawvideo over IPC · native ffmpeg sink · WebCodecs encoder (pin) · stream-copy mux |
| Native core | Rust · napi-rs 3 · Tokio · imbl · serde · schemars · blake3 · reqwest · ffmpeg-sidecar |
| Native decode | @weftcut/native-decode · ffmpeg-next · software + GPU lanes · ` |