Skip to content

YvanY0/guisu

Repository files navigation

Guisu (归宿)

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.

License: MIT Rust Status

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.

What is Guisu?

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: IntroductionInstallationGetting Started.

Quick Install (from source)

git clone https://github.com/YvanY0/guisu.git
cd guisu
cargo install --path crates/cli

Binary releases will be linked from the docs once they ship.

Shell completion

Load the completion script into your current shell with eval:

eval "$(guisu completion zsh)"   # zsh
eval "$(guisu completion bash)"  # bash
eval "$(guisu completion fish)"  # fish

This 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.

Documentation

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

Project Status

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.

Contributing

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.

Inspiration

Guisu is heavily inspired by chezmoi, with the goal of providing similar functionality in a Rust-native package.

License

MIT — see LICENSE.

About

Guisu (归宿, pronounced "gwee-soo") - A haven for your dotfiles, inspired by the Chinese phrase meaning "home" or "destination".

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages