Installation
The fastest way is the install script — it detects your platform and downloads the right prebuilt binary:
curl -fsSL https://bergcraft.icu/install.sh | sh
This places bergcraft in ~/.local/bin (Linux/macOS) or %APPDATA%\bergcraft\bin (Windows). Add it to your PATH if it isn't already.
bergcraft --version to confirm it's v0.2.4.
Manual download
Prebuilt binaries are attached to each GitHub release:
bergcraft-v0.2.4-linux-x86_64.tar.gzbergcraft-v0.2.4-linux-aarch64.tar.gzbergcraft-v0.2.4-macos-x86_64.tar.gzbergcraft-v0.2.4-macos-aarch64.tar.gz(Apple Silicon)bergcraft-v0.2.4-windows-x86_64.zip
Build from source
You need Rust 1.78 or later. Clone and build:
git clone https://github.com/mkoerner/bergcraft
cd bergcraft
cargo build --release
# binary at: target/release/bergcraft
The WASM module requires wasm-pack:
cargo install wasm-pack
wasm-pack build --target web crates/bergcraft-wasm
CLI reference
apply
Apply a film profile to one or more images:
bergcraft apply --profile portra400 photo.tiff -o photo-graded.tiff
# Batch — apply to all TIFFs in a directory
bergcraft apply --profile provia100f ./raws/*.tiff --out-dir ./graded/
Key flags:
--profile <name>—portra400,provia100f,hp5plus--grain <0.0–2.0>— grain strength multiplier (default: 1.0)--halation <0.0–2.0>— halation bloom strength (default: 1.0)--no-grain— skip grain entirely--no-halation— skip halation--quality <1–100>— JPEG output quality (default: 90)--format tiff|jpeg|webp— output format (default: same as input)-o, --out <path>— single output path--out-dir <dir>— output directory for batch mode
profiles
List available profiles and their parameters:
bergcraft profiles list
bergcraft profiles show portra400
inspect
Print image metadata without processing:
bergcraft inspect photo.tiff
Film profiles in depth
portra400
Measured from Kodak Portra 400 negatives scanned on a Noritsu HS-1800 at 4000 dpi, rated at box speed. The response curve is deliberately gentle in the highlights — you won't lose cloud detail. Shadows have a warm push toward amber. Grain variance is set at ISO 400 equivalent; use --grain 0.7 if you find it heavy for web output.
provia100f
Slide film profile based on Fuji Provia 100F transparency scans. Neutral colour balance in midtones, slight cyan push in shadows, very compressed grain at 100 ISO equivalent. If you shoot Fuji bodies with the Provia/Standard film simulation, this will feel familiar but with a more pronounced character in the greens.
hp5plus
Ilford HP5 Plus 400 in D-76 developer, measured at normal (N) development. Converts to B&W via a luminance-weighted RGB average, not a simple desaturate — the green channel is weighted slightly higher than the Rec.709 standard, which lifts foliage and skies more naturally. Grain is coarser than the colour profiles; --grain 0.6 brings it closer to a 200 ISO feel.
--profile-file ./my-profile.toml. See the custom profiles guide on GitHub for the schema.