microsoft / microsoft/go-sqlcmd

Add interactive menu mode with ASCII art header

Open
#677 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
595
Forks
91
Avg merge
9h 35m
Merged PRs (30d)
1

Description

Summary

Add an interactive menu mode for sqlcmd with a visually appealing ASCII art header, similar to the Azure CLI's interactive experience.

Motivation

An interactive menu mode would:

  • Improve discoverability: Help new users explore sqlcmd's features
  • Reduce friction: Guide users through common tasks without memorizing flags
  • Visual appeal: A branded ASCII art header creates a professional, memorable experience
  • Consistency: Align with Azure CLI and other modern CLI tools that have interactive modes

Proposed Features

ASCII Art Header
   _____ ____    __    ________  _______
  / ___// __ \  / /   / ____/  |/  / __ \
  \__ \/ / / / / /   / /   / /|_/ / / / /
 ___/ / /_/ / / /___/ /___/ /  / / /_/ /
/____/\___\_\/_____/\____/_/  /_/_____/

Microsoft SQL Server Command Line Tool

(or similar branded design)

Interactive Menu Options
  • Connect: Guided connection setup (server, auth method, database)
  • Query: Enter and execute queries interactively
  • Config: Manage contexts and endpoints (sqlcmd config commands)
  • Containers: Start/stop/manage SQL containers
  • Help: Browse commands and examples
  • Recent: Show recent connections/queries
Navigation
  • Arrow keys / number selection
  • Fuzzy search for commands
  • Breadcrumb navigation
  • q or Esc to exit

Implementation Considerations

  • Go TUI libraries: bubbletea, tview, promptui
  • ASCII art generator or hand-crafted design
  • Keyboard handling across platforms (Windows, Linux, macOS)
  • Fallback for non-interactive terminals
  • Integration with existing command structure

Inspiration

  • Azure CLI interactive mode (az interactive)
  • GitHub CLI (gh)
  • lazygit, lazydocker
  • k9s (Kubernetes TUI)

Tasks

  • Design ASCII art header/logo
  • Choose TUI library
  • Design menu structure and navigation
  • Implement main menu
  • Add guided connection wizard
  • Add interactive query mode
  • Test on Windows, Linux, macOS terminals
  • Document the interactive mode

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by surveying sqlcmd’s existing command structure and entry point, then review how interactive modes work in Azure CLI and GitHub CLI. The issue calls for a TUI library, menu structure, guided connection and query flows, cross-platform keyboard handling, non-interactive fallback, tests, and documentation; done requires resolving those design choices and completing the listed tasks.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.