Skip to content
nanox333Public

About

Pure Rust, local-first Medal.tv-inspired gameplay clip library prototype. No server required; editing is scoped to simple cuts.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

ClipCraft

A local-first Rust desktop app for instant game clips: record a replay buffer, save the moment with a hotkey, then play, search, trim and export your clips. It works fully offline. There is no account, server, telemetry, upload or share-link service, and everything you record stays on your computer.

Status: early release. Version 0.2.1 is the latest published release. The current source has Windows/AMD and Linux/X11 generated-capture evidence, while real games, other devices and Wayland remain incompletely tested. macOS capture is not implemented. See docs/gaps.md for current evidence and limits.

Automated checks run on Linux and Windows; they do not replace testing on real capture hardware.

Download

Download ClipCraft 0.2.1 as a Windows ClipCraft-Setup installer or a Linux x86_64 tarball. The command-line tool is available as a separate download. The Windows installer works for the current user and needs no administrator rights or account.

Check a download against SHA256SUMS.txt if you like. Downloads are not code-signed, so Windows SmartScreen may warn: choose More info, then Run anyway. ClipCraft can tell you when a newer version is published and install it for you (Settings → About); turn the automatic check off under Settings → General and it never goes online. See CHANGELOG.md for each release.

New profiles get a short setup for storage, capture, audio and shortcuts. Each hotkey action supports up to five shortcuts: use + in Settings → Hotkeys. Clip-length shortcuts give keys their own clip length, for example Shift + F8 for the last 2 minutes next to F8 for the whole replay. On Wayland, ClipCraft asks the desktop's Global Shortcuts portal to register keys. Settings → Hotkeys shows the desktop's assigned keys and offers an explicit, default-off keyboard-device fallback; see docs/linux.md for limitations and permissions.

What it does

  • Record and replay: capture a screen or game window into a bounded replay buffer and save the last moments with a global hotkey. Game-only mode waits until a recognized game is running and follows it to the window it actually draws in, even when a launcher starts the game process; if no window can be found it records the screen until one appears. The capture bar shows the available replay against the requested clip length and reports when buffered footage is cleared by a source or recording-stream change. Hover over it for the encoder, frame counts, output size, and audio-source status.
  • Encoding: hardware H.264 and H.265 on supported GPUs (Windows), or a built-in software H.264 encoder tuned for screen recording (desktop clips are about a third smaller than before). If the graphics-card encoder fails or is busy, recording continues on the processor and the card is tried again every 20 s or longer.
  • Audio: system sound and microphone, mixed or on separate tracks, with optional offline microphone noise suppression and a mic test.
  • Library: a searchable local clip library with favorites, collections and game labels. Rename a clip (F2) without losing its favorite, collections or game, and delete clips to the Recycle Bin from a right-click menu. A focused card opens with Enter and favorites with F.
  • Playback and editing: smooth playback, quick trims, small-file and GIF export, loudness evening, and a small sequence editor with text, fades and colour effects.
  • Desktop: searchable, categorized Settings; system tray (Windows); a "clip saved" pop-up that never takes focus from your game; optional Discord Rich Presence.
  • Bug reports: Settings → About lets you prepare and review a report locally, optionally add basic recording settings, and copy it. Open the GitHub form separately if you choose to share it.
  • Command line: clipcraft-cli runs the same commands as the app.

For a bug report without the desktop UI, pass JSON such as {"observed":"Clipping stopped","steps":"Press F8","include_settings":false} to clipcraft-cli bug-report on standard input. It prints the report locally and does not submit it.

Details and known limits for every feature are in docs/features.md.

Screenshots

ClipCraft 0.2.0 on Linux, shown with generated sample clips.

Clip library — browse, search, and send a clip to the editor.

ClipCraft's local clip library with three sample clips

Editor — arrange clips, split them on the timeline, and export the result.

ClipCraft's editor showing sample clips and a split timeline

Capture settings — choose a game or desktop source and configure recording.

ClipCraft's capture settings showing desktop recording options

Planned, not built

Windows/Linux/macOS game-only capture evidence, a low-copy GPU capture path, opt-in client-side encrypted backups, controller shortcuts and overlays. Voice/video calls, social feeds and sharing links are not planned. See the roadmap and backlog.

Privacy and design

The app, engine, capture, playback, CLI and tooling are Rust workspace crates, using pinned open-source FilmCraft crates for media. Captured media, settings, thumbnails and the library index stay on the device, and source clips are never overwritten by trim or export. FFmpeg is used only as an external test tool. Source boundaries are in docs/upstream-ports.md.

To recognize games, ClipCraft reads the list of running programs and Steam's local game-list files on your computer; nothing from them leaves the device. Steam's files are re-read only when a game is installed or removed (or on Refresh, or every 30 minutes). On Windows it finds Steam's folder from the registry, so Steam installed on another drive works too. Turn off Switch recording automatically in Settings → Games to stop both.

Build, run, and test

Install the pinned Rust toolchain with rustfmt and clippy, then install the license checker:

cargo install cargo-deny --version 0.20.2 --locked
cargo xtask ci
cargo run --package clipcraft

cargo xtask ci runs the same checks as GitHub Actions on Linux and Windows; tests clean their scratch folders with a retry so a finishing capture worker cannot make them flaky, and timing checks are tied to the behaviour they test (for example the post-roll length) instead of a tight wall clock, so a busy CI machine does not fail them. Run the Windows lint from Linux before pushing: cargo clippy --workspace --target x86_64-pc-windows-gnu --all-targets -- -D warnings.

Useful local CLI commands:

cargo run --package clipcraft-cli -- help
cargo run --package clipcraft-cli -- capture targets
cargo run --package clipcraft-cli -- capture record --seconds 30
cargo run --package clipcraft-cli -- library scan /path/to/clips
cargo run --package clipcraft-cli -- library probe /path/to/clip.mp4
cargo run --package clipcraft-cli -- library rename /path/to/clip.mp4 "Ace clutch"
cargo run --package clipcraft-cli -- clip trim input.mp4 output.mp4 2 8
cargo run --package clipcraft-cli -- clip export input.mp4 smaller.mp4 2 8 10
cargo run --package clipcraft-cli -- clip gif input.mp4 clip.gif 2 8
cargo run --package clipcraft-cli -- clip normalize input.mp4 even.mp4 0 30 -16
cargo run --package clipcraft-cli -- diagnose

The desktop app needs a graphical session and an available capture provider for recording. See docs/testing.md for focused test commands and platform evidence requirements. For compression, the last CLI argument is the estimated target in decimal MB. In the player, open Trim (T), choose an Export option, and save the new file beside the original. If the first encode comes out bigger than the target, it is encoded once more at a lower bitrate (and, for a big overshoot, a smaller picture) before anything is saved; the completion message and CLI JSON report the actual bytes and whether it was re-encoded (retried).

Project docs

Documentation is part of every implementation change. The PR gate requires changes under apps/, crates/, or tools/ to update both this README and docs/gaps.md; update the roadmap, backlog, architecture, and testing docs when their status or guidance changes.

About

Pure Rust, local-first Medal.tv-inspired gameplay clip library prototype. No server required; editing is scoped to simple cuts.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages