Skip to content

Repository files navigation

ClipDock

Find the right effect. Preview it in context. Drag it into your edit.

A fast, local desktop library for transition clips, video overlays, and sound effects.

Platform Local first Electron TypeScript

Features · Quick start · Workflow · Changelog · Architecture


ClipDock keeps reusable editing assets out of scattered folders and inside one visual, searchable library. Hover to preview an effect, press Space for a larger contextual preview, then drag the unchanged source file directly into your editor.

Important

ClipDock manages normal video and audio files—not plugins, presets, templates, MOGRTs, installers, or image sequences. It never modifies your source media and does not control your editor's timeline.

Why ClipDock?

Effect libraries grow quickly. Finding one transition or sound often means opening folders, guessing from filenames, and previewing files one by one. ClipDock turns that folder archive into a focused editing tool:

  • See the effect before using it. Transitions and overlays are rendered against local demo scenes; sounds get cached waveforms and optional spectrograms.
  • Stay inside your existing workflow. Drag one or multiple real media files into DaVinci Resolve, Adobe Premiere Pro, or another editor.
  • Organize without touching disk. Packs, Collections, Smart Collections, tags, and favorites live in ClipDock while source files stay where they are.
  • Work without an account. Everything—including metadata, search, and generated previews—runs locally.

Features

Feature What it does
Browse Scrubbable asset grid Maps horizontal pointer position to a muted cached preview while keeping large libraries virtualized.
Preview Contextual playback Shows transitions between demo clips, overlays over a neutral scene, and sounds as waveforms.
Find Bilingual SFX search Expands reviewed German/English sound terms locally, offers exact-only mode, and reads available UCS fields.
Reuse Recently and most used Records successful local drags so proven assets are easy to find again.
Compare Temporary shortlist Auditions up to six candidates in order without creating or changing a permanent Collection.
Deduplicate Exact-content review Finds byte-identical source files across packs and can hide redundant rows without touching media.
Organize Collections and saved views Groups assets manually or saves the current search, scope, filters, and sort as a dynamic Smart Collection.
Classify Automatic asset detection Recognizes common transition, overlay, and sound naming patterns; every result remains editable.
Inspect Media metadata Reads duration, resolution, FPS, codecs, audio properties, and detectable alpha channels with FFprobe.
Trim Non-destructive In / Out Prepares a frame-accurate video range for drag-and-drop without changing the source file.
Rotate Quarter-turn video edits Rotates clips left or right in 90° steps and prepares the result for native drag-and-drop.
Listen Waveform audition Scrubs sounds, sets non-destructive loops, and shares one persistent volume across every preview surface.
Poster Custom poster frames Uses the current video frame as a persistent card image without changing the source.
Language Deutsch / English Switches the complete interface instantly and remembers the local preference.
Deliver Native multi-file drag Resolves and validates real local paths in Electron's main process before starting the OS drag.
Recover Missing-media relink Points a moved pack at a new root while preserving favorites, tags, and Collections.
Sync Automatic pack watching Debounces external file changes and reconciles only affected paths while the app is running.

Workflow

1. Add a pack

Choose Add Pack and select a folder containing effects. The selected folder becomes one pack; its subfolders become browsable categories.

2. Find and preview

ClipDock scans supported media, stores metadata first, and generates previews in the background. While ClipDock is running, linked pack folders are watched for debounced additions, changes, moves, and removals; manual rescan remains available as a recovery action. Search expands a small, versioned German/English SFX dictionary such as whoosh, swoosh, and Wusch; the visible Exact switch disables that expansion. Available UCS CatID, category, and subcategory metadata participates in search and filtering without renaming source files. Save a useful result view as a Smart Collection to re-run the same criteria against the current library.

Use the card comparison action to place up to six temporary candidates in the session-only comparison tray. The tray auditions contextual video previews or original sound playback in insertion order, collapses over the grid without changing its size, and drags the active candidate through the normal validated drag path. Clear removes the entire temporary shortlist; Collections and source files are unaffected.

The Duplicates view groups files only when their complete SHA-256 source hashes match. Hashing is streamed through one persistent background worker and resumes after restart. Every copy keeps its pack and full source path visible; hiding a redundant copy changes only its SQLite visibility flag and can be undone from the same view.

3. Drag into the edit

For a video, open the centered editor above the asset grid to set optional In and Out points, rotate the frame in 90° steps, or use the current frame as the card's poster. Organizing controls stay visible on the left and file details on the right, without an internal editor scrollbar. The square contain preview keeps portrait and landscape footage fully visible. When the source has audio, the preview volume and mute controls apply immediately and persist locally. ClipDock renders the edit into its local cache; opaque footage becomes a high-quality H.264 MP4 and alpha footage becomes a ProRes 4444 MOV. Resetting returns the card to its original file.

