LGUG2Z 76bae0630e build(nix): build and check for macOS and Windows
A flake that builds the recorder for macOS and cross-compiles it for Windows
from a Mac (xwin for the SDK, LLVM for the toolchain), with a dev shell for
each, and `nix flake check` running clippy for both targets, rustfmt, taplo,
cargo-deny and the tests.

The sources of komorebi for Mac and komorebi for Windows are flake inputs,
pinned in `flake.lock`: the recorder indexes them so that a line of komorebi's
log can be traced to the statement that wrote it, and the dev shells and every
derivation export where they are.
2026-10-27 22:22:56 -07:00

komorebi-recorder

Synchronized screen, log and trace capture for komorebi bug reproduction. komorebi-recorder records a bug while it happens, on macOS and on Windows: the screen, komorebi's log, every event komorebi sends its subscribers and the operating system's own trace, all on one clock, into a single session directory. It then answers, from that directory alone, what komorebi and the OS were doing at any second of the video and where in the video any log line or event is: for a person, with a window that plays the recording with everything that happened laid out on a timeline, and for an agent, with commands that print JSON.

Install

There are no releases yet: build it from source, below.

From source

The repository is a Nix flake. In a checkout:

nix develop                  # the toolchain and the pinned komorebi sources
cargo install --path komorebi-recorder --locked

nix build makes the macOS binary in ./result/bin, and nix build .#komorebi-recorder-windows cross-compiles komorebi-recorder.exe and, with it, komorebi-recorder-gui.exe from a Mac. nix run github:LGUG2Z/komorebi-recorder runs the latest commit without a checkout.

How it fits together

Two things vary independently: the host the recorder runs on (macOS or Windows) and the flavor of komorebi it records (komorebi for Mac or komorebi for Windows). A session records both, so one recorded on Windows can be investigated on a Mac. Every record in a session is stamped on one monotonic clock, and the files in it are never rewritten after they are written.

Crates

  • komorebi-recorder: the library, the komorebi-recorder command and, with the same code, the komorebi-recorder-gui executable (no console window on Windows).

Checks

just check runs formatting, clippy and the tests for macOS, clippy for Windows (the Windows code is type-checked from a Mac, not run), rustdoc with its warnings as errors for both hosts, and cargo deny. It needs nix develop. CI runs the same checks, builds both platforms and, for Windows, the installer.

Documentation

cargo doc --workspace --no-deps --open for the code. CONTRIBUTING.md says how to work on it.

License

Komorebi License 2.0.0.

S
Description
No description provided
Readme
47 MiB
0 Stars 1 Watchers 0 Forks
Latest
2026-02-14 21:52:25 +01:00
Languages
Rust 98.2%
Python 0.6%
AutoHotkey 0.5%
Nix 0.5%
Just 0.2%