- Fix ? keybinding requiring SHIFT modifier (was key_eq, now key_eq_shift) - Update help dialog with complete keybindings for all modes - Use proper Ctrl+X notation instead of ^X or Ctrl+X mixed case - Organize help by LIST MODE, EDIT MODE, GLOBAL sections - Fix column alignment for consistent display
logbuch
A terminal-based daily work log application built with Rust.
Note: This project is a work in progress and was entirely vibe-coded as an experiment in AI-assisted development. Expect rough edges, bugs, and incomplete features. Use at your own risk!
Features
- TUI Interface: Split-view with entry list and preview pane
- Vim-like Navigation:
j/k,gg/G,Ctrl+d/ufor movement - CRUD Operations: Create, edit, and delete log entries
- Search: Real-time search with
n/Nfor next/prev match - Sorting: Sort by subject or creation date
- Mouse Support: Click to select, double-click to edit, scroll wheel navigation
- CLI Mode: Quick entry creation without opening the TUI
- Import/Export: Backup and restore entries as JSON or CSV
Installation
cargo build --release
The binary will be at target/release/logbuch.
Usage
TUI Mode (default)
logbuch
CLI Mode - Quick Entry
# Create entry with message only
logbuch "Finished the API refactoring"
# Create entry with subject and message
logbuch "Deployed v2.0 to production" -s "Release"
Export/Import
# Export to JSON (stdout)
logbuch export
# Export to file
logbuch export -o backup.json
logbuch export -o backup.csv -f csv
# Import from file (format auto-detected from extension)
logbuch import backup.json
logbuch import data.csv
Database Location
Default: ~/.local/share/logbuch/db.sqlite
Override with --db <path> or set LOGBUCH_DB_PATH environment variable.
Keybindings
List View
| Key | Action |
|---|---|
j / k |
Navigate down/up |
g / G |
Jump to first/last |
Ctrl+d / Ctrl+u |
Half page down/up |
Ctrl+f / Ctrl+b |
Full page down/up |
Enter |
Edit selected entry |
c |
Create new entry |
d / Delete |
Delete entry |
/ |
Start search |
n / N |
Next/previous search match |
Ctrl+s |
Sort by subject |
Ctrl+t |
Sort by created date |
? |
Show help |
q / Esc |
Quit |
Detail View (Edit/Create)
| Key | Action |
|---|---|
Tab |
Switch between subject/message |
Ctrl+s / Ctrl+Enter |
Save |
Esc / Ctrl+c |
Cancel |
Ctrl+z |
Undo |
Ctrl+y |
Redo |
Ctrl+w |
Delete word backward |
Ctrl+Left/Right |
Move by word |
Mouse
- Single click on list: Select entry
- Double click on list/preview: Edit entry
- Scroll wheel: Navigate list
- Click on fields in edit view: Switch focus
- Click on keybinding hints: Trigger action
Tech Stack
- ratatui - Terminal UI framework
- tui-textarea - Text editing widget
- rusqlite - SQLite bindings
- clap - CLI argument parsing
- chrono - Date/time handling
Description
Languages
Rust
100%