Skip to main content
Building from source is useful when you want to test changes locally or work on the app itself. Requires Node.js 24 LTS and npm 11.19.0 or newer. npm install also downloads the pinned FFmpeg and FFprobe build into vendor/ffmpeg and checks its SHA-256; it is built from source in VideoCull-FFmpeg, which also publishes its complete corresponding source. If npm --version is below 11.19.0, run npm install --global npm@11.19.0 before npm ci.

Common commands

Notes

  • npm run test:ci is the normal local verification path.
  • Backend files under electron/ stay plain JavaScript with no build step. A file opts into type checking with // @ts-check and JSDoc types imported from src/types.ts; tsconfig.electron.json checks them.
  • npm ci installs the Electron runtime. Dependency install scripts are disabled for better-sqlite3 to avoid npm’s implicit native rebuild; its bundled binary is used instead.
  • npm run test:cache-native runs the cache tests inside Electron. better-sqlite3 ships prebuilt Node-API binaries, so no native rebuild or C++ build tools are needed.
  • Development Electron sessions use a separate userData folder so local settings and cache do not mix with the packaged app.
  • E2E runs use their own temporary userData directory and do not touch your normal app data.
  • The Store APPX disables filesystem write virtualization so it can share the normal VideoCull profile and user-selected AppData cache locations with the direct edition. This requires Microsoft’s restricted unvirtualizedResources capability.
Last modified on October 4, 2026