| title | Install ToolHive |
|---|---|
| description | Install, upgrade, and manage the ToolHive CLI on macOS, Linux, and Windows. |
This guide walks you through installing, upgrading, and managing the ToolHive
CLI (thv).
Before installing ToolHive, make sure your system meets these requirements:
- Operating systems: macOS, Linux, or Windows
- Container runtime:
- Docker / Docker Desktop
- Podman / Podman Desktop
- Colima with Docker runtime
- Rancher Desktop with the dockerd/moby runtime (experimental)
ToolHive requires minimal CPU, memory, and disk space. The exact requirements depend on how many MCP servers you run and the resources they use.
You can install ToolHive using several methods:
Homebrew is the easiest installation method on macOS or Linux:
brew tap stacklok/tap
brew install thvWinGet is available by default on Windows, making this the easiest installation method:
winget install stacklok.thvOpen a new terminal window after installation to ensure the thv command is
available.
-
Visit the ToolHive releases page
-
Download the appropriate binary for your platform:
toolhive_<version>_darwin_amd64.tar.gzfor macOS (Intel)toolhive_<version>_darwin_arm64.tar.gzfor macOS (Apple Silicon)toolhive_<version>_linux_amd64.tar.gzfor Linux (x86_64)toolhive_<version>_linux_arm64.tar.gzfor Linux (ARM64)toolhive_<version>_windows_amd64.zipfor Windows (x86_64)toolhive_<version>_windows_arm64.zipfor Linux (ARM64)
-
Extract the archive and copy the binary to a directory in your PATH:
macOS/Linux:
tar -xzf toolhive_<version>_<platform>.tar.gz sudo install -m 0755 thv /usr/local/bin/
On Windows, extract the ZIP file to a folder and add that folder to your PATH environment variable.
- Go 1.24 or newer
- Git
- Your
$GOPATH/bindirectory should be in your PATH
:::note
The Task scripts currently only support macOS and Linux. Windows users should use the pre-compiled binaries or build from source using Go tools.
:::
If you have Task installed:
-
Clone the repository:
git clone https://github.com/stacklok/toolhive.git cd toolhive -
Build and install the binary in your
$GOPATH/bin:task install
-
Clone the repository:
git clone https://github.com/stacklok/toolhive.git cd toolhive -
Build and install the binary in your
$GOPATH/bin:go install ./cmd/thv
To verify that ToolHive is installed correctly:
thv versionYou should see output showing the version number, build date, and Git commit:
ToolHive v0.1.1
Commit: 18956ca1710e11c9952d13a8dde039d5d1d147d6
Built: 2025-06-30 13:59:34 UTC
Go version: go1.24.1
Platform: darwin/arm64
:::info[Privacy: Anonymous usage metrics]
ToolHive collects anonymous usage metrics (tool call counts only) to help
improve the product. No personal information or sensitive data is collected. You
can disable this at any time using thv config usage-metrics disable. For more
information, see the FAQ.
:::
If you have the ToolHive UI installed, it automatically manages the CLI for version compatibility. ToolHive UI creates a symlink to its bundled CLI and configures your shell's PATH, so you don't need to install the CLI separately.
Running a standalone CLI binary (installed via Homebrew, WinGet, or manually) while ToolHive UI is installed shows a conflict error:
Error: CLI conflict detected
The ToolHive Desktop application manages a CLI installation at:
/Applications/ToolHive Studio.app/Contents/Resources/bin/darwin-arm64/thv
You are running a different CLI binary at:
/usr/local/bin/thv
To avoid conflicts, please use the desktop-managed CLI or uninstall
the ToolHive Desktop application.
To use the desktop-managed CLI, ensure your PATH includes:
~/.toolhive/bin
Or run the desktop CLI directly:
~/.toolhive/bin/thv [command]
Desktop version: 0.8.3
If you see this error, you have two options:
-
Use the UI-managed CLI (recommended): Open a new terminal window to pick up the PATH changes. The
thvcommand should now use the UI-managed CLI. -
Uninstall the standalone CLI: If you want to use only the UI-managed CLI, uninstall the standalone version:
- Homebrew:
brew uninstall thv - WinGet:
winget uninstall stacklok.thv - Manual: Remove the binary from your PATH
- Homebrew:
:::note[Debugging override]
For debugging purposes, you can bypass the conflict check by setting
TOOLHIVE_SKIP_DESKTOP_CHECK=1. This is not recommended for normal use as it
may cause version compatibility issues.
:::
ToolHive automatically checks for updates and notifies you when a new version is available. When you run a ToolHive command, it displays a message if an update exists.
To upgrade ToolHive:
If you installed ToolHive via Homebrew, upgrade it with:
brew upgrade thv:::note
On Windows, you must stop all running MCP servers before upgrading ToolHive, otherwise the upgrade will fail because Windows locks the executable while it runs.
Run thv stop --all to stop all running servers. After you complete the
upgrade, restart them using thv restart <SERVER_NAME>.
:::
If you installed ToolHive via WinGet, upgrade it with:
winget upgrade stacklok.thvFollow the same steps as the initial installation, downloading the latest release and overwriting the previous binary.
If you built ToolHive from source, upgrade it by pulling the latest changes and rebuilding:
git pull
task installgit pull
go install ./cmd/thvToolHive has built-in help for all commands:
# General help
thv --help
# Help for a specific command
thv <COMMAND> --helpFor detailed documentation on each command, see the CLI reference documentation.
ToolHive can generate auto-completion scripts for your shell to make it easier
to use. The thv completion command generates scripts for bash, zsh, fish, and
PowerShell.
Each shell has different requirements for where to store completion scripts and how to enable them. The help output for each shell provides specific instructions:
# Get help on completion options
thv completion --help
# Get specific instructions for your shell
thv completion bash --help
thv completion zsh --help
thv completion fish --help
thv completion powershell --helpTo uninstall ToolHive:
-
First, remove any MCP servers managed by ToolHive:
# List running servers thv list # Stop and remove each server thv stop --all thv rm <SERVER_NAME>
-
Remove all ToolHive configuration and log files:
# Remove the secrets encryption password entry from your OS keyring thv secret reset-keyring # Delete the ToolHive configuration and log files # macOS: rm -rf ~/Library/Application\ Support/toolhive/ # Linux: rm -rf ~/.config/toolhive/ rm -rf ~/.local/share/toolhive/ rm -rf ~/.local/state/toolhive/ # Windows: Remove-Item "$env:LOCALAPPDATA\toolhive" -Recurse -Force
-
Remove the ToolHive CLI:
{/* prettier-ignore */}
If you installed ToolHive via Homebrew, uninstall it with:
```bash
brew uninstall thv
```
</TabItem>
<TabItem value='winget' label='WinGet (Windows)'>
If you installed ToolHive via WinGet, uninstall it with:
```bash
winget uninstall stacklok.thv
```
</TabItem>
<TabItem value='binary' label='Pre-compiled binaries'>
Delete the binary from your PATH:
```bash
sudo rm /usr/local/bin/thv
```
</TabItem>
<TabItem value='source' label='Build from source'>
Remove the binary from your `$GOPATH`:
```bash
rm $(go env GOPATH)/bin/thv
```
</TabItem>
Now that you have ToolHive installed, you can start using it to run and manage MCP servers. See Explore the registry and Run MCP servers to get started.
- Quickstart: Getting started with the ToolHive CLI
thvCLI reference- Client configuration
- Secrets management
Permission denied errors
If you see "permission denied" errors when running ToolHive:
-
Make sure the binary is executable:
chmod +x /path/to/thv
-
If using Docker on Linux, make sure your user has permission to access the Docker socket:
sudo usermod -aG docker $USER(Log out and back in or run
newgrp dockerfor this to take effect)See Docker documentation for more details.
Upgrade error on Windows
If you encounter an error when upgrading ToolHive on Windows, it may be due to the ToolHive executable being locked by a running MCP server proxy.
An unexpected error occurred while executing the command:
remove: Access is denied.: "C:\Users\USERNAME\AppData\Local\Microsoft\WinGet\Packages\stacklok.thv_Microsoft.Winget.Source_8wekyb3d8bbwe\thv.exe"
Uninstall failed with exit code: 0x8a150003 : Executing command failed
To resolve this:
-
Stop all running MCP servers:
thv stop --all -
After stopping all servers, run the upgrade command again:
winget upgrade stacklok.thv
-
If you still encounter issues, check if any ToolHive processes are still running in the background. You can use Task Manager to end any lingering
thv.exeprocesses. -
Restart your MCP servers:
thv list --all thv restart <SERVER_NAME> # repeat for each server
For other installation issues, check the GitHub issues page or join the Discord community.