slop-review

An agent asks for a code review; a human gives one in a native window; the agent gets back the annotations and nothing else.

The slop-review window: commits on the left, a diff in the middle, the review being written on the right.
Commits and files on the left, the diff in the middle, the review you are writing on the right. It follows your desktop's appearance — this one is showing you yours.
A remark being written against a line of the diff.
A remark against one line. Only these travel back to the agent.
A misspelled word underlined in a remark, with suggestions offered.
Checked against your own dictionaries, through your own enchant.

Download

AppImage · x86_64

One file. Make it executable and run it — no install, no runtime, no webview. It carries its own difftastic; git, jj and your dictionaries stay yours. Needs glibc 2.39 or newer, which is Ubuntu 24.04, Debian 13 and anything since.

chmod +x slop-review-x86_64.AppImage
./slop-review-x86_64.AppImage

With nix

Try it without installing anything:

nix run --accept-flake-config gitlab:c0va23/slop-review/release

To install it, add the input and copy this into your NixOS configuration:

inputs.slop-review.url = "gitlab:c0va23/slop-review/release";

imports = [ inputs.slop-review.nixosModules.default ];
programs.slop-review = {
  enable = true;
  cache.enable = true;   # download builds instead of compiling them
};

With home-manager, both switches are in the home module, so nothing goes in the system configuration:

imports = [ inputs.slop-review.homeModules.default ];
programs.slop-review = {
  enable = true;
  cache.enable = true;
};

inputs only exists in a flake-based configuration. In a plain home.nix, name the flake yourself:

let
  slop-review = builtins.getFlake "gitlab:c0va23/slop-review/release";
in
{
  imports = [ slop-review.homeModules.default ];
  programs.slop-review = { enable = true; cache.enable = true; };
}

If it compiles anyway, you are not a trusted user: the daemon reads a user's substituters only for a user in trusted-users. That is nix's rule for every cache. Where it does not hold, put nixosModules.default with cache.enable in the system configuration instead.

cache.enable adds to the substituters you already have and takes itself back out when you turn it off. Leave it out and everything still works — you compile instead of downloading. The README has nix-darwin, machines with neither, and why --accept-flake-config is for trying this once rather than for setting nix up.

What it is for

Reviewing an agent's work in a terminal has two problems: the terminal, and the diff. The window is native — no webview, no browser engine, no multiplexer to be compatible with. And only the annotations travel back, so asking for a review on a large change costs a few hundred tokens instead of the patch.