Installation.
Takes under a minute.
dotstate ships as a single Rust binary — about eight megabytes, no runtime dependencies. Pick whichever installation method you prefer; they all land at the same place.
Install script
The fastest path. Downloads the latest release and drops the binary into ~/.local/bin —
no sudo, no system paths touched. Falls back to a cargo install if no
prebuilt binary is available for your platform.
$ curl -fsSL https://dotstate.serkan.dev/install.sh | bash Homebrew
On macOS or Linux with Homebrew:
$ brew tap serkanyersen/dotstate
$ brew install dotstate
# or in one line:
$ brew install serkanyersen/dotstate/dotstate Cargo
If you have the Rust toolchain installed:
$ cargo install dotstate From source
Clone and build with the latest changes:
$ git clone https://github.com/serkanyersen/dotstate.git
$ cd dotstate
$ cargo install --path . Verify the install
Confirm the binary is available and print its version:
$ dotstate --version System requirements
- Operating system. macOS, Linux, or Windows.
- Git. Used for all repository operations.
- A git host account (optional). GitHub, GitLab, Bitbucket, or any self-hosted git. Not required for local-only use.
- Rust toolchain (optional). Only if you're building from source.
- A Nerd Font (recommended). Gives the TUI its best look, but not required.
Shell completions
dotstate can emit completions for your shell. Add one of these to your shell init file:
| Shell | Command |
|---|---|
| bash | source <(dotstate completions bash) |
| zsh | source <(dotstate completions zsh) |
| fish | dotstate completions fish | source |
Using oh-my-zsh, antigen, or prezto? These frameworks want the fpath approach — write the completion to~/.zsh/completions/_dotstateand add it to yourfpathbefore your framework loads.
Next
Run dotstate with no arguments to open the TUI and walk through first-time setup.
Or jump straight to the quick start.