cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:3036::6815:710:80 · mise.run
2026-01-10 14:15
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Length: 0
Connection: close
Location: https://mise.run/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=S2n99Dnh8cVVtZBAwOa3ec8u8ionY2NpfwMV4X1uo4ukrn3ffMB1NmR6mLb2YTK30oPnSxkhqZcwgbYFvsr7Jvzxm3xLUg%2BQ5sLeF%2FG8GrT2pnt2"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbcc9592dbf4f00-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3036::6815:710:8443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:27 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc959ab9e0e2d-LHR
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=MsEzDRtJSPQ1NTySNnMpS2%2BLd6IPasse4zLlDiEwMfCspXplq8QXwn3p8Wf6FWo73MLKCxNj8HiwvfMht9LFxw765JQC7vHuZWoQfx8IO%2FeGO9td"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":8443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 104.21.7.16:8443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:27 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc9599bd1e6d0-AMS
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=2yzKvxuNhD%2BsdrTWoIOvM4Kx5CPhVDFPu%2Bbpa7A%2Bc%2Fgs1ODcqDRmdrTm3He84ijXoqlJHbE98ZfUfLkRe7SC0vROSLSAgafK"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":8443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 172.67.155.96:8443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:27 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc959cf148ade-AMS
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=vntffpY2%2BEp5OsQlUN72jzRLuKfIItXGlrKAP3nKiULJKniumEaaSL0PzZAJXQoE4SgJWHahFTU1a45TQRE2TZ%2BMYcRlNx%2BW"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":8443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 2606:4700:3036::6815:710:443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:27 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc959bc67d7a5-LHR
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DGttmnxKsFb37UQXluD8KJQ7YXWiAN7U5jV2q%2BDEArebB39s5VwOUG03wyD3ZBLoCspCIQr2SyE7jFOqVua9GNNuGXmyEnogbI%2F042sWP5Uh8C%2Bs"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 104.21.7.16:443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc9599d05fc46-AMS
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zTTCIOx1vLoPzaEEmLaFt4o3wW%2FBo6oMM1dgDM%2BPIB2%2B%2BFd0VfuWBG2Ee4Z6RAiciBv9pjBUzNI3Fp841MGYIz4cLQ4HEt33"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 2606:4700:3033::ac43:9b60:80 · mise.run
2026-01-10 14:15
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Length: 0
Connection: close
Location: https://mise.run/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0hncD3V0Chwbx6RdzgUbh85b%2FgXWs9fvfYkFz3klUfv6%2Bw2Aj0YqQoiZsTuXbqcsI5jQVPotmDud3GTc6dok1MYD91fwdh54lwx64cBpsM50qt1%2B"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbcc9586e622443-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3033::ac43:9b60:8443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:27 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc959995366d0-AMS
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hgYSWD2jzXFoY%2FTLv67wvq%2BQnz%2BrjrAJIM2w2EvKCuDW%2FxRSoyvNBCqffZOiAx1OVHmeoVeYLt9A4R%2FogGJPAqtB3lYQB19ovJMYW3sTP%2FWdEWAn"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":8443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 104.21.7.16:80 · mise.run
2026-01-10 14:15
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Length: 0
Connection: close
Location: https://mise.run/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=wwL%2FA8QLIxyShoh7ovVb0tGA4Aa38r2gNIFheCkaWtICLnweuk41aL9U635Np9pZq%2FXn%2B5UmU8nkZKrV4scgmW0Ud9g4ct30"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbcc9585e7bd4d1-AMS
alt-svc: h3=":443"; ma=86400
Open service 172.67.155.96:80 · mise.run
2026-01-10 14:15
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Length: 0
Connection: close
Location: https://mise.run/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2Fym5mx%2BfnIWW%2FqNc8sjgAyrZbwsR73x6KWwt03tyAWOskEKU4FQY2StpIec%2Bksj9uzk2OyZ%2BmY9AqcI1MI897WQG7%2FFRwigE"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbcc9585bfd2580-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3033::ac43:9b60:443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc958eeca12c4-FRA
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JlN4NTYc74Tivap0c9NQ4GfukeZpH2XRt1CL8XDTHin%2Bz0x9o3U3iZi4wdWK0VPHhEuR0D1MG8pT%2BeZiYv5CZ1LI05eadd%2BmfEnZVsqDKi%2BMkoGa"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20
Open service 172.67.155.96:443 · mise.run
2026-01-10 14:15
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 14:15:26 GMT
Content-Type: text/plain
Content-Length: 10368
Connection: close
CF-Ray: 9bbcc958fca5141d-FRA
CF-Cache-Status: HIT
Accept-Ranges: bytes
Age: 626
Cache-Control: public, max-age=3600, s-maxage=3600, immutable
ETag: "3b9f42b731324f69fcc805bc384ac928"
Last-Modified: Thu, 08 Jan 2026 14:04:12 GMT
Server: cloudflare
Vary: Accept-Encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=yjmvPdNEwtv46H2YfDnQRXlXrQXydTeVmrF5L8bSySp9nPzwej7hfGdxXv9XrtiPM%2B9VLn%2FJ0hV0Wd7UxDiyqiMLX5xR2RZg"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
alt-svc: h3=":443"; ma=86400
#!/bin/sh
set -eu
#region logging setup
if [ "${MISE_DEBUG-}" = "true" ] || [ "${MISE_DEBUG-}" = "1" ]; then
debug() {
echo "$@" >&2
}
else
debug() {
:
}
fi
if [ "${MISE_QUIET-}" = "1" ] || [ "${MISE_QUIET-}" = "true" ]; then
info() {
:
}
else
info() {
echo "$@" >&2
}
fi
error() {
echo "$@" >&2
exit 1
}
#endregion
#region environment setup
get_os() {
os="$(uname -s)"
if [ "$os" = Darwin ]; then
echo "macos"
elif [ "$os" = Linux ]; then
echo "linux"
else
error "unsupported OS: $os"
fi
}
get_arch() {
musl=""
if type ldd >/dev/null 2>/dev/null; then
if [ "${MISE_INSTALL_MUSL-}" = "1" ] || [ "${MISE_INSTALL_MUSL-}" = "true" ]; then
musl="-musl"
elif [ "$(uname -o)" = "Android" ]; then
# Android (Termux) always uses musl
musl="-musl"
else
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -n "$libc" ]; then
musl="-musl"
fi
fi
fi
arch="$(uname -m)"
if [ "$arch" = x86_64 ]; then
echo "x64$musl"
elif [ "$arch" = aarch64 ] || [ "$arch" = arm64 ]; then
echo "arm64$musl"
elif [ "$arch" = armv7l ]; then
echo "armv7$musl"
else
error "unsupported architecture: $arch"
fi
}
get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}
tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar' && command -v zstd >/dev/null 2>&1; then
true
elif tar --version | grep -q '1\.(3[1-9]|[4-9][0-9]'; then
true
else
false
fi
}
shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
elif command -v sha256sum >/dev/null 2>&1; then
echo "sha256sum"
else
error "mise install requires shasum or sha256sum but neither is installed. Aborting."
fi
}
get_checksum() {
version=$1
os=$2
arch=$3
ext=$4
url="https://github.com/jdx/mise/releases/download/v${version}/SHASUMS256.txt"
# For current version use static checksum otherwise
# use checksum from releases
if [ "$version" = "v2026.1.1" ]; then
checksum_linux_x86_64="e35fd46d51f27829f4aefe60c9a8e92a68534de5ad07568b5f034144d1d3cf0c ./mise-v2026.1.1-linux-x64.tar.gz"
checksum_linux_x86_64_musl="4f4dce6120601ed1e37fa7b19e67523bbf316c2b1691e7447251cf82ffd9ac4d ./mise-v2026.1.1-linux-x64-musl.tar.gz"
checksum_linux_arm64="dcd7006e84d3557284a7c87b99abdce4a465900f67609e99b39c757006a361dd ./mise-v2026.1.1-linux-arm64.tar.gz"
checksum_linux_arm64_musl="b6a5257c928d14edc42a01ebf741ec36a792af59c1ce83b7a801ff1e779af8c4 ./mise-v2026.1.1-linux-arm64-musl.tar.gz"
checksum_linux_armv7="d2a60d8506d9b00b7235ff20943d341c5a268baf1c348dfd12d3f6503237204e ./mise-v2026.1.1-linux-armv7.tar.gz"
checksum_linux_armv7_musl="ad06a61600cb55b89e57d00b7be9c3ab81a3f33b52b8b0ed1da35ce267469eee ./mise-v2026.1.1-linux-armv7-musl.tar.gz"
checksum_macos_x86_64="b402b0617ac870501b30ca6a5b414ab2345c15150417336c83bd88b5033b36da ./mise-v2026.1.1-macos-x64.tar.gz"
checksum_macos_arm64="855d326d9dc7f0c8b9aaff503c1b3a65ec5cd78efea89b66b758b3f0e0c1cc6b ./mise-v2026.1.1-macos-arm64.tar.gz"
checksum_linux_x86_64_zstd="8a958b255773ef3778a4e0a42207b7d8199f80592b446eff18f0a460fdd3ae4e ./mise-v2026.1.1-linux-x64.tar.zst"
checksum_linux_x86_64_musl_zstd="e8791f5f8bba25aaaeb27ec1955490ab13b78005300078f051402694bd9d7444 ./mise-v2026.1.1-linux-x64-musl.tar.zst"
checksum_linux_arm64_zstd="8c36490a62270eddc9407102253ef20b17b2cc0734f2f000bef2c0639becaa55 ./mise-v2026.1.1-linux-arm64.tar.zst"
checksum_linux_arm64_musl_zstd="c3ac6d8ff09e73be7ad15933a08765deb12341735404a6b8085ed76f1ced8330 ./mise-v2026.1.1-linux-arm64-musl.tar.zst"
checksum_linux_armv7_zstd="c246a49e54c9449fb6b62a8a3193b3f5a335b1627343dbbee1afe739fab20