Skip to content
FyodorKrasniy edited this page May 26, 2026 · 2 revisions

Stagehand VJ

A local clip library and metadata manager built around the Resolume workflow. Stagehand keeps a fast searchable database of your VJ media on disk, lets you tag/rate/group clips, syncs that metadata back into the files via ExifTool so it travels with them, and pushes clips into Resolume with one keystroke.

Cross-platform: a Windows (WPF) build and a macOS (Avalonia) build, both with native bundled tools and Apple notarization on the Mac side.


Quick links


Installation

Windows

  1. Download StagehandVJ-Beta-Setup-*.exe from the latest beta release.
  2. Run it — the installer is per-user (writes under %LOCALAPPDATA%\Programs\Stagehand VJ Beta Demo\), no admin prompt.
  3. Launch from Start Menu or the desktop shortcut.

macOS

  1. Download the matching *-osx-arm64-drag-install-signed.zip (Apple Silicon) or *-osx-x64-drag-install-signed.zip (Intel).
  2. Double-click the .zip to extract Stagehand VJ Beta Demo.app.
  3. Drag the .app to /Applications.
  4. Double-click. Gatekeeper accepts it on first launch — the app is Apple Developer ID signed + notarized + stapled, so there's no right-click → Open dance.

No dependencies needed. ExifTool, FFmpeg, and FFprobe are bundled inside the installer/app at native arch. The .NET 8 runtime is also self-contained. Out-of-the-box.


First launch

On the very first launch you'll see two dialogs in sequence:

  1. Metadata Storage Mode — pick how Stagehand should write metadata back into your files (in-place, copy-and-overwrite, .xmp sidecar, or database-only). Default is "copy-and-overwrite" which is safest.
  2. License — paste a license key from your Stagehand VJ purchase email, or skip to keep using the demo. Click Buy Stagehand VJ to open www.stagehandvj.com if you haven't bought yet.

After that, drag a folder of clips into the main grid (or use File → Scan Folder...) and start tagging.


Core features

1. Library management

  • Drag-drop files or whole folders into the main grid
  • File → Add Files..., Scan Folder..., Import from Folder...
  • Auto-Tag from Folder Names — converts your existing folder structure into tags in one pass
  • Supported formats: .mov .mp4 .avi .webm .mkv .gif .png .jpg .jpeg .tiff .dxv .hap
  • Idle background refresh — newly imported clips appear automatically when you're not actively searching/selecting

2. Search & filter

  • Match modes: ALL terms must match or ANY term matches
  • Scopes: All fields / Filename / Tags / Collections / Metadata
  • Collection filter dropdown
  • Tag browser sidebar with click-to-filter and Ctrl-click to add/remove on selected clips
  • A–Z tag alphabet jump strip
  • Search suggestions based on existing vocabulary
  • Show / Hide Missing filter for orphaned database entries

3. Tagging

  • Multi-tag input parses comma-separated entries
  • Apply to one or many clips at once — selection is preserved after tagging so you can chain edits
  • Inline grid editing — type tags directly into the Tags column cell
  • Drag clips onto a tag in the sidebar to assign
  • Chip-based tag selector in the clip details panel for fast removal

4. Collections / Playlists

  • Group clips into named collections (sets, moods, shows, prep lists)
  • One clip can belong to many collections
  • Click an empty-target collection to filter the grid; click while clips are selected to assign
  • Ctrl-click for multi-collection assignment
  • Rename and delete (deletes the association, never the files)
  • Drag clips onto a collection row to add

5. Clip details

Per-clip editable fields beyond tags/collections:

  • Artist
  • Year Made
  • Year Acquired
  • Rating (0–5 stars, clickable directly in the grid)
  • Comments (free-form notes)

Multi-clip batch edits use a "tick what to apply" panel so you can't accidentally overwrite Artist on 50 clips when you only wanted to change Rating.

6. Live preview

  • FFmpeg-powered playback inline in the right panel
  • Double-click a clip to start playback
  • Loop toggle
  • Alpha/checkerboard mode for transparent clips
  • Buffering indicator so large 4K clips don't appear frozen
  • Frame thumbnail cache keyed by file hash

