A beautiful terminal-based interface for managing your MoneyBird time entries with style.
- 🖥️ Terminal-based UI built with Ratatui
- 🚀 Blazingly fast, written in Rust
- 📆 Browse and navigate time entries by week
- 🔄 Automatically refreshes data
- 🧩 Connects directly to MoneyBird's API
- 🌙 Proper error handling with helpful messages
- 🔐 Secure configuration for your API credentials
- 🌓 Automatic detection of system theme (light/dark mode)
- 🌐 Multilingual support with easy language switching
cargo install mot
Pre-built binaries and packages are available on the GitHub releases page for multiple platforms and architectures:
- Linux: x86_64, ARM (32/64-bit), RISC-V, PowerPC, s390x, and MUSL variants
- Windows: 32-bit and 64-bit zip archives
- macOS: Intel and Apple Silicon (ARM64) builds
- FreeBSD: x86_64 builds
- Debian/Ubuntu: Native
.deb
packages - Red Hat/Fedora/SUSE: RPM packages
- Arch Linux: AUR package
- macOS: Homebrew formula and DMG disk image
- Nix: Package for NixOS and Nix package manager
Each release includes SHA256 checksums for verifying file integrity.
# Linux x86_64 example
curl -L https://github.com/Tuurlijk/mot/releases/download/[version]/mot-linux-x86_64.tar.gz | tar xz
./mot
# Or install using your system's package manager
# Debian/Ubuntu
sudo dpkg -i mot_[version]_amd64.deb
# Homebrew (macOS)
brew install mot
Replace [version]
with the desired release version (e.g., v1.4.56
).
On first run, MOT will create a default configuration file at:
- Linux/macOS:
~/.config/mot/config.toml
- Windows:
%APPDATA%\mot\config.toml
You'll need to edit this file to add your MoneyBird API token:
access_token = "your_moneybird_api_token"
api_url = "https://moneybird.com/api/v2"
administration_id = "your_administration_id" # Optional
week_starts_on = "monday" # Options: monday, tuesday, wednesday, thursday, friday, saturday, sunday
language = "en" # Options: en, nl (Optional, defaults to system language)
MOT provides full internationalization support for all user-facing text:
-
Supported Languages:
- English (en)
- Dutch (nl)
-
Setting the Language:
- Via command line:
mot -l nl
ormot --language nl
- Via configuration file: Add
language = "nl"
to your config.toml
- Via command line:
You can also override the language for a single session by using the command line flag, which takes precedence over the configuration file setting.
Simply run mot
to start the application. Use the following keyboard shortcuts:
◀
/h
: Previous week▶
/l
: Next weekt
: Go to current weekr
: Refresh time entries▲
/k
: Move selection up▼
/j
: Move selection downq
: Quit the applicationF12
: Toggle log panel visibility
c
: Create a new time entrye
/Enter
/Space
: Edit selected time entryd
/Delete
: Delete selected time entry (with confirmation)x
: Export current view to CSV (with confirmation)
f
//
: Enter search/filter mode- Type to filter entries
Esc
: Exit search modeCtrl+U
: Clear search input
Tab
: Move to next fieldShift+Tab
: Move to previous fieldCtrl+S
: Save changes (create or update entry)Esc
: Cancel editing / Hide autocomplete dropdown- (Project/Contact Fields)
- Type to search
Enter
: Select highlighted autocomplete item / Move to next field if no dropdown↑
/↓
: Navigate autocomplete dropdownCtrl+U
: Clear autocomplete input
- (Description Field)
Enter
: Move to next fieldShift+Enter
: Insert newline
- (Date/Time Fields)
Enter
: Move to next field
↑
/k
: Select previous user↓
/j
: Select next userEnter
: Confirm selected user and save to config
Enter
/y
: Confirm action / Dismiss info/error modalEsc
/n
: Cancel action / Dismiss modal- Any other key: Dismiss info/error modal
- Add screenshot before release
- Add vhs gif recording with dummy data
- Filter view by client and project
- Export filtered CSV for a given week number
- Internal logging + logging pane
- CRUD operations for time entries
- Pull time logs from gitlab using dialogue
- Contact browser
- CRUD operations for contacts
- Project browser
- CRUD operations for projects
- Add ci workflows
- Localization (English and Dutch)
- Additional language support (contributions welcome!)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- MoneyBird for providing the API
- Ratatui for the amazing TUI framework
- Dennis Ameling for the original MoneyBird OpenAPI specification, which was trimmed using apisnip for this project.
- All contributors who have helped shape this project