dotfile organization made easy
Caution
Please be careful when using this program as it is still not fully tested
fuxi is a CLI tool to help manage, create, and restore backups of your dotfiles using GitHub
Keeping track of dotfiles can be hard sometimes so why not automate most of the process
- git (should be configured with your Git provider, ex. Github)
cargo install fuxi-cliIf instalation fails on Windows, use the following command:
cargo install fuxi-cli --target x86_64-pc-windows-gnugit clone https://github.com/ImShyMike/fuxi.git
cd fuxi
cargo build --releaseeStart by creating a repository (can be private) and get it's local path.
fuxi init your_username/repo_name REPO_PATH_HEREfuxi profile create mainProfiles can be used to store separate dotfile configs.
fuxi path add ~/.wakatime.cfg ~/.zshrcfuxi backup -m "Update wakatime config" --pushfuxi save -m "Sync configuration"This is can be used after manual tweaks inside the backup repository.
fuxi apply latestReplace latest with a specific backup ID or commit hash as needed. Include --dryrun to preview the actions without modifying any files.
| Command | Purpose |
|---|---|
fuxi version |
Print the currently installed CLI version. |
fuxi config [-r] |
Show the config file path (config.toml under your OS config directory). Use -r for the raw path only. |
fuxi init |
Register the remote repository (username/repo) and the local folder that will store backups. Creates the folder and initializes Git if needed. |
fuxi profile list |
Display every profile and the paths mapped to it. |
fuxi profile create |
Create an empty profile. The first profile created becomes the active one automatically. |
fuxi profile switch |
Set the active profile. |
fuxi profile delete |
Remove a profile and its path list from the config. |
fuxi path list |
Show the paths tracked by the currently selected profile. |
fuxi path add |
Register one or more filesystem paths to track. Directories are copied recursively; files are copied one-to-one. |
fuxi path remove |
Stop tracking one or more paths. |
fuxi backup [-m |
Copy tracked paths into the repository under and optionally push the resulting commit to the configured remote. |
fuxi save [-m |
Commit pending repository changes and push them upstream. Use --force to skip the confirmation prompt. |
fuxi list |
Show the Git commit history for the backup repository. |
fuxi apply |
Fetch and pull the given backup, then copy the stored files back to their original locations. --dryrun prints the actions without making changes. |
This project is licensed under the AGPLv3