Skip to content

Getting started

Install krites and cull your first shoot.

Install

krites ships as a single binary with the studio's web assets embedded at build time. Install it from the release archives, published for macOS and Linux on arm64 and x86_64.

Don't use go install

The studio UI is built by a go generate step and embedded into the binary. go install and a bare go build skip that step and embed only a placeholder, so the studio comes up empty. Use a release archive, or just build or just install, both of which run the generate step.

For the desktop studio experience, download Krites_<version>_arm64.dmg from the latest release, open it, and drag Krites into Applications. Then double-click Krites:

  • it starts the studio, opens your browser, and keeps running in the background;
  • click Krites again any time to reopen the studio (it reuses the one already running rather than starting a second);
  • use Shut down krites in the studio settings to stop it.

The app is signed and notarized with an Apple Developer ID, so it opens with no "unidentified developer" warning, and the ONNX runtime for the local ML features is bundled inside, so there is nothing else to install. Apple Silicon (arm64) only. Keep it current from inside the studio; see Update krites.

Quick install (macOS / Linux CLI)

Prefer the command line? The install script downloads the right archive for your OS/arch and drops the krites binary in ~/.local/bin:

curl -fsSL https://gitlab.com/phpboyscout/krites/-/raw/main/install.sh | bash

Manual install

Download the archive for your platform from the latest release (e.g. krites_Darwin_arm64.tar.gz), extract the binary, and put it on your PATH:

tar -xzf krites_Darwin_arm64.tar.gz krites
mv krites ~/.local/bin/

From source

With Go 1.27.1 or newer and just, clone the repo and build. Both recipes run the go generate step that embeds the studio:

just install   # installs to $GOPATH/bin
# or: just build   →   ./bin/krites

Then confirm it's on your PATH:

krites --help

First run: your configuration

There is nothing to set up first. The first krites command you run writes your configuration file (~/.krites/config.yaml) with the defaults and then carries on, and the macOS app does the same when it launches. krites init writes the same file on purpose, and from a terminal it also offers the optional GitLab and SSH key setup:

krites init

The file starts short, and that is expected. The wedding-default cull profile and the neutral look are built into krites, not written into the file: a threshold you have not changed takes its built-in value, and only the ones you change are stored. The configuration reference lists every threshold with its built-in default.

Running init again is safe. It never overwrites a setting you have changed, and krites init --clean is the explicit reset to the defaults. When krites self-updates it re-runs init for you, so the config stays current across upgrades.

Cull your first shoot

krites keeps no catalog of its own. It works on a shoot, a folder of originals plus a .krites/ directory beside them holding the analysis, the verdicts and the edit records. The originals are never modified; only export writes pixels.

1. Register a shoot from a folder of frames:

krites ingest ~/Pictures/smith-wedding

2. Judge it. This analyses every frame and gives each a keep, maybe or reject verdict with its reasons:

krites cull --shoot ~/Pictures/smith-wedding

3. Review in the studio, the primary surface. This serves a web UI on localhost only:

krites studio

The studio takes no --shoot flag. It opens onto a library of shoots and you pick one there; add the folder you just ingested with Browse… on the Shoots page.

Work the cull grid, confirm or override verdicts, straighten and crop the keepers, and remove the odd distraction. None of it touches the originals.

4. Export the keepers. This renders the chosen verdicts, with every edit baked in, into the shoot's export/ directory:

krites export --shoot ~/Pictures/smith-wedding

5. Write XMP sidecars for Lightroom. This is a separate step, because export renders pixels and does not write sidecars:

krites xmp write --shoot ~/Pictures/smith-wedding

That puts an .xmp beside each original carrying its verdict, crop and straighten angle, so importing the originals into Lightroom brings the cull with them.

Your originals are untouched throughout; undo anything with krites reset.

Next steps