gossms

module
v0.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2026 License: GPL-3.0

README

goSSMS

SQL Server management for Linux, macOS, and Windows

Last commit License

goSSMS

goSSMS is a terminal-based SQL Server management application. It is distributed as a single executable and does not require an installer, SQL client tools, or separate database drivers.

Demo

Installation

1. Install goSSMS
Homebrew — macOS and Linux
brew install radix29/tap/gossms

Apple silicon and Intel; brew upgrade gossms tracks new releases.

APT — Debian, Ubuntu and derivatives
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://radix29.github.io/apt/gossms.asc \
  | sudo tee /etc/apt/keyrings/gossms.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/gossms.asc] https://radix29.github.io/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/gossms.list > /dev/null
sudo apt-get update && sudo apt-get install gossms

amd64 and arm64. Details at radix29.github.io/apt.

Direct download

Download the latest release for your platform:

https://github.com/radix29/gossms/releases/latest

Release binaries are available for:

  • Windows (amd64)
  • Linux (amd64 and arm64)
  • macOS (Apple silicon/arm64 and Intel/amd64)

Extract the downloaded archive before running the application.

The binaries themselves are not signed for Windows SmartScreen or macOS Gatekeeper, so those will warn on first run. Integrity is covered instead by checksums.txt, published with every release and signed by the release workflow with cosign in keyless mode:

sha256sum -c --ignore-missing checksums.txt
cosign verify-blob \
  --bundle checksums.txt.bundle \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp '^https://github\.com/radix29/gossms/\.github/workflows/release\.yml@' \
  checksums.txt

Packages installed through Homebrew or APT are covered without any of this: Homebrew checks the formula's sha256, and APT checks the repository's GPG-signed Release file.

2. Start goSSMS

Installed through Homebrew or APT, gossms is already on your PATH:

gossms

Otherwise, on Windows, open PowerShell in the extracted folder and run:

.\gossms.exe

On Linux or macOS, open a terminal in the extracted folder and run:

chmod +x ./gossms
./gossms

gossms --version prints the version, commit, build date and licence and exits, without starting the interface — quote it when reporting a bug.

You need a modern terminal with UTF-8 and 256-colour support, plus network access to a SQL Server instance.

3. Connect to SQL Server

The Connect to Server dialog opens at startup. Enter the server name and choose SQL Server, Windows Integrated, or a supported Microsoft Entra ID authentication method.

For a named instance such as SERVER\INSTANCE, leave Port blank so SQL Browser can resolve the instance. Use a port only when you want to connect to a specific port directly.

Supported SQL Server versions

goSSMS supports SQL Server 2016 SP1 (13.0.4001) and later on Windows and Linux, and Azure SQL Managed Instance. Features that are unavailable on the connected SQL Server version or engine edition are hidden or disabled.

Highlights

  • Object Explorer for databases, tables, views, programmable objects, security, storage, SQL Server Agent, Always On, and other server objects.
  • Query editor with multiple tabs, IntelliSense, GO batches, unlimited result rows, messages, and XML/JSON viewers.
  • Execution plans as a graph, operator tree, or XML, with .sqlplan file support, missing-index details, and plan comparison.
  • Query Store reports with plan viewing, comparison, tracking, forcing, and unforcing.
  • Administration tools for properties, permissions, backup and restore (to disk or Azure Storage), attach and detach, indexes, statistics, and multi-object delete.
  • Monitoring through Activity Monitor, blocking chains, sessions, and SQL Server and SQL Agent logs — several log files can be merged into one date-sorted view.
  • Azure SQL Managed Instance support, including an Activity Monitor Instance tab showing CPU, storage, I/O and the resource governor's limits.
  • Least-privilege operation: unavailable actions are disabled and missing permissions are identified where SQL Server exposes that information.

Required rights

goSSMS does not add privileges to your login. Connecting requires CONNECT SQL; seeing and opening databases may also require VIEW ANY DATABASE and CONNECT on the database. Each query and administrative action requires the same SQL Server permission it would require in another client.

When a permission is missing, goSSMS disables the affected action, opens an editable page as read-only, displays inaccessible values as N/A, or reports the required permission where possible.

VIEW SERVER STATE

Live server information, including Activity Monitor data and some server properties, requires VIEW SERVER STATE.

On SQL Server 2022 and later, VIEW SERVER STATE is split into VIEW SERVER PERFORMANCE STATE and VIEW SERVER SECURITY STATE; either narrower grant covers its corresponding information.

Configuration

Connections are saved automatically, with the 15 most recent listed first. Tools > Options controls the tree icon style, default results-grid cell width, and IntelliSense.

Configuration is stored at:

  • Linux/macOS: ~/.config/gossms/config.json
  • Windows: %APPDATA%\gossms\config.json

Saved passwords are encrypted with AES-256-GCM using gossms.key, stored next to the configuration file. Delete both files to reset saved connections.

Known issues

  • Microsoft Entra authentication has not yet been tested against live infrastructure.
  • Backup and restore to Azure Storage build and validate correctly but have not been executed end to end; doing so requires a shared access signature credential on the container.
  • macOS has not yet been tested on physical Mac hardware.
  • Release binaries are not signed for SmartScreen or Gatekeeper, so both warn on first run. The published checksums are cosign-signed; see Direct download.

License

goSSMS is © 2026 radix29 and licensed under GPL-3.0-or-later. The bundled sp_WhoIsActive is © 2007–2026 Adam Machanic and retains its own GPL-3.0 copyright.

Directories

Path Synopsis
cmd
amdemo command
Command amdemo hosts the Activity Monitor's History and Sample dashboards full-screen against deterministic mock data, for visually checking the dashboard layout and the tuikit/charts primitives without a SQL Server connection.
Command amdemo hosts the Activity Monitor's History and Sample dashboards full-screen against deterministic mock data, for visually checking the dashboard layout and the tuikit/charts primitives without a SQL Server connection.
gossms command
plandemo command
Command plandemo hosts a single planview.PlanView full-screen, for visually checking the execution-plan viewer control against real plan files without needing the full gossms application.
Command plandemo hosts a single planview.PlanView full-screen, for visually checking the execution-plan viewer control against real plan files without needing the full gossms application.
spindemo command
Command spindemo animates a catalogue of candidate busy spinners side by side so one can be picked by eye rather than from a static frame listing.
Command spindemo animates a catalogue of candidate busy spinners side by side so one can be picked by eye rather than from a static frame listing.
internal
activity
Package activity collects the SQL Server activity the Activity Monitor panel draws: performance counters, wait statistics, file I/O, memory, schedulers, and session counts.
Package activity collects the SQL Server activity the Activity Monitor panel draws: performance counters, wait statistics, file I/O, memory, schedulers, and session counts.
config
Package config holds persistent application state (saved connections, settings).
Package config holds persistent application state (saved connections, settings).
db
Package db wraps gosmo to provide connection management for gossms.
Package db wraps gosmo to provide connection management for gossms.
fileutil
Package fileutil holds the file-writing helpers shared across gossms.
Package fileutil holds the file-writing helpers shared across gossms.
query
Package query executes T-SQL scripts the way SSMS does: split into GO batches, all run on one dedicated connection (so temp tables and SET options survive across batches), with the driver's message stream — PRINT output, "(n rows affected)", SQL errors — captured into Result.Messages.
Package query executes T-SQL scripts the way SSMS does: split into GO batches, all run on one dedicated connection (so temp tables and SET options survive across batches), with the driver's message stream — PRINT output, "(n rows affected)", SQL errors — captured into Result.Messages.
showplan
Package showplan parses SQL Server ShowPlanXML documents (execution plans, estimated or actual) into a navigable operator tree.
Package showplan parses SQL Server ShowPlanXML documents (execution plans, estimated or actual) into a navigable operator tree.
tui
Package tui is the gossms application layer.
Package tui is the gossms application layer.
tui/dashboard
Package dashboard lays out the Activity Monitor's dashboards: History, Sample, TempDB, and — on an Azure engine edition — Instance.
Package dashboard lays out the Activity Monitor's dashboards: History, Sample, TempDB, and — on an Azure engine edition — Instance.
tui/planview
Package planview is a reusable TUI control that renders a parsed SQL Server execution plan (internal/showplan.Plan) as a tabbed view: a graphical operator plan, an expandable tree, and the raw plan XML.
Package planview is a reusable TUI control that renders a parsed SQL Server execution plan (internal/showplan.Plan) as a tabbed view: a graphical operator plan, an expandable tree, and the raw plan XML.
tui/sqlparse
Package sqlparse is the lexical T-SQL scanner behind the query editor's completion: it turns editor lines into a token stream, locates the statement the cursor sits in, and reports what that statement puts in scope.
Package sqlparse is the lexical T-SQL scanner behind the query editor's completion: it turns editor lines into a token stream, locates the statement the cursor sits in, and reports what that statement puts in scope.
tuikit/charts
Package charts renders terminal charts from generic series data.
Package charts renders terminal charts from generic series data.
tuikit/controls
Package controls provides higher-level, reusable TUI controls:
Package controls provides higher-level, reusable TUI controls:
tuikit/core
Package core provides the foundational types and drawing primitives used by every other tuikit sub-package.
Package core provides the foundational types and drawing primitives used by every other tuikit sub-package.
tuikit/dialogs
Package dialogs provides the ModalDialog base type and generic re-usable dialog implementations (AlertDialog, ConfirmDialog, TypedConfirmDialog, PromptDialog, PropertiesDialog, FileDialog).
Package dialogs provides the ModalDialog base type and generic re-usable dialog implementations (AlertDialog, ConfirmDialog, TypedConfirmDialog, PromptDialog, PropertiesDialog, FileDialog).
tuikit/layout
Package layout provides Panel interface, PanelManager (tab/combo switcher), and Splitter (draggable/keyboard-resizable divider between two regions).
Package layout provides Panel interface, PanelManager (tab/combo switcher), and Splitter (draggable/keyboard-resizable divider between two regions).
tuikit/propsheet
Package propsheet provides a reusable, multi-page, editable "properties dialog" — a modal with a page list on the left and a scrollable form on the right (OK/Cancel/Apply/Script Changes below), the pattern SQL Server Management Studio uses for Server/Database/Login Properties.
Package propsheet provides a reusable, multi-page, editable "properties dialog" — a modal with a page list on the left and a scrollable form on the right (OK/Cancel/Apply/Script Changes below), the pattern SQL Server Management Studio uses for Server/Database/Login Properties.
tuikit/theme
Package theme defines the SSMS-inspired dark colour palette and base tcell styles used throughout the tuikit library and the gossms application.
Package theme defines the SSMS-inspired dark colour palette and base tcell styles used throughout the tuikit library and the gossms application.
tuikit/widgets
Package widgets provides stateful, self-contained input controls that render themselves onto a tcell.Screen.
Package widgets provides stateful, self-contained input controls that render themselves onto a tcell.Screen.
version
Package version holds gossms's own version metadata, mirroring the same pattern gosmo/version/version.go uses.
Package version holds gossms's own version metadata, mirroring the same pattern gosmo/version/version.go uses.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL