ketch documentation
Catch releases straight from GitHub.
ketch installs command-line tools and apps from GitHub releases on macOS, Linux, and Windows. It picks the release asset built for your machine, checks the checksum the project published, unpacks it into a versioned store, and links it onto your PATH.
19 pages from pyrlyn/ketch/docs at 4e43843, in development
- Install
curl -fsSL https://raw.githubusercontent.com/pyrlyn/ketch/main/install.sh | bash - First tool
ketch install BurntSushi/ripgrep - Lock
ketch lock - Reproduce
ketch sync
How it works
From install to first result.
-
Resolve
Point it at
owner/repo, a name from the registry, or an exact version.ketch whyexplains a resolution without installing.ketch install sharkdp/[email protected] -
Verify
Published SHA-256 sums are checked against what landed on disk.
require_checksumsrefuses anything that publishes none.ketch install --require-checksum rg -
Link
The payload is unpacked into a versioned store under
~/.ketchand linked onto yourPATH; an.appbundle goes to/Applications.ketch list -
Undo or reproduce
An upgrade keeps the previous version on disk;
ketch rollbackrelinks it without re-downloading.ketch lockandketch syncreproduce a machine.ketch rollback rg
One tree
Everything lives under ~/.ketch.
Versioned payloads in store/, links in bin/, a state.json recording what is installed, and a stats.db recording what happened. Nothing is written outside that tree except the .app bundles that belong in /Applications and the files you ask for, such as ./ketch.lock.
state.json says what is installed now; stats.db is the append-only other half, which is why ketch history rg still works after ketch uninstall rg.
~/.ketch/
├── store/ versioned payloads
├── bin/ links onto your PATH
├── state.json what is installed now
└── stats.db what happened, and when
Paths into the docs
Pick where to go next.
-
Start2 pages
-
Guides4 pages
- Manifests A manifest is the config for one package: where it comes from, which release asset to take, and what to expose once it is unpacked.
- Lockfile ketch.lock is one machine's set of tools, pinned to exact releases. Write it, commit it next to your dotfiles, and any other machine can reproduce the same set.
- Registry The registry is an ordinary GitHub repository. Every top-level folder is a package, and holds one ketch.toml describing it.
- Source plugins
-
Help1 page
-
More12 pages
- Команды Все команды ketch в одном месте: что делает каждая, какую форму принимает и один рабочий пример.
- Lock-файл ketch.lock — это набор утилит одной машины, закреплённых на точных релизах. Запишите его, закоммитьте рядом со своими dotfiles, и любая другая машина сможет воспроизвести тот же набор.
- Манифесты Манифест — это конфигурация одного пакета: откуда он берётся, какой ассет релиза брать и что выставлять наружу после распаковки.
- Плагины источников
- Реестр пакетов
- Устранение неполадок
- Команди
- Lock-файл
- Маніфести
- Плагіни джерел
- Реєстр пакетів
- Усунення несправностей
What you can install
Five ways to name a package.
| Reference | What it means |
|---|---|
BurntSushi/ripgrep | Any repository that publishes releases |
rg | A name ketch already knows from the registry |
sharkdp/[email protected] | An exact version |
--path ./mytool | A local binary, archive, symlink, or .app |
local:/abs/or/rel | The same thing, as a package ref |
Questions the docs answer
Good to know.
Can I install from GitLab or an internal server?
Yes. GitHub is built in; anything else is a source plugin — an executable named ketch-source-<scheme> that ketch runs with a subcommand and that answers with one JSON document. No recompile and no ketch release needed.
How do I set up a new machine the same way?
ketch lock writes ./ketch.lock from what is installed. Commit it next to your dotfiles; ketch sync makes another machine match it, and ketch lock --check tells you whether anything has drifted.
What is the registry?
An ordinary GitHub repository. Every top-level folder is a package and holds one ketch.toml describing it.
How do I remove ketch again?
ketch self uninstall removes every package ketch installed, the whole ~/.ketch tree and the PATH block it added. It lists what it is about to delete and asks first; --keep-packages removes only ketch.
Next steps
Read these first.
- Getting started Install ketch, install your first tool from a GitHub release, and see what a verified install prints.
- Commands Every ketch command in one place: what it does, the form it takes, and one working example.
- Manifests A manifest is the config for one package: where it comes from, which release asset to take, and what to expose once it is unpacked.