Add interactive menu mode with ASCII art header
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
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.
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
- Dominant language
- Go
- Stars
- 595
- Forks
- 91
- Avg merge
- 9h 35m
- Merged PRs (30d)
- 1
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.
More from microsoft/go-sqlcmd
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
All issues in microsoft/go-sqlcmd
Similar issues
-
area/dev-productivity area/disaster-recovery area/ipcei kind/enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
kind/bug status/0-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
🤔 refinement needed
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
equinor/radix-operator#1979 ·