7. Clip grid

  • Sortable, resizable, reorderable columns
  • Right-click any column header OR View → Columns to toggle: Artist / Year Made / Year Acquired / Tags / Rating / Collections / Comments / Path
  • Per-row preview thumbnail with file-info line (codec, DXV quality, FPS, alpha presence, resolution)
  • Inline editing for Tags, Collections, Artist, Year, Rating, Comments
  • Star rating clickable directly in the grid
  • Mac shows a small marquee progress bar in each cell that's queued for thumbnail generation

8. Resolume integration

  • Live status indicator in the top-right (Connected / Disconnected)
  • Preferences → Resolume Connection... lets you set a non-default host/port with a Test button + persisted URL (covers same-machine, LAN, or non-8080 setups)
  • Load to Resolume panel:
    • Layer + Column targeting
    • Auto-advance column after load
    • Auto-trigger after load
    • Load to Next Empty Slot
    • Overwrite to Selected Slot
  • Paste Clips from Resolume (Ctrl+Shift+V) — drops the copied clip path into Stagehand
  • Open in Resolume Alley from any clip's context menu
  • F5 reconnects on the fly

9. Live mode + pinning

  • LIVE button strips the UI to a performance layout
  • Pin on Top keeps the window above Resolume
  • Designed for sitting on a strip beside Resolume during shows

10. File metadata sync (ExifTool)

The two-layer architecture — fast local DB + portable file metadata.

  • Export Metadata to Selected Files — DB → file (selected clips)
  • Export All Metadata to Files — DB → file (whole library)
  • Import Metadata from Selected Files — file → DB
  • Import Metadata from Entire Folder — bulk file → DB
  • Background queue: inline edits auto-sync to file metadata so you don't have to manually re-export every change
  • Cancel button on bulk writes — current file finishes (no half-written files), the rest of the queue is skipped
  • Configurable metadata storage mode (copy-and-overwrite / in-place / .xmp sidecar / database-only)

Fields mapped to standard metadata:

  • Tags → Windows Tags, XMP Subject, IPTC Keywords, QuickTime keywords
  • Rating → XMP rating, Microsoft shared rating, QuickTime rating, rating-percent
  • Artist → Artist / Creator / Windows contributing-artist fields
  • Year Made → XMP year-style fields
  • Year Acquired → Windows Media Created
  • Collections → Genre + supplemental category fields
  • Comment → structured backup (Tags: x, y | Artist: z | ...) for cross-tool compatibility

Import priority on read: Windows shell properties → native XMP/EXIF → Stagehand's structured comment fallback.

11. File safety

  • Startup file-location check detects clips moved/deleted outside Stagehand
  • Skip checking button on startup — for large libraries; clips are then verified lazily as you click them
  • Show/Hide Missing filter
  • Relink Missing File per row, Relink Files... / Relink Folder... for bulk
  • Smart cross-relink: when you relink one file, Stagehand checks the same folder for other missing files with matching names
  • Remove from Database — single popup with a "Also clear Stagehand metadata from file(s)" checkbox so you can scrub the file metadata Stagehand previously wrote in one action

12. Database provenance

The DB carries metadata about itself:

  • Created by (user name)
  • Created at timestamp
  • Last modified timestamp
  • File size
  • User comment (e.g. "Touring rig 2026 main library")

Shown at the top of the Database & Paths panel so when you swap DBs between machines you know exactly what you're loading.

13. Quality of life

  • Idle background refresh keeps the grid in sync after imports / metadata writes
  • Status bar shows live ExifTool + FFmpeg status (so you know if a feature is unavailable before you try it)
  • In-app warning dialogs instead of system error sounds, with suppress-and-remember
  • Unsuppress All Warnings preference to reset
  • Keyboard shortcuts: Ctrl+Enter load selected to Resolume, Ctrl+Shift+V paste from Resolume, F5 reconnect
  • Quick Start + User Guide bundled in the install, openable from Help menu

Licensing

Stagehand VJ uses Lemon Squeezy license keys. One-time purchase, lifetime use, no subscription.

  • 2 activations per license — covers a laptop + a backup rig
  • Deactivate from the app (Help → License...) to free a slot when retiring a machine
  • Buyer portal link inside the dialog for self-service activation management + key recovery
  • 7-day offline grace period after the last successful validation — your show won't break at a venue with no internet