Drag a card—or a multi-selection—into your editor. Cards with a prepared range or rotation drag the cached result; all other cards drag their original media:

Asset Typical timeline placement Context preview
Transition Between two normal video clips Demo A → transition clip → Demo B
Overlay On a video track above the footage Composited over a generated neutral scene
Sound On an audio track Waveform with original audio playback

For a black-background overlay, use a Screen/Add blend mode in the editor. Alpha-capable media is marked automatically when FFprobe can detect it.

Quick start

Requirements

  • Windows 10 or 11 for the currently tested platform
  • Node.js 22 and npm
  • Git

Run in development

git clone https://github.com/Pleko-script/clipdock.git
cd clipdock
npm install
npm run dev

Build the Windows app

npm run build:win

To verify a local checkout before contributing:

npm run lint
npm run typecheck
npm test
npm run build

Supported media

Type Extensions
Video .mp4, .mov, .mxf, .m4v, .mkv, .avi, .webm, .mpg, .mpeg, .ts, .mts, .m2ts
Audio .wav, .mp3, .aac, .m4a, .flac, .ogg

Format support does not guarantee that every codec inside a container is accepted by every editing application. ClipDock distinguishes Verified, Expected, and Unsupported compatibility instead of claiming universal support.

Keyboard workflow

Shortcut Action
/ Focus search
Arrow keys Move through assets
Space Open Quick Look
P on a focused card Start or stop its grid preview
F Toggle favorite
Esc Close Quick Look or stop playback
Ctrl/Cmd+A Select the loaded result page
Shift or Ctrl/Cmd + click Range or additive selection
+ / - Change thumbnail size

Local by design

ClipDock is deliberately offline and account-free:

  • Source files are referenced in place and are never moved, modified, or deleted.
  • SQLite data, generated previews, and non-destructive trimmed copies stay under Electron's local userData/clipdock-library directory.
  • There is no cloud synchronization, telemetry, remote logging, or AI generation.
  • The renderer has no direct file-system access. SQLite, FFmpeg, FFprobe, dialogs, shell actions, and native drag operations stay behind a typed preload bridge in the main process.
  • Context isolation, renderer sandboxing, disabled Node integration, and a constrained clipdock-media:// protocol reduce the renderer's privileges.

Architecture

React renderer
  └─ typed preload API
      └─ Electron main process
          ├─ SQLite asset store and search
          ├─ pack scanner and metadata analysis
          ├─ debounced linked-pack watchers
          ├─ persistent FFmpeg preview queue (max. 2 jobs)
          └─ validated native file drag

The interface uses React and TanStack Virtual. Electron owns all privileged operations. SQLite stores packs, assets, Collections, Smart Collection criteria, tags, and persistent preview and exact-hash jobs. FFprobe analyzes media; FFmpeg creates silent H.264 context previews, WebP thumbnails, and sound waveforms.

The visual and interaction system is documented in DESIGN.md.

Platform support

Platform / target Status
Windows 10/11 Primary development platform
DaVinci Resolve Native file drag implemented; practical format matrix still being expanded
Adobe Premiere Pro Native file drag implemented; practical format matrix still being expanded
macOS / Linux Build scripts exist, but these platforms are not currently validated

Long paths, spaces, and Unicode filenames are preserved by the native drag path. If an editor rejects a codec, transcode the source to a format supported by that editor; ClipDock intentionally does not modify it for you.

Project status

ClipDock is an early-stage local-first project. The current focus is a reliable Windows workflow for reusable transitions, overlays, and sounds.

Potential next steps:

  • Custom preview backgrounds
  • Better detection of black-background Screen/Add overlays
  • Exact duplicate and similar-effect detection
  • Portable pack metadata sidecars
  • A larger manually verified Resolve/Premiere compatibility matrix

Marketplace features, accounts, cloud sync, presets, templates, and editor plugins are intentionally out of scope.

Contributing

Bug reports and focused pull requests are welcome. Before opening a PR:

  1. Keep the product limited to real video and audio assets.
  2. Do not move, rewrite, or delete user source media.
  3. Run npm run lint, npm run typecheck, npm test, and npm run build.
  4. Describe editor, operating-system, format, codec, and path details for drag-related bugs.

Use GitHub Issues for bugs and feature discussions.


Local effects. Fast previews. Real files.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages