Skip to content

Releases: fignupafya/Clippycap

v0.5.0 — Companion-file Linkers

03 Jun 20:09

Choose a tag to compare

Attach companion files — TF2 demos, screenplay docs, transcripts, RAWs, anything — to your clips by a rule you define, and find them again in one click. A clip's detail view gains a Linked files panel (Reveal / Open / your own "Open with" programs); a new Linkers page lets you build rules from presets or from scratch with a live preview.

This is a general, domain-neutral system — a TF2 player attaching demos and a film editor pairing takes to screenplay .docx are the same feature.

How it works

Each linker is an Extract → Transform → Join → Resolve rule:

  • Read each side (clip and file) into typed values — from the file name (a %name% template), file dates, or metadata.
  • Transform those values with no-code steps (split, add, lowercase, read-as-date, combine…) — so 012 matches 12, or "demo seq = clip seq + 1" just works.
  • Match with plain-language conditions (equals / within N seconds / the file was recording when the clip happened / fuzzy text…).
  • Resolve globally: keep all, best-per-clip, an optimal 1:1 pairing, a quota, etc. — with manual pin/exclude overrides that survive every re-run.

Three starter presets ship: Game demo (by recording time), Sidecar document (by number in the name), Any file recorded at the same time.

Links are automatic — when a scan adds new clips, the enabled linkers re-run and attach their files with no action from you (and again on window focus, if you turn that on).

Notes

  • Companion files are never opened automatically — only when you click Reveal/Open. "Open with" runs a program you configure (path passed as a single argument, no shell).
  • A missing target drive never wipes your links; a vanished file is flagged, not deleted.
  • The whole matching engine is covered by an extensive test suite (filters, every resolution strategy, the global-optimum assignment vs brute force, unicode/spaces in names, and a large edge-case catalog).

Downloads

  • Clippycap-Setup.exe — installer (~104 MB). Bundles ffmpeg + offers the Edge WebView2 Runtime if missing.
  • Clippycap-Portable.exe — one-file build (~20 MB). Downloads ffmpeg on first run.

v0.4.x users get this via the in-app update prompt.

v0.4.1 — bulk editor + selection-checkbox UX

30 May 12:32

Choose a tag to compare

First patch on the v0.4.0 line — rolls up three user-reported regressions on the asset card plus the bulk editor's new Categories tab.

If you're on v0.4.0, the in-app update prompt will offer this automatically. (This release is also the first end-to-end test of that updater.)

Fixes

  • Asset card: 'new' badge no longer eats the selection checkbox. On clips with the new badge the badge and the selection box both sat at the top-left and the badge won the click, forcing you to open the clip first to dismiss the badge before you could tick the box. The badge is now in the top-right corner.
  • Larger selection hit-target. The visible checkbox stays 18×18 but its clickable area is now 32×32 — the padding around the mark is invisible, so there's no visual change beyond a slightly nicer hover state. No more pinpoint accuracy required.
  • Bulk editor: assign Categories too, not just tags. The bulk-tag modal is now a bulk tags + categories editor with a Tags / Categories tab and a shared Add-Remove / Replace mode. Each tab has its own staged changes — switching tabs preserves them — and Apply only writes through to a tab you actually touched, so Replace mode on Tags can never wipe direct-category memberships on a Categories tab you never visited. Pending-changes dot on the inactive tab shows queued work.

Updater

  • v0.4.0 → v0.4.1 is the first real run of the in-place update flow added in v0.4.0. Installed builds get Inno's /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS path; portable builds get the Windows rename-and-respawn trick. The single-instance lock now retries for ~2.5 s so the post-swap process can't race itself.

Reminder

  • Categories show clips that are directly in the category or that carry a tag whose group is the category — so bulk-adding a tag in a category still shows up on that category page. The new bulk-categorize button is for the direct membership only.

Downloads

  • Clippycap-Setup.exe — installer (~104 MB). Bundles ffmpeg + offers to install the Edge WebView2 Runtime if missing.
  • Clippycap-Portable.exe — one-file build (~20 MB). Downloads ffmpeg on first run.

Clippycap v0.3.0

30 May 09:45