Demo mode

Anyone can use Stagehand without buying first:

  • Up to 10 distinct files tagged/edited per app session
  • Single-file metadata export works
  • Full library import, preview, search, Resolume integration — none of the core flow is gated
  • Demo only caps the bulk export + bulk DB write
  • Restart for another trial batch, or activate to lift the cap entirely

Platform differences

Most features are at parity across Windows and Mac. The differences:

Feature Windows Mac
Apple notarization n/a ✅ Signed + stapled
Bundled tools ffmpeg.exe, ffprobe.exe, exiftool.exe in tools/ Same, per-arch Mach-O binaries
Settings location %LOCALAPPDATA%\StagehandVJ\ ~/Library/Application Support/StagehandVJ/
Settings survive reinstalls
App icon Embedded in .exe, used by Explorer/taskbar .icns in app bundle, used by Finder/Dock
Right-click column header → toggle columns
Lazy file-verification on Skip ❌ (Mac startup file check isn't separated yet)
Auto-sync background metadata queue ✅ (cancellable) ❌ (Mac writes are synchronous + cancellable in-loop)
Welcome demo notice on launch ✅ (suppressed after activation) ❌ (no welcome notice)

Roadmap & in-flight work

These items are on the list but not shipped yet (or only on one platform).

Mac

  • Lazy file-existence check on Skip — Windows has it; Mac's startup file-check needs the same separation between "verified missing" vs "not yet checked" so a Skip button can defer the work without losing accuracy.
  • Right-click on column header to toggle column visibility (Mac has the menu-bar View → Columns submenu, which works, but the right-click shortcut would match the Windows ergonomics).
  • Auto-sync background queue — Windows queues a file-metadata write after every inline edit / star click; Mac writes happen synchronously inline. Adding an async queue on Mac would mirror Windows.

Cross-platform

  • Library health audit — surface a single panel showing total clips, missing-files count, clips without thumbnails, files with no DB-side metadata. One-click "verify everything" pass.
  • Larger thumbnail variants — currently capped at one preview size; an option for "big tile" view would help when scrubbing a visual library.
  • Search history / saved searches — frequently-used filters as named entries.
  • Tag rename + merge — rename a tag everywhere it's used, or merge two tags into one.
  • Smart collections — collections defined by a query (e.g. "everything rated 5★ with tag X").

Distribution

  • Auto-update — currently new versions ship as fresh installers; an in-app updater would smooth out beta cycles.
  • Public release artifacts page — currently rolled per-beta in artifacts/; a hosted release flow with version history.

Reporting issues

Bug reports, feature requests, and suggestions are tracked through the website's contact / report-bugs form at www.stagehandvj.com.

For activation problems or license-related questions, use the buyer portal link in Help → License... inside the app.


Architecture (for contributors)

  • CoreCore/ project. Shared models, services, DB layer, ExifTool wrapper. Targets net8.0.
  • WPFWPF/ project. Windows-only UI. Targets net8.0-windows, uses WPF + Microsoft.Data.Sqlite. References Core via file-link Compile Include plus a ProjectReference to Core.
  • Stagehand.AvaloniaStagehand.Avalonia/ project. Cross-platform Avalonia 12 UI for macOS (and Linux experimentally). Same Core reference.
  • Core.Tests — minimal smoke tests for the cross-platform path layer.

Each platform project ships its own platform-specific bridge (e.g. WindowsPropertyWriter for Explorer's shell properties on Windows; the equivalent isn't applicable on Mac).

Build scripts under WPF/scripts/ and Stagehand.Avalonia/scripts/ produce:

  • Windows: a self-extracting IExpress installer (per-user install)
  • Mac: drag-install zips per arch, signed + notarized via the dedicated signing keychain on a build Mac

Versioning

Beta builds use the scheme stagehand-vj-beta-YYYY-MM-DD-rNN-shortdesc. Each rNN lands under artifacts/beta-rNN/ with the installer/.zip files plus signed Mac variants where applicable.