What runs on Windows#
HydroClips 2.0.7 uses a .NET Windows host with a WebView2 interface. A bundled Node service owns configuration, the clip library, plugins and recording coordination. FFmpeg captures and exports video; a native audio helper supplies system and microphone samples.
| Component | Responsibility |
|---|---|
| HydroClips.exe | .NET window, tray, global shortcuts, dialogs and bridge transport. |
| WebView2 / renderer | React interface and clip playback. |
| bin/node.exe / backend.cjs | Serialized recording commands, library, plugin VM and local media service. |
| bin/ffmpeg.exe | Capture, segment files, MP4 export and thumbnails. |
| Native audio helper | Windows WASAPI capture and PCM mixing. |
The website provides downloads and documentation. Recording takes place in the desktop application.
Startup and process ownership#
The normal application uses a single-instance Windows mutex. The host starts the bundled Node process with redirected input, output and error streams, passes application paths, and loads the local renderer through the WebView2 virtual origin https://app.hydroclips.local.
WebView2 browser data lives in %LOCALAPPDATA%\HydroClips\WebView2. Configuration and plugins use the separate roaming profile described in native storage. The app ships its own Node and FFmpeg executables, so end users do not need a system Node installation.
Window, tray and capture visibility#
The host uses a borderless window. Its region follows the narrow sidebar and rounded open drawer, allowing the gaps around those surfaces to reveal the desktop. Alt+B shows or hides the interface; hiding it leaves the recording service active.
The normal host requests Windows capture exclusion for its window. The developer --diagnostics mode intentionally changes that behavior for interface inspection. Use normal mode for everyday recording. Closing through the tray invokes service shutdown before the host exits.
Where extensions belong#
Plugins execute in the Node service and receive the documented JavaScript context. They are neither native DLLs nor browser scripts. A plugin can render tab HTML, register actions and react to clip events, but it does not receive arbitrary host commands or a direct FFmpeg handle.
Changes to recording, Windows hooks or the native bridge require application-source changes. Begin plugin work with Your first plugin; begin native development with Build and validate the native app.
Implementation reference: native/Program.cs; src/native/backend.ts; src/native/recorder.ts; src/main/plugins/PluginManager.ts · native 2.0.7.