Configuration

From docs/CONFIGURATION.md at b5eedc6 View on GitHub

~/.ketch/config.toml, with environment variables taking precedence:

KeyEnvironmentDefault
apps_dirKETCH_APPS_DIR/Applications
github_tokenKETCH_GITHUB_TOKEN, GITHUB_TOKEN, GH_TOKENnone
prereleaseKETCH_PRERELEASEfalse
allow_emulationKETCH_ALLOW_EMULATIONtrue
link_appsKETCH_LINK_APPSfalse
require_checksumsKETCH_REQUIRE_CHECKSUMSfalse
strip_quarantineKETCH_STRIP_QUARANTINEtrue
auto_updateKETCH_AUTO_UPDATEtrue
emojiKETCH_EMOJItrue
registryKETCH_REGISTRYpyrlyn/ketch-registry
self_repoKETCH_SELF_REPOpyrlyn/ketch
jobsKETCH_JOBS4 (capped at 16)
log_levelKETCH_LOG_LEVELinfo
log_formatKETCH_LOG_FORMATtext
max_download_mibKETCH_MAX_DOWNLOAD_MIB4096

self_repo and registry set to the names these repositories had before they moved, listepo/ketch and listepo/ketch-registry, read as the pyrlyn ones; so do the old names in the state file and in lockfiles.

docs/config.schema.json is the file's JSON Schema, generated from the types ketch reads it into, for editors and linters.

To start over, ketch config reset writes config.toml with those defaults (after asking, unless --yes). The existing file is backed up beside itself as config.toml.bak-<unix-seconds>, unless it is missing or already matches a sibling backup:

ketch config reset          # ask, back up, write the defaults
ketch config reset --yes    # for scripts and CI

auto_update (default true) runs ketch update at the start of install and upgrade. Set it to false, or KETCH_AUTO_UPDATE=false, to skip the registry refresh.

emoji (default true) puts an icon in front of each status line on a terminal: 📦 install, ⏫ upgrade, 🧹 uninstall, ⏬ download, 🔗 link, ⏪ rollback, ✅ success, ❗ warning, ❌ error, 💡 note. Set it to false, or KETCH_EMOJI=0, or pass --no-emoji, to go without. Icons never reach a pipe, TERM=dumb, --json output or the log.

The root itself is KETCH_ROOT or --root; it cannot be set from the config file, because the file lives inside it. KETCH_GITHUB_API overrides the GitHub API base URL (for Enterprise); it cannot be set from the config file either. jobs and --jobs above 16 are clamped to 16.

max_download_mib is the largest single download ketch writes, in MiB. A download that announces more, or streams past it without saying, is stopped and leaves no file behind; raise it for a package that is genuinely larger.

A token is not required, but it raises GitHub's rate limit considerably.