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 — builds are published for macOS and Linux (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 — a broken studio. Use a release archive or just build / 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 Shutdown 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 — 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.26.4 or newer and just, clone the repo and build — this runs 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: initialise your config

Run this once after installing, before anything else:

krites init

init writes your configuration file (~/.krites/config.yaml) and seeds a starting wedding-default cull profile and a neutral look. Every other command reads this file, so a fresh install will otherwise stop with "no configuration files found — please run init".

init is idempotent — re-run it any time; it won't overwrite settings you've changed (use krites init --clean to reset to defaults). When krites self-updates it re-runs init for you, so your config stays current across upgrades.

Packaged macOS app

The macOS app needs no krites init step — it ensures your config in-process at launch (before it starts the studio), so a fresh install and every upgrade are self-configuring with zero terminal steps. The manual krites init above is only for CLI installs.

Cull your first shoot

krites keeps no catalog of its own — it operates on a shoot: a directory of imported originals plus a .krites/ sidecar that holds the analysis, verdicts and edit records. Originals are immutable; only export ever writes pixels.

1. Register a shoot from a folder of frames:

krites ingest ~/Pictures/smith-wedding

2. Judge it — analyse every frame and assign a keep / maybe / reject verdict with reasons:

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

3. Review in the studio — the primary surface. This opens a local, localhost-only web UI over the same shoot files:

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

Work the cull grid, confirm or override verdicts, straighten/crop/develop the keepers, and remove the odd distraction — all non-destructively.

4. Export the keepers — render the chosen verdict set (with every edit baked in) into the shoot's export/ directory, writing XMP sidecars for Lightroom:

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

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

Next steps