-
Notifications
You must be signed in to change notification settings - Fork 82
Open
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
Metadata
Metadata
Assignees
Labels
No labels