OpenClip is a lightweight, hybrid Go/C++ screen recording tool, inspired by apps like Medal.tv and ShadowPlay, but fully open-source and built to be transparent and extensible.
It's being built as a cross-platform desktop tool with native hotkey support, circular buffer recording via FFmpeg, and eventually, native game-aware and audio-aware recording.
This is a work-in-progress, not production-ready project, but already functional and designed with clarity and simplicity in mind.
Linux and macOS is currently not supported, but is planned for future releases.
Right now it's in early development. Here's what's working and what's coming next:
- Config file auto-creation + YAML parsing
- Custom logger (stdout + file with log level)
- FFmpeg-based circular buffer with segment recording
- Hotkey detection on Windows
- Clip saving via hotkey
- Initial audio capture (WASAPI on Windows)
- Game/process detection and smart folder naming
- Save clips into game-specific subfolders (e.g.,
./output/Strinova/clip-1234.mp4) - Window-specific FFmpeg capture (targeting active game window)
- Native Windows video capture (DirectX hooking)
- Per-process audio capture via WASAPI
- Replace FFmpeg with native DLLs for performance
- Basic GUI for configuration and browsing
- Support for other operating systems (Linux (X11/Wayland), macOS)
We're building this in small, stable chunks. Each release aims to be minimal but complete.
| Version | Goal | Status |
|---|---|---|
| v0.1 | FFmpeg-based CLI clipper | ✅ Done |
| v0.2 | Game-aware folders + audio proto | 🚧 In progress |
| v0.3 | Native capture PoC (Windows) | ⏳ Planned |
| v1.0 | Full native pipeline + GUI | 🔮 One day maybe |
OpenClip is a hybrid Go/C++ project. To build it from source, you will need both the Go toolchain and a C++ compiler for the native audio capture module.
- Go: Version 1.24 or later.
- Visual Studio 2022 (or later): You must have the "Desktop development with C++" workload installed. This provides the MSVC compiler, Windows SDK, and build tools needed for the native DLL.
- FFmpeg: (For the current capture backend) The full build from Gyan.dev is recommended.
-
Clone the repository:
git clone https://github.com/Feinq/OpenClip.git cd OpenClip -
Compile the Native DLL:
- Open
native/OpenClipNative/OpenClipNative.slnin Visual Studio. - Set the build configuration to Release and the platform to x64.
- Build the solution (
Build -> Build Solution). This will create theOpenClipNative.dllfile insidenative/OpenClipNative/x64/Release/.
- Open
-
Build the Go Application: You can now run the included PowerShell build script, which will copy all the necessary files into a clean
builddirectory..\build.ps1
Or you can build manually, but you will have to make sure you have a copy of the
OpenClipNative.dllin the directory the executable is present in.go build -o openclip.exe .\cmd\openclip\
-
Run the Application:
cd build .\openclip.exe
OpenClip is licensed under the MIT License. Feel free to use, modify, and distribute it with attribution.
Contributions are very welcome! Whether it's bug reports, feature requests, or code improvements, please open an issue or submit a pull request. Make sure to follow the existing code style and include tests where appropriate.