A terminal UI for Dolt databases, inspired by lazygit.
Built with Go using Bubble Tea and Lip Gloss.

- Table management — view, stage, unstage, discard, rename, copy, drop, and export tables
- Branch operations — checkout, create, rename, merge, rebase, and delete branches
- Merge conflict resolution — resolve conflicts with ours/theirs or abort merge
- Commit history — browse commits, cherry-pick, revert, amend, and reset
- Tag management — create and delete tags at any commit
- Remote management — add/delete remotes, push, pull, and fetch
- Diff viewer — color-coded diffs with scrolling, diff statistics toggle, and schema diffs
- Blame view — view blame output per table
- Schema viewer — syntax-highlighted CREATE TABLE statements
- Table data browser — paginated, formatted table viewer
- SQL query panel — run arbitrary SQL queries with
: key
- Query diff — compare results of two SQL queries with
Q key (uses dolt query-diff)
- Sort and filter — sort branches/commits with
s, filter commits by author/message with F
- Stash support — stash/pop/drop changes with
S key
- Undo/redo — undo and redo mutations with
z / Z keys
- Clipboard copy — copy selected item to clipboard with
y key
- Database export — dump database to SQL/CSV/JSON with
E key
- Configuration viewer/editor — view and edit dolt config with
@ key
- Reflog — view reference log with
l key in commits panel
- Command log — focusable, scrollable log of all dolt CLI commands and errors
- Search/filter — filter tables, branches, and commits with
/
- Mouse support — click to focus panels and select items, scroll wheel navigation
- Zoomable layout — zoom panels with
+ / _ keys, adjustable column width with < / > / =
- Help overlay — searchable keyboard shortcut reference with
?
- Go 1.24+
- Dolt installed and on your
PATH
go install github.com/aspiers/lazydolt/cmd/lazydolt@latest
Or build from source:
git clone https://github.com/aspiers/lazydolt.git
cd lazydolt
go build -o ~/bin/lazydolt ./cmd/lazydolt
lazydolt /path/to/dolt/repo
| Key |
Action |
q / Ctrl+C |
Quit |
Tab / Shift+Tab |
Next / previous panel (1-2-3-4-5) |
1-5 |
Jump to panel by number |
c |
Commit |
+ / _ |
Zoom panel |
< / > |
Narrow / widen left column |
= |
Reset column width |
P |
Push to remote |
p |
Pull from remote |
f |
Fetch from remote |
R |
Refresh all data |
S |
Stash changes / show stash list |
: |
Run SQL query |
Q |
Query diff (compare two queries) |
/ |
Filter panel items |
Esc |
Back / reset zoom / clear filter |
z |
Undo last operation |
Z |
Redo undone operation |
y |
Copy selected item to clipboard |
E |
Export database (dump) |
@ |
View/edit dolt configuration |
Ctrl+L |
Redraw screen |
? |
Toggle help |
| Key |
Action |
j / k |
Navigate |
Space |
Stage/unstage table |
[ / ] |
Cycle right-panel tab (Status/Browse/Schema) |
a |
Stage all |
A |
Unstage all |
d |
Discard changes |
O |
Resolve conflicts (ours) |
T |
Resolve conflicts (theirs) |
X |
Abort merge |
s |
View schema |
w |
Toggle diff statistics |
b |
View blame |
o |
Table operations (rename, copy, drop, export) |
Enter |
Browse table data |
| Key |
Action |
j / k |
Navigate |
Enter |
View branch commits |
Space |
Checkout branch |
W |
Diff against current branch |
m |
Merge into current |
e |
Rebase onto branch |
n |
New branch |
r |
Rename branch |
s |
Sort branches |
D |
Delete branch/tag/remote |
a |
Add remote |
| Key |
Action |
j / k |
Navigate |
Enter |
View commit details |
s |
Sort commits |
F |
Filter commits (by author/message) |
A |
Amend last commit |
g |
Reset to commit |
C |
Cherry-pick commit |
t |
Revert commit |
T |
Create tag at commit |
l |
View reflog |
| Key |
Action |
j / k |
Scroll up/down |
h / l |
Scroll left/right |
PgUp / PgDn |
Page up/down |
u / d |
Half page up/down |
s |
Toggle schema diff |
w |
Toggle diff statistics |
| Key |
Action |
j / k |
Scroll up/down |
h / l |
Scroll left/right |
PgUp / PgDn |
Page up/down |
u / d |
Half page up/down |
Three layers with strict dependency direction:
internal/domain/ — pure types (no imports from other internal packages)
internal/dolt/ — CLI wrapper (imports domain only)
internal/ui/ — Bubble Tea TUI (imports domain + dolt)
# Run tests
go test ./...
# Run static analysis
go vet ./...
# Build
go build -o ~/bin/lazydolt ./cmd/lazydolt
# Re-record the demo GIF (requires vhs: https://github.com/charmbracelet/vhs)
vhs demo.tape
GPL-3.0