Install
devset is one static binary, for Linux on x86-64 and Arm, and for macOS on Apple silicon. The installer takes the latest release:
curl --proto '=https' --tlsv1.2 -fsSL https://atomix-labs.github.io/devset/install.sh | sh
It downloads the release’s archive for the machine, checks it against the
release’s checksum, and, when the GitHub CLI is installed, its build
attestation; then it puts devset in ~/.local/bin. It edits no shell file,
and says so when that directory is not on your PATH.
Options
| Option | Does |
|---|---|
-v <version> | Installs that release, as 0.5.3, rather than the latest. |
-b <dir> | Installs into <dir>, rather than $XDG_BIN_HOME or ~/.local/bin. |
--uninstall | Removes the binary it would install. |
DEVSET_VERSION | The environment’s way to say -v. |
DEVSET_INSTALL_DIR | The environment’s way to say -b. |
DEVSET_NO_ATTEST=1 | Skips the attestation check. |
Pass options after sh -s --:
curl --proto '=https' --tlsv1.2 -fsSL https://atomix-labs.github.io/devset/install.sh | sh -s -- -v 0.5.3 -b /usr/local/bin
Other Ways
| You use | Install |
|---|---|
| mise | mise use -g github:atomix-labs/devset |
| cargo-binstall | cargo binstall devset-cli |
| cargo | cargo install --locked devset-cli |
The package is devset-cli, and the binary devset; cargo install builds it
with Rust 1.98 or later. In a repository, pin devset as its other tools are: a
mise.toml naming "github:atomix-labs/devset" = "0.5.3" gives every machine
and CI job the same one, and moving the pin upgrades them all.
Upgrade
devset upgrades the way it was installed. devset --version says which release
runs, and the releases list
every one, each with what changed.
| You installed with | Upgrade with |
|---|---|
| the installer | the same line again, for the latest; with -v <version>, for another |
| mise | mise upgrade github:atomix-labs/devset |
| cargo-binstall | cargo binstall devset-cli |
| cargo | cargo install --locked devset-cli |
An upgrade changes no repository: each keeps its sources at the tags its
.devset/config.toml names until devset update moves them.
Uninstall
| You installed with | Uninstall with |
|---|---|
| the installer | the same line with sh -s -- --uninstall, and the same -b if you gave one |
| mise | mise unuse -g github:atomix-labs/devset |
| cargo-binstall | cargo uninstall devset-cli |
| cargo | cargo uninstall devset-cli |
curl --proto '=https' --tlsv1.2 -fsSL https://atomix-labs.github.io/devset/install.sh | sh -s -- --uninstall
Uninstalling leaves devset’s cache of fetched sources, under
$XDG_CACHE_HOME/devset/ or ~/.cache/devset/, which is safe to delete, and
any completion script you wrote. A repository devset manages keeps working
without it: Stop Using devset says what to delete there.
Checking a Download
Each release’s archives are on its
release page, each with a
.sha256 beside it, and each attested by the workflow that built it. To check
one by hand:
sha256sum -c devset-0.5.3-x86_64-unknown-linux-musl.tar.xz.sha256
gh attestation verify devset-0.5.3-x86_64-unknown-linux-musl.tar.xz --repo atomix-labs/devset
Shell Completions
Each release’s archive holds them, in completions/ beside the binary:
devset.bash, _devset for zsh, devset.fish, devset.elv and _devset.ps1.
devset completions <shell> prints the same script, for bash, elvish, fish,
PowerShell or zsh:
devset completions bash > ~/.local/share/bash-completion/completions/devset
devset completions zsh > ~/.zfunc/_devset
devset completions fish > ~/.config/fish/completions/devset.fish
What It Needs
Platforms and Rust Versions lists where the releases run and what builds devset from source.
A source in a git repository needs git on your PATH; a local one needs
nothing else. devset installs no other tool, and runs none a profile names.