microsoft / microsoft/go-sqlcmd
Add interactive menu mode with ASCII art header
Nobody has claimed this yet.
- 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 configcommands) - 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
qorEscto 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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