A cross-platform terminal UI for managing .NET SDKs and Runtimes. Install, update, search, and remove — all from a single keyboard-driven interface.
No context switching. See your installed SDKs, available updates, runtimes, and search results — all at a glance.
View installed SDKs alongside the latest available versions. Install, uninstall, and update with a single keystroke.
Full visibility into .NET and ASP.NET Core runtimes. Same install/uninstall/update workflow as SDKs.
Non-blocking search with debounce. Type to search, results update as you go. Previous requests are automatically cancelled.
Press F6 to toggle. The terminal background adapts automatically for a native look in both modes.
Automatically resolves dotnetup install specs — feature bands, channels, and latest — so uninstall just works.
Compiled ahead-of-time for instant startup. Small binary, no runtime dependency required on the target machine.
One command to install. No .NET runtime needed — it's a self-contained native binary. Running the same command again updates to the latest version.
Works on Bash, Zsh, and Fish. Installs to ~/.local/bin and adds it to your PATH automatically.
Install or update:
curl -fsSL https://raw.githubusercontent.com/shahabganji/dotnet-sdk-tui/main/install/install.sh | bash
Uninstall:
curl -fsSL https://raw.githubusercontent.com/shahabganji/dotnet-sdk-tui/main/install/uninstall.sh | bash
Run in PowerShell (5.1 or 7+). Installs to %LOCALAPPDATA%\dsm and adds it to your user PATH.
Install or update:
irm https://raw.githubusercontent.com/shahabganji/dotnet-sdk-tui/main/install/install.ps1 | iex
Uninstall:
irm https://raw.githubusercontent.com/shahabganji/dotnet-sdk-tui/main/install/uninstall.ps1 | iex
After installation, open a new terminal and run dsm. The app will notify you when updates are available — press Ctrl+U to self-update.
osx-arm64 osx-x64win-x64 win-arm64linux-x64 linux-arm64Everything is keyboard-driven. No mouse needed.
| Key | Action |
|---|---|
↑ / ↓ or j / k | Navigate rows |
Tab | Cycle focus between SDKs, Runtimes, and Setup panels |
i | Install selected SDK or Runtime |
u | Uninstall selected SDK or Runtime |
p | Update to the latest version in the channel |
r | Refresh data from the network |
F3 | Open the search screen |
F6 | Toggle dark / light theme |
Ctrl+U | Self-update dsm to latest version |
q or Ctrl+C | Quit |
Open search with F3, then just start typing. Results update live with debounce — no enter key needed.
# Search by channel version / Search: 10 # Shows all .NET 10 SDKs and runtimes # Search by keyword / Search: preview # Shows all preview/RC versions / Search: latest # Shows latest versions across supported channels / Search: lts # Shows long-term support versions
dsm # Launch with animated banner dsm --no-splash # Skip the banner animation dsm --version # Print version and exit
Requires .NET 10 SDK or later.
# Clone the repository git clone https://github.com/shahabganji/dotnet-sdk-tui.git cd dotnet-sdk-tui # Run in development dotnet run --project src/DotnetSdkTui # Run tests dotnet test # Publish a NativeAOT binary dotnet publish src/DotnetSdkTui -c Release -r osx-arm64
Contributions are welcome! Here's how to get involved.
Fork the repository and clone it locally.
Create a branch from main for your feature or fix.
Run dotnet test to make sure everything passes.
Submit a pull request with a clear description of your changes.