diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index aa3b251df1..b662268936 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -50,6 +50,7 @@ export default defineConfig({
{ text: 'go', link: '/dev-tools/backends/go' },
{ text: 'npm', link: '/dev-tools/backends/npm' },
{ text: 'pipx', link: '/dev-tools/backends/pipx' },
+ { text: 'spm', link: '/dev-tools/backends/spm' },
{ text: 'ubi', link: '/dev-tools/backends/ubi' },
]
}
diff --git a/docs/dev-tools/backends/cargo.md b/docs/dev-tools/backends/cargo.md
index ea2f896559..b645a6c167 100644
--- a/docs/dev-tools/backends/cargo.md
+++ b/docs/dev-tools/backends/cargo.md
@@ -3,7 +3,7 @@
You may install packages directly from [Cargo Crates](https://crates.io/) even if there
isn't an asdf plugin for it.
-The code for this is inside of the mise repository at [`./src/forge/cargo.rs`](https://github.com/jdx/mise/blob/main/src/forge/cargo.rs).
+The code for this is inside of the mise repository at [`./src/backend/cargo.rs`](https://github.com/jdx/mise/blob/main/src/backend/cargo.rs).
## Dependencies
diff --git a/docs/dev-tools/backends/go.md b/docs/dev-tools/backends/go.md
index e6338d5662..b6c52b4bb5 100644
--- a/docs/dev-tools/backends/go.md
+++ b/docs/dev-tools/backends/go.md
@@ -3,7 +3,7 @@
You may install packages directly via [go install](https://go.dev/doc/install) even if there
isn't an asdf plugin for it.
-The code for this is inside of the mise repository at [`./src/forge/go.rs`](https://github.com/jdx/mise/blob/main/src/forge/go.rs).
+The code for this is inside of the mise repository at [`./src/backend/go.rs`](https://github.com/jdx/mise/blob/main/src/backend/go.rs).
## Dependencies
diff --git a/docs/dev-tools/backends/index.md b/docs/dev-tools/backends/index.md
index cc649fd7c5..019ac46e40 100644
--- a/docs/dev-tools/backends/index.md
+++ b/docs/dev-tools/backends/index.md
@@ -7,10 +7,11 @@ In addition to asdf plugins, you can also directly install CLIs with some packag
* [Go](/dev-tools/backends/go)
* [NPM](/dev-tools/backends/npm)
* [Pipx](/dev-tools/backends/pipx)
+* [SPM](/dev-tools/backends/spm)
* [Ubi](/dev-tools/backends/ubi)
* [More coming soon!](https://github.com/jdx/mise/discussions/1250)
::: tip
If you'd like to contribute a new backend to mise, they're not difficult to write.
-See [`./src/forge/`](https://github.com/jdx/mise/tree/main/src/forge) for examples.
+See [`./src/backend/`](https://github.com/jdx/mise/tree/main/src/backend) for examples.
:::
diff --git a/docs/dev-tools/backends/npm.md b/docs/dev-tools/backends/npm.md
index acded46dff..2455fcbe1b 100644
--- a/docs/dev-tools/backends/npm.md
+++ b/docs/dev-tools/backends/npm.md
@@ -3,7 +3,7 @@
You may install packages directly from [npmjs.org](https://npmjs.org/) even if there
isn't an asdf plugin for it.
-The code for this is inside of the mise repository at [`./src/forge/npm.rs`](https://github.com/jdx/mise/blob/main/src/forge/npm.rs).
+The code for this is inside of the mise repository at [`./src/backend/npm.rs`](https://github.com/jdx/mise/blob/main/src/backend/npm.rs).
## Dependencies
diff --git a/docs/dev-tools/backends/pipx.md b/docs/dev-tools/backends/pipx.md
index 6e0c7a5d36..300e9aa9ad 100644
--- a/docs/dev-tools/backends/pipx.md
+++ b/docs/dev-tools/backends/pipx.md
@@ -7,7 +7,7 @@ You may install python packages directly from:
- Github
- Http
-The code for this is inside of the mise repository at [`./src/forge/pipx.rs`](https://github.com/jdx/mise/blob/main/src/forge/pipx.rs).
+The code for this is inside of the mise repository at [`./src/backend/pipx.rs`](https://github.com/jdx/mise/blob/main/src/backend/pipx.rs).
## Dependencies
diff --git a/docs/dev-tools/backends/spm.md b/docs/dev-tools/backends/spm.md
new file mode 100644
index 0000000000..ad1f1f8234
--- /dev/null
+++ b/docs/dev-tools/backends/spm.md
@@ -0,0 +1,44 @@
+# SPM Backend
+
+You may install executables managed by [Swift Package Manager](https://www.swift.org/documentation/package-manager) directly from Github releases.
+
+The code for this is inside of the mise repository at [`./src/backend/spm.rs`](https://github.com/jdx/mise/blob/main/src/backend/spm.rs).
+
+## Dependencies
+
+This relies on having `swift` installed. You can install it according to the [instructions](https://www.swift.org/install).
+
+> [!NOTE]
+> If you have Xcode installed and selected in your system via `xcode-select`, Swift is already available through the toolchain embedded in the Xcode installation.
+
+## Usage
+
+The following installs the latest version of `tuist`
+and sets it as the active version on PATH:
+
+```sh
+$ mise use -g spm:tuist/tuist
+$ tuist --help
+OVERVIEW: Generate, build and test your Xcode projects.
+
+USAGE: tuist
+...
+```
+
+The version will be set in `~/.config/mise/config.toml` with the following format:
+
+```toml
+[tools]
+"spm:tuist/tuist" = "latest"
+```
+
+### Supported Syntax
+
+| Description | Usage |
+| --------------------------------------------- | --------------------------------------------------------- |
+| Github shorthand for latest release version | `spm:tuist/tuist` |
+| Github shorthand for specific release version | `spm:tuist/tuist@4.15.0` |
+| Github url for latest release version | `spm:https://github.com/tuist/tuist.git` |
+| Github url for specific release version | `spm:https://github.com/tuist/tuist.git@4.15.0` |
+
+Other syntax may work but is unsupported and untested.
diff --git a/docs/dev-tools/backends/ubi.md b/docs/dev-tools/backends/ubi.md
index 581e458d4d..d54f91d7b8 100644
--- a/docs/dev-tools/backends/ubi.md
+++ b/docs/dev-tools/backends/ubi.md
@@ -2,7 +2,7 @@
You may install Github Releases and URL packages directly using [ubi](https://github.com/houseabsolute/ubi) backend.
-The code for this is inside of the mise repository at [`./src/forge/ubi.rs`](https://github.com/jdx/mise/blob/main/src/forge/ubi.rs).
+The code for this is inside of the mise repository at [`./src/backend/ubi.rs`](https://github.com/jdx/mise/blob/main/src/backend/ubi.rs).
## Dependencies