krypt
Cross-platform dotfiles manager. Rust binary. Config-driven.
A vault for your dotfiles — clone, deploy, and keep in sync across Linux, macOS, and Windows. Part of the kryptic.sh suite.
What it does
- Single binary manages dotfiles end-to-end on Linux / macOS / Windows.
- Replaces
stowwith copy-based deploy + manifest-tracked drift detection. - Replaces ad-hoc bash orchestrators (
.update/.setup) via a declarative.krypt.tomlschema and a step runner with predicate gating. - Interactive first-run wizard via
[prompts.*]blocks. - Cross-distro package install abstraction (pacman, paru, apt, dnf, brew, scoop, winget).
- Post-update lifecycle hooks with
command_exists:/platform:/env:/file_exists:predicates. - Generic
krypt <group> <name>dispatcher — any[[command]]entry in.krypt.tomlis reachable as a subcommand without binary changes.
Install
Every channel installs a binary named krypt on your $PATH.
The
kryptcrate name on crates.io is held by an unrelated 6-year-stale project — we publish the bin askrypt-clifor now. If/when the name transfers (see #37),cargo install kryptwill become the canonical install command.
Quickstart
Useful subcommands:
| Command | Effect |
|---|---|
krypt validate |
parse .krypt.toml, report schema errors |
krypt diff |
show staged vs deployed differences |
krypt adopt |
pull a hand-edited file back into the repo |
krypt unlink / relink |
reverse / refresh symlinks |
krypt notify <title> <body> |
platform-correct desktop notification |
krypt menu |
list [[command]] group = "menu" entries |
krypt menu <name> |
run a menu's steps |
krypt <group> <name> |
generic dispatcher for any group |
krypt battery {report,log,clear} |
built-in battery state utility |
Migrating from stow + bash
If you have an existing stow-based dotfiles repo with .update / .setup bash
scripts and you want to convert it: see
docs/migrating-from-bash.md. Step-by-step
walkthrough with the conceptual mapping (stow → [[link]], .update →
krypt update, rofi launcher scripts → [[command]] entries, etc.).
Worked example: mxaddict/dotfiles — Arch + Hyprland, ~70 symlinks, ~30 commands, ~10 post-update hooks.
Architecture
Four-crate Cargo workspace:
| Crate | Role |
|---|---|
krypt-cli |
Binary (krypt) — clap dispatch, thin |
krypt-core |
Engine: schema, resolver, copy engine, manifest, runner, dispatch, predicate, hooks, notify, battery |
krypt-pkg |
Package manager abstraction (pacman, apt, brew, scoop, winget, dnf) |
krypt-platform |
OS-specific abstractions (cfg-gated) |
Status
- v0.2.0 — Phase 2 wrap. Step runner + predicates + notify + post-update
hooks + generic dispatcher + built-in
krypt battery. See CHANGELOG.md. - Roadmap & open work: issues.
License
MIT. See LICENSE.