A Rust-based dotfile manager. Inspired by chezmoi, "归宿" means "home" or "destination" — Guisu is a safe harbor for managing your configuration files across all your machines.
Early Development Notice: Guisu is currently in early development (pre-1.0). APIs and features are subject to change. Production use is not recommended yet.
A Rust-based dotfile manager. The full pitch, feature list, command reference, architecture deep-dive, and migration guide live in the project documentation.
Quick comparison with chezmoi, install instructions, and a 30-second tour are all in the docs. Reading order: Introduction → Installation → Getting Started.
git clone https://github.com/YvanY0/guisu.git
cd guisu
cargo install --path crates/cliBinary releases will be linked from the docs once they ship.
Load the completion script into your current shell with eval:
eval "$(guisu completion zsh)" # zsh
eval "$(guisu completion bash)" # bash
eval "$(guisu completion fish)" # fishThis works immediately but does not persist across shells. To make
the completion permanent, add the matching line to ~/.zshrc,
~/.bashrc, or ~/.config/fish/config.fish respectively.
The script is generated from the clap derive tree, so adding or removing subcommands does not require any manual maintenance.
Full documentation is at https://yvany0.github.io/guisu/ and lives in
docs/src/ of this repository.
- User Guide — file attributes, templates, encryption, vault, hooks, config
- Reference — every command, every template function, every config key
- Developer Guide — crate layout, three-state model, data flow, contributing
Implemented: file/dir/symlink management, minijinja templates, age encryption, git integration, interactive conflict resolution TUI, redb state tracking, parallel processing, platform-specific config, Bitwarden integration, hooks system, modify/remove file types.
Not yet: external resources, create-only files, password managers beyond Bitwarden, full template function parity with chezmoi. See the Roadmap for the milestone plan.
See Contributing. Please note the Documentation checklist in that guide: every PR that adds or changes a user-facing command, flag, config key, file-attribute convention, template function, or hook mode must update the relevant docs page in the same PR.
Guisu is heavily inspired by chezmoi, with the goal of providing similar functionality in a Rust-native package.
MIT — see LICENSE.