Guide
Scotch runs from a clone of its repository, with mise installing the tools .mise/config.toml pins, the Python interpreter and uv among them. After installing mise, the commands below clone the repository, print the help of the scotch command, and report anything the clone still needs.
bash
git clone --filter=blob:none https://github.com/Jybbs/scotch.git
mise trust scotch
mise -C scotch install
cd scotch
scotch --help
mise doctor project--filter=blob:none leaves every earlier layout of the game store the history keeps out of the clone, downloading a file only when a checkout reaches it. Once cd runs, mise puts uv and the wrapper at .mise/bin/scotch on the path, even with the lines pasted together. The wrapper builds .venv from uv.lock through uv run --exact --locked on its first run, compiling the crate under rust/ with the Rust toolchain mise pins, so the package needs no install step of its own between mise install and the first command. mise doctor project reports each condition the clone needs beyond the pinned tools, beside the command that supplies a missing one.
A First Match
A fresh clone holds no games, so mise run data:fetch downloads the archives the store reads and mise run data:index builds the index from them. scotch match game then matches the first game of a Portable Game Notation (PGN) file. The demo game below matches a game Kasparov played, in the output that mise run docs:render writes from the index.
bash
scotch match game docs/public/games/demo.pgntext
Kasparov, Gary vs. Sosonko, Gennadi, Tilburg, 1981.??.??
Game 193 of https://www.pgnmentor.com/players/Kasparov.zip
Shares 43 positions, plies 0 to 42 of the submitted game and plies 0 to 42 of the stored game
Parts where the stored game played 22. Bc2The Commands gives each command's help, and The Store follows the fetch and the index, then the steps that add a source.