{"id":13491189,"url":"https://github.com/mathaou/termdbms","last_synced_at":"2025-10-06T20:19:30.420Z","repository":{"id":38343545,"uuid":"402455845","full_name":"mathaou/termdbms","owner":"mathaou","description":"A TUI for viewing and editing database files.","archived":false,"fork":false,"pushed_at":"2022-06-11T16:15:29.000Z","size":23711,"stargazers_count":1699,"open_issues_count":4,"forks_count":36,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-31T05:32:13.946Z","etag":null,"topics":["database","golang","sqlite","terminal","terminal-based","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathaou.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-02T14:42:17.000Z","updated_at":"2024-10-24T11:53:15.000Z","dependencies_parsed_at":"2022-07-09T03:47:13.510Z","dependency_job_id":null,"html_url":"https://github.com/mathaou/termdbms","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathaou%2Ftermdbms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathaou%2Ftermdbms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathaou%2Ftermdbms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathaou%2Ftermdbms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathaou","download_url":"https://codeload.github.com/mathaou/termdbms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245996193,"owners_count":20707187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","golang","sqlite","terminal","terminal-based","tui"],"created_at":"2024-07-31T19:00:54.380Z","updated_at":"2025-10-06T20:19:25.385Z","avatar_url":"https://github.com/mathaou.png","language":"Go","readme":"# termdbms\n\n## A TUI for viewing and editing databases, written in pure Go\n\n#### Installation Instructions\n\n###### Go Install\n\n```go\ngo install github.com/mathaou/termdbms@latest\n```\n\n###### Arch Linux\n\n```bash\n// pacman\nsudo pacman -S termdbms-git\n// yay\nyay -S termdbms-git\n```\n\n---\n\n###### Database Support\n    SQLite\n    CSV* (see note below)\n### made with modernc.org/sqlite, charmbracelet/bubbletea, and charmbracelet/lipgloss\n\n#### Works with keyboard and mouse!\n\n![Keyboard Control](https://i.imgur.com/vmK0DVn.gif)\n\n#### Navigate tables with any number of columns!\n\n![Columns and Tables](https://i.imgur.com/EqZRPqO.gif)\n\n#### Navigate tables with any number of rows!\n\n![Lot of Rows](https://i.imgur.com/yo7DMaa.gif)\n\n#### Serialize your changes as a copy or over the database original! (SQLite only)\n\n![Serialization](https://i.imgur.com/GhMcnid.gif)\n\n#### Query your database!\n\n![querying](https://i.imgur.com/9FB3ETs.gif)\n\n#### Other Features\n\n- Run SQL queries and display the results!\n- Save SQL queries to a clipboard!\n- Update, delete, or insert with SQL, with undo/redo supported for SQLite\n- Automatic JSON formatting in selection/format mode\n- Edit multi-line text with vim-like controls\n- Undo/Redo of changes (SQLite only)\n- Themes (press T in table mode)\n- Output query results as a csv\n- Convert .csv to SQLite database! Export as a SQLite database or .csv file again!\n\n#### Roadmap\n\n- MySQL/ PostgreSQL support\n- Line wrapping / horizontal scroll for format/SQL mode + revamped (faster format mode)\n\n#### \n\u003cdetails\u003e\n    \u003csummary\u003eHow To Build\u003c/summary\u003e\n\n##### Linux\n\n    GOOS=linux GOARCH=amd64/386 go build\n\n##### ARM (runs kind of slow depending on the specs of the system)\n\n    GOOS=linux GOARCH=arm GOARM=7 go build\n\n##### Windows\n\n    GOOS=windows GOARCH=amd64/386 go build\n\n##### OSX\n\n    GOOS=darwin GOARCH=amd64 go build\n\n\u003c/details\u003e\n\n#### Terminal settings\nWhatever terminal emulator used should support ANSI escape sequences. If there is an option for 256 color mode, enable it. If not available, try running program in ascii mode (-a).\n\n#### Known Issues\n - Using termdbms over a serial connection works very poorly. This is due to ANSI sequences not being supported natively. Maybe putty/mobaxterm have settings to allow this?\n - The headers wig out sometimes in selection mode\n - Line wrapping is not yet implemented, so text in format mode should be less than the maximum number of columns available per line for best use. It's in the works!\n - Weird combinations of newlines + tabs can break stuff. Tabs at beginning of line and mid-line works in a stable manner.\n\n##### Help:\n    -p / database/.csv path\n    -d / specifies which database driver to use (sqlite/mysql)\n    -a / enable ascii mode\n    -h / prints this message\n    -t / starts app with specific theme (default, nord, solarized)\n##### Controls:\n###### MOUSE\n\tScroll up + down to navigate table/text\n\tMove cursor to select cells for full screen viewing\n###### KEYBOARD\n\t[WASD] to move around cells, and also move columns if close to edge\n\t[ENTER] to select selected cell for full screen view\n\t[UP/K and DOWN/J] to navigate schemas\n    [LEFT/H and RIGHT/L] to navigate columns if there are more than the screen allows.\n        Also to control the cursor of the text editor in edit mode\n    [BACKSPACE] to delete text before cursor in edit mode\n    [M(scroll up) and N(scroll down)] to scroll manually\n\t[Q or CTRL+C] to quit program\n    [B] to toggle borders!\n    [C] to expand column\n\t[T] to cycle through themes!\n    [P] in selection mode to write cell to file, or to print query results as CSV.\n    [R] to redo actions, if applicable\n    [U] to undo actions, if applicable\n\t[ESC] to exit full screen view, or to enter edit mode\n    [PGDOWN] to scroll down one views worth of rows\n    [PGUP] to scroll up one views worth of rows\n###### EDIT MODE (for quick, single line changes and commands)\n    [ESC] to enter edit mode with no pre-loaded text input from selection\n    When a cell is selected, press [:] to enter edit mode with selection pre-loaded\n    The text field in the header will be populated with the selected cells text. Modifications can be made freely\n    [ESC] to clear text field in edit mode\n    [ENTER] to save text. Anything besides one of the reserved strings below will overwrite the current cell\n    [:q] to exit edit mode/ format mode/ SQL mode\n    [:s] to save database to a new file (SQLite only)\n    [:s!] to overwrite original database file (SQLite only). A confirmation dialog will be added soon\n    [:h] to display help text\n    [:new] opens current cell with a blank buffer\n    [:edit] opens current cell in format mode\n    [:sql] opens blank buffer for creating an SQL statement\n    [:clip] to open clipboard of SQL queries. [/] to filter, [ENTER] to select.\n    [HOME] to set cursor to end of the text\n    [END] to set cursor to the end of the text\n###### FORMAT MODE (for editing lines of text)\n    [ESC] to move between top control bar and format buffer\n    [HOME] to set cursor to end of the text\n    [END] to set cursor to the end of the text\n    [:wq] to save changes and quit to main table view\n    [:w] to save changes and remain in format view\n    [:s] to serialize changes, non-destructive (SQLite only)\n    [:s!] to serialize changes, overwriting original file (SQLite only)\n###### SQL MODE (for querying database)\n    [ESC] to move between top control bar and text buffer\n    [:q] to quit out of statement\n    [:exec] to execute statement. Errors will be displayed in full screen view.\n    [:stow \u003cNAME\u003e] to create a snippet for the clipboard with an optional name. A random number will be used if no name is specified.\n###### QUERY MODE (specifically when viewing query results)\n    [:d] to reset table data back to original view\n    [:sql] to query original database again\n","funding_links":[],"categories":["Go","Table of Contents","tui","Applications","\u003ca name=\"data-management-tabular\"\u003e\u003c/a\u003eData management - Tabular data"],"sub_categories":["Database Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathaou%2Ftermdbms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathaou%2Ftermdbms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathaou%2Ftermdbms/lists"}