.NET SDK Manager

A cross-platform terminal UI for managing .NET SDKs and Runtimes. Install, update, search, and remove — all from a single keyboard-driven interface.

Everything in one screen

No context switching. See your installed SDKs, available updates, runtimes, and search results — all at a glance.

SDK Management

View installed SDKs alongside the latest available versions. Install, uninstall, and update with a single keystroke.

Runtime Management

Full visibility into .NET and ASP.NET Core runtimes. Same install/uninstall/update workflow as SDKs.

Live Search

Non-blocking search with debounce. Type to search, results update as you go. Previous requests are automatically cancelled.

Dark & Light Themes

Press F6 to toggle. The terminal background adapts automatically for a native look in both modes.

Smart Uninstall

Automatically resolves dotnetup install specs — feature bands, channels, and latest — so uninstall just works.

NativeAOT

Compiled ahead-of-time for instant startup. Small binary, no runtime dependency required on the target machine.

Installation

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.

Supported platforms

macOS
osx-arm64 osx-x64
Windows
win-x64 win-arm64
Linux
linux-x64 linux-arm64

Keyboard shortcuts

Everything is keyboard-driven. No mouse needed.

KeyAction
/ or j / kNavigate rows
TabCycle focus between SDKs, Runtimes, and Setup panels
iInstall selected SDK or Runtime
uUninstall selected SDK or Runtime
pUpdate to the latest version in the channel
rRefresh data from the network
F3Open the search screen
F6Toggle dark / light theme
Ctrl+USelf-update dsm to latest version
q or Ctrl+CQuit

Search

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

CLI

dsm                # Launch with animated banner
dsm --no-splash    # Skip the banner animation
dsm --version      # Print version and exit

Build from source

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

Contributing

Contributions are welcome! Here's how to get involved.

Fork & Clone

Fork the repository and clone it locally.

Branch

Create a branch from main for your feature or fix.

Build & Test

Run dotnet test to make sure everything passes.

Open a PR

Submit a pull request with a clear description of your changes.

Areas where help is appreciated