Skip to content
namiciLabby pentry
Desktop Apps

ClipForge

namiciLab — in-house product

Status: In development at v0.1.0. Milestone 1 — import, transcribe, detect, caption and export — runs end to end.

Desktop app that turns long-form video into short vertical clips — transcribe it, let an LLM pick the moments, reframe to the speaker, burn in captions, export.

The ClipForge editor: a video preview with a drag-to-reframe box, a panel of detected clips each with a timecode and a score, a live transcript alongside, and a waveform timeline across the foot of the window.

ClipForge turns a long recording into the short vertical clips that TikTok, YouTube Shorts and Reels want. Import a video, transcribe it, let a language model find the moments worth cutting, reframe them to follow whoever is speaking, burn in animated captions, and export the batch.

The challenge

Every stage of that pipeline is slow, and most of them can fail. Transcribing ninety minutes of audio, asking a model to judge which passages are worth clipping, tracking a speaker across a frame, and encoding a dozen exports are all minutes-long jobs against third-party tools that go down, change their pricing, or turn out to be the wrong choice six months later. Do it naively and the window freezes on the first import — and every provider you picked becomes permanent.

The approach

The core of the application depends on nothing at all: no Electron, no Node built-ins, just entities and interfaces. Every capability with more than one plausible implementation sits behind one of those interfaces, which is why there are five interchangeable highlight providers and three transcription backends rather than a hard-wired vendor. The real payoff is the plugin system: a plugin is simply a bundle that registers more implementations of the ports that already exist, so no plugin needs a new extension point invented for it — and that is what keeps the plugin API small enough to stay stable between versions.

The build

Nothing expensive runs inline. Probing, transcription, detection, tracking and export all go through a job queue: the interface enqueues work, gets an id, and subscribes to progress. That indirection buys cooperative cancellation, priority scheduling, deduplication — twenty cards asking for the same thumbnail produce one ffmpeg process — and progress throttling, because forwarding every ffmpeg update across the process boundary drops more frames than the encode does. A single typed contract describes every message crossing that boundary, and the renderer is given nothing beyond it: no filesystem, no module loading, just the allow-listed channels. Prompt text lives in Markdown files rather than in code, so tuning the highest-leverage part of an AI product never requires a rebuild.

Built with

  • Electron

    Desktop shell, packaged for Windows, macOS and Linux

  • React + TypeScript

    Renderer interface, on Radix and Tailwind

  • ffmpeg

    Probing, filmstrips, filter graphs and encoding

  • Whisper

    Transcription — hosted, whisper.cpp or faster-whisper

  • OpenAI · Claude · Gemini · Ollama · Qwen

    Interchangeable highlight-detection providers

What the build covers

  • Video import with ffprobe metadata, thumbnails and filmstrips
  • Transcription across three interchangeable backends — hosted Whisper, whisper.cpp and faster-whisper
  • LLM highlight detection across five providers — OpenAI, Claude, Gemini, Ollama and Qwen — returning scored, ranked candidates
  • Automatic vertical reframing, driven by speaker tracking and a crop planner, with drag-to-adjust
  • Burned-in captions: style presets, cue line-breaking and ASS subtitle generation
  • Batch export through constructed ffmpeg filter graphs, with GPU encoder detection
  • Job queue giving cancellation, priority scheduling, deduplication and progress throttling
  • Plugin host with manifest validation, a sandboxed loader, a registry and a marketplace browse-and-install flow
  • Licensing with device activation and a 30-day offline grace window; secrets held in the OS keychain
  • User-overridable prompt templates, authored in Markdown rather than compiled in
  • Packaged for Windows, macOS and Linux

Got an Idea?

Let's shape it into something people love to use.