A terminal UI for managing and connecting to databases. Built with Go and Bubble Tea. Uses VIM motions.
brew install jdtoombs/tap/dbsurfDownload the .deb file from the latest release and install with:
sudo dpkg -i dbsurf_*_linux_amd64.deb- Connection Management: Save, delete, and manage multiple database connections with automatic database type detection
- VIM Navigation: Navigate lists and results using
j/k(up/down),h/l(left/right for row navigation) - Database Browser: Browse and select databases on connected servers (MySQL, SQL Server)
- Table Browser: Quick access to tables via
ctrl+t, with search filtering - Query Execution: Run custom SQL queries with results displayed in a JSON-like format
- Inline Editing: Edit field values directly with
ikey, generates UPDATE statements with confirmation - Search/Filter: Filter databases, tables, and query results with
/key - Copy to Clipboard: Copy current record as JSON with
ctrl+c - Primary Key Detection: Automatic PK detection for safe UPDATE generation
Table Browser - Quick access to tables via ctrl+t
Search/Filter - Filter results with / key
Table Structure - View column info with ? key
Inline Editing - Edit field values directly with i key, generates UPDATE statements with confirmation
- Go
- Bubble Tea (TUI framework)
- Lip Gloss (styling)
- Bubbles (text input components)
The app uses Bubble Tea's Elm-style architecture:
*Appuses pointer receivers for all methods- Mode-based routing in
Update()andView()switches between views - Each view has its own
update*andview*methods in separate files
Connections stored at ~/.config/dbsurf/config.json
- PostgreSQL
- MySQL
- SQL Server