Choose a tag to compare

✨ What's new since v0.2.0

The big theme of this release: tag categories. The flat-tag list grew unmanageable once you started naming opponents, maps, or anything else open-ended; this release introduces a whole organisation layer on top of tags — opt-in, backwards-compatible, and built so the rest of the app gets out of the way unless you ask for it.

Tag categories

  • User-defined categories for tags. Make a "Players" category, an "Events" category, a "Maps" one — whatever dimensions make sense for your library. Nothing is hardcoded; the concept stays invisible until you create one.
  • Nesting: a category can sit under another (e.g. a per-player category nested inside a "Players" umbrella), arbitrarily deep. Deleting a parent promotes its children to top-level, never destroys them.
  • Editable category pages (opt-in via a has_page toggle): each gets its own page with an autosaving notes write-up + a directory of its sub-categories + the tags inside it. The library grid below is automatically filtered to that category, so the page is "this category's view" (notes + clips, together).
  • Sidebar Categories navigator + a unified Filters tree: every category is reachable from the left menu, including empty ones — clicking opens its page (and filters the library to it); a small ↗ also opens the page from inside the tag grouping.

Direct clip ↔ category membership

  • A clip can now belong to a category without needing a tag — assign it directly via the small 📁+ button in the clip detail's right panel (top). Solid badge = direct membership (click × to remove); faint badge = derived from a tag (remove the tag to remove). The picker also toggles direct memberships on/off.
  • A clip's effective categories = direct memberships ∪ each tag's category ∪ all ancestors. Filtering by a category therefore catches clips that are directly in it OR carry a tag in its subtree — direct-only assignments are no longer invisible.

Tag pages (dossier)

  • A tag can also opt into its own page (has_page): an autosaving notes body (markdown + @clip / @clip#note mentions) on top of the grid filtered to that tag. Useful for evaluating a specific opponent, gear configuration, anything you want a per-tag write-up about.

Redesigned clip tag picker

  • Search-first: type to fuzzy-filter; Enter applies the best match, or creates the tag on the fly if nothing matches (seeded colour by name). Esc clears.
  • Every tag shows its colour on its left edge — even unselected ones — so the picker is scannable, not a wall of grey chips.
  • Selected tags still sit in their own row on top, unchanged.
  • Tags are grouped under their category in the picker, with a sub-header per category; 0 categories ⇒ a plain flat list as before.

Filtering, polished

  • Multi-select categories in the library — pick more than one and the grid shows clips in any of them (OR within categories).
  • Tag filter + category filter combine as AND across dimensions: "in Players AND tagged kill" is just selecting both.
  • Status bar shows each active filter dimension with its own × clear (tags / categories), so you can drop one without losing the other.
  • Saved views now capture the full filter set — tag selection, category selection, folder filter, quick view, search text and sort — so reopening one rebuilds exactly the state you saved.

Tag manager enhancements

  • A Categories section (create / delete / page-toggle, with a parent dropdown for nesting on create).
  • The tag create/edit form gains a category dropdown + a "give this tag its own page" toggle + an inline notes editor for tag pages.
  • Tag rows show a small category badge + a 📄 marker when a tag has its own page.

Heads-up for existing v0.2.0 users

Run Clippycap-Setup.exe — it's an in-place upgrade (same install dir, same %APPDATA%\Clippycap\). Your notes, tags, references, sources, and saved views are preserved. New schema migrations (v8–v10) run automatically on first launch and are forward-only + additive — nothing existing is removed or rewritten.

Downloads

Both are standalone Windows 64-bit builds; no Python or other prerequisites:

  • Clippycap-Setup.exe — installer (~104 MB). Bundles a static FFmpeg/FFprobe so trimming + thumbnails work fully offline out of the box. Per-user install (no admin / UAC), Start-menu shortcut, uninstaller. Offers to install the Edge WebView2 runtime if it's missing.
  • Clippycap-Portable.exe — single self-contained exe (~20 MB). Nothing to install — download and run. FFmpeg isn't bundled (the app offers to download it on first run; you can decline and keep using the client-side thumbnail fallback).

User data — the SQLite library, thumbnails, tag images, logs, local.toml — lives at %APPDATA%\Clippycap\ and is shared between the two builds. Uninstalling never touches it.

Clippycap v0.2.0

23 May 11:41

Choose a tag to compare

✨ What's new since v0.1.0

Features

  • Folder view in the sidebar. Browse your library by source-folder structure and filter the grid down to one folder (and its subfolders) with a click.
  • Folder-scoped bulk operations. Pick a folder, select "all matching" (or just the visible cards), and tag / retag / delete the whole batch.
  • Dual-mode bulk-tag editor. Two tabs:
    • Add / Remove (diff)+ adds a tag to clips that don't have it, removes it; the rest of each clip's tags stay untouched.
    • Replace — overwrite each selected clip's tag set with exactly what you check.
  • Native folder + file pickers wired into the desktop window. "+ Add source folder" and Settings → FFmpeg → use a specific path now open the real Windows Explorer dialog instead of a text input you had to type into.
  • Sticky progress toasts for edits & bulk ops. Trimming / cutting / extracting and bulk tag changes now show a non-dismissing progress toast (Trimming…Trimmed or the error), so you know it's working and what happened when it finished.

Fixes

  • Trim / cut / extract no longer shift timestamped notes a couple frames earlier. libx264's default B-frame settings combined with -avoid_negative_ts make_zero to bake a leading mp4 edit-list empty-edit into every cut, which Chromium/WebView2 honored on seek. The encoder now uses -bf 0 plus a setts bitstream filter, so the first kept frame sits at PTS = 0 exactly and a note seeks back to the same content you marked.
  • Timeline playhead now lines up with the yellow note marker. Clicking a note used to leave the white playhead a sliver to the right of the marker (a half-frame seek nudge we add for robustness against millisecond rounding bled into the visible position). The playhead now snaps to the displayed frame's exact PTS while paused.
  • Installer's WebView2 detection no longer fires a spurious "could not install" popup. The check now looks at both the 32-bit (WOW6432Node) and 64-bit views of HKLM plus HKCU, so the in-box Edge runtime on Windows 10 is recognised — and even if the bootstrapper exits non-zero, the installer re-probes and only complains if WebView2 is genuinely still missing.
  • Existing local.toml carries over cleanly across updates. If a future Clippycap version removes or renames a config key, your local.toml will no longer prevent the app from starting — the loader strips just the unknown keys (with a loud warning naming them) and continues; the rest of your overrides are preserved exactly.

Heads-up for existing v0.1.0 users

  • Run Clippycap-Setup.exe — it does an in-place upgrade (same install dir, same %APPDATA%\Clippycap\). Your notes, tags, references, sources, and saved views are preserved.
  • The default identity-hash strategy is now blake3-composite (size + head + tail; orders of magnitude faster to scan a large library). On first run after the update, a background IdentityUpgrader re-hashes existing assets onto the new format without touching asset.id — so every note, tag and reference (which reference the id, not the hash) stays attached to its clip. The upgrade is one-shot and resumes safely if interrupted.

Downloads

Both are standalone Windows 64-bit builds; no Python or other prerequisites:

  • Clippycap-Setup.exe — installer (~104 MB). Bundles a static FFmpeg/FFprobe so trimming + thumbnails work fully offline out of the box. Per-user install (no admin / UAC), Start-menu shortcut, uninstaller. Offers to install the Edge WebView2 runtime if it's actually missing.
  • Clippycap-Portable.exe — single self-contained exe (~20 MB). Nothing to install — download and run. FFmpeg isn't bundled (the app offers to download it on first run; you can decline and keep using the client-side thumbnail fallback).

User data — the SQLite library, thumbnails, tag images, logs, local.toml — lives at %APPDATA%\Clippycap\ and is shared between the two builds. Uninstalling never touches it.

Clippycap v0.1.0

13 May 19:40

Choose a tag to compare

First public release. See the README for what it does and how it works.

  • Clippycap-Setup.exe -- Windows installer with FFmpeg bundled (per-user, no admin needed).
  • Clippycap-Portable.exe -- single self-contained .exe; offers to download FFmpeg on first run.