Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

OptionDoes
-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.
--uninstallRemoves the binary it would install.
DEVSET_VERSIONThe environment’s way to say -v.
DEVSET_INSTALL_DIRThe environment’s way to say -b.
DEVSET_NO_ATTEST=1Skips 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 useInstall
misemise use -g github:atomix-labs/devset
cargo-binstallcargo binstall devset-cli
cargocargo 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 withUpgrade with
the installerthe same line again, for the latest; with -v <version>, for another
misemise upgrade github:atomix-labs/devset
cargo-binstallcargo binstall devset-cli
cargocargo 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 withUninstall with
the installerthe same line with sh -s -- --uninstall, and the same -b if you gave one
misemise unuse -g github:atomix-labs/devset
cargo-binstallcargo uninstall devset-cli
cargocargo 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.