suiup
is a tool to install and manage different versions of CLI tools for working in the Sui ecosystem. It allows you to easily install and switch between different versions of sui
, mvr
, walrus
.
After installation, run suiup list
to find which binaries you can install. Check out the Installation to install and the Quick Start guide for how-to-use examples.
The Sui CLI has long been available through tools like Homebrew, Chocolatey, or cargo install, or by downloading binaries manually. But with Sui releasing updates every two weeks, developers often need to upgrade frequently or use a specific version (e.g., for devnet or debug builds). Switching between versions or installing non-package-managers builds is not as simple as we want it to be.
As new tools like mvr and walrus were introduced—without support from package managers—managing them became even harder due to manual installation steps.
suiup
solves this by offering a simple way to install and manage multiple CLI tools and their versions in the Sui ecosystem.
With suiup
, you can:
- Install specific versions of
sui
,mvr
, orwalrus
(with more tools coming soon) - Install from a branch in the repository to try unreleased features or fixes
- Get debug builds of
sui
(needed for commands likesui move test --coverage
) - List and switch between installed binaries for different networks (e.g., devnet vs mainnet)
- Simplify tool installation in CI environments
OS | Architecture | Status |
---|---|---|
Linux | x86_64 (amd64) | ✅ Supported |
Linux | aarch64 (ARM64) | ✅ Supported |
macOS | x86_64 (amd64) | ✅ Supported |
macOS | aarch64 (ARM64) | ✅ Supported |
Windows | x86_64 (amd64) | ✅ Supported |
Windows | aarch64 (ARM64) | Limited support (might or might not work) |
curl -sSfL https://raw.githubusercontent.com/Mystenlabs/suiup/main/install.sh | sh
cargo install --git https://github.com/Mystenlabs/suiup.git --locked
- Download the latest release from Releases.
- Unzip the downloaded file.
- Add the
suiup
binary to folder that is on yourPATH
environment variable, or add that folder to thePATH
. - (Optional) restart your terminal if you made changes to your
PATH
.
Path Ordering Matters
If you already have installed one of sui/mvr/walrus binaries before, you will need to make sure that you either remove those binaries
or set the PATH
to the /.local/bin
(MacOS/Linux or equivalent for Windows) before the PATH
where those binaries are installed.
It's recommended to read the whole quick start to familiarize yourself with the commands.
Tip
Pass the --yes (-y)
flag to skip confirmation prompts, thus accepting to updating the default binary to the one you are installing.
suiup install sui@testnet
suiup install sui@devnet # this will install the latest available devnet release
suiup install sui@testnet-1.40.1 # this will install the testnet v1.40.1 release
Tip
You can also use ==
or =
to specify a version: sui@testnet-1.44.2
is the same as sui==testnet-1.44.2
or sui=testnet-1.44.2
.
Note
You can just pass the @1.44.2
version instead of sui@testnet-1.44.2
or omit it altogether suiup install sui
, but you must remember
that the default will be testnet release for sui/walrus
. It's recommended to pass the release for the network you want to install.
This will check for newer releases of those that are already installed, and then download the new ones. Recommended to specify which release to update.
suiup update sui@devnet # recommended
suiup update sui # alternative - not recommended, as it will update/install the latest testnet release
SUIUP_DEFAULT_BIN_DIR=/path/to/default_dir suiup install sui -y
Install walrus
(note that walrus release are available starting with v1.17.1 for devnet/testnet and v1.18.2 for mainnet)
suiup install walrus -y
suiup install mvr
suiup install mvr@0.0.8 # this will install the MVR CLI v0.0.8 release
suiup list
suiup show
suiup default get
suiup default set sui@testnet-1.40.0
suiup default set mvr@0.0.7
suiup default set sui@testnet-1.40.0 --debug # set the default version to be the sui-debug binary
suiup which
- Rust (if you want to install from branch)
- Cargo (if you want to install from branch)
- Git (if you want to install from branch)
Installing a nightly version is highly experimental and might not work as expected. Avoid using it unless you really need to.
Important
--nightly
will replace the current nightly binary, if any. Currently, there's no support for multiple nightly versions. Hope to add it in the future!
suiup install mvr --nightly # installs from main if branch name is omitted
suiup install mvr --nightly my_branch
Note
There is a --debug
flag that can be used in two ways:
- for
sui
binary, it will install thesui-debug
binary from the release archive which contains debug symbols and it's required to runsui move test --coverage
. - for when using
--nightly
, it will build the binary from source with debug symbols. By default,--nightly
builds in release mode as percargo install
's defaults.
Note that installing from a branch and specifying a version are mutually exclusive (in other words, suiup install sui@some-version --nightly some-branch
will cause an error).
suiup install mvr --nightly --debug
suiup default set sui --nightly
As the tool requires to download releases and files from GitHub, it is recommended to use a GitHub token to avoid rate limits. You can set the GITHUB_TOKEN
environment variable to your GitHub token or pass in the --github-token
argument.
In the CI environment, you can set the GITHUB_TOKEN
environment variable to your GitHub token, then you can run the suiup
command as usual:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Install sui
run: |
suiup install sui
Or if you're calling from shell:
GITHUB_TOKEN=your_github_token suiup install sui
Tip
Set SUIUP_DEFAULT_BIN_DIR
environment variable to specify a different directory for storing the default binaries. The tool will warn if this folder is not on the path and suggest how to add it.
[Unix/MacOS] The tool uses these environment variables to store data.
XDG_DATA_HOME
XDG_CACHE_HOME
XDG_CONFIG_HOME
HOME/.local/bin
for storing default binaries to be used. Make sure this is on yourPATH
or set upSUIUP_DEFAULT_BIN_DIR
env variable to point to a different directory.
[Windows]
LOCALAPPDATA
orUSERPROFILE\AppData\Local
for storing dataTEMP
orUSERPROFILE\AppData\Local\Temp
for cachingLOCALAPPDATA\bin
for storing default binaries to be used
suiup install mvr --nightly
might fail on Windows because of issues with compiling themvr-cli
crate from the repository. Just install the latest release instead.suiup remove
does not work well. Do not use it.- There is no cleanup functionality, so the cache might grow bigger.
Make sure the folder where the suiup
binary is located is on the PATH
environment variable. You can also add the folder where the suiup
binary is located to the PATH
environment variable.
Please open an issue on the GitHub repository with the details of the problem you are facing.
Make sure you have an active internet connection. If you are behind a proxy, you might need to figure it out yourself. The tool does not support proxy settings yet.
Make sure the folder where the default binaries are stored is on the PATH
environment variable. You can use suiup which
to see where the default binaries are stored.
The order of the folders in the PATH
environment variable matters. Make sure the folder where the default binaries are stored (see above) is before the folder where you might already have
some other versions of these binaries copied to. In Unix/MacOS use which sui/mvr/walrus
to see the path of the binary that is being called.
Use suiup which
to see where the default binaries are stored.
For Unix/MacOS they are copied to $HOME/.local/bin
(or where your SUIUP_DEFAULT_BIN_DIR
env var points to) and for Windows they are copied to LOCALAPPDATA\bin
.
Make sure you have these folders on the PATH
.
This software is provided “as is”, without warranty of any kind, express or implied.