A local-first time tracking application for the terminal, built in Rust.
Saga combines a full-featured terminal UI (TUI) with a scriptable CLI so you can track time, manage projects and clients, generate reports, and produce invoices — all without leaving the command line.
- Timer — start, stop, resume, and cancel timers from the CLI or TUI
- Interactive TUI — dashboard with live timer, today's entries, and a weekly bar chart
- Projects & clients — organize work by project (with optional budgets) and client
- Tags — categorize entries with colored tags
- Billing rates — set per-project or per-client hourly rates
- Reports — daily, weekly, or monthly summaries as a table, CSV, or PDF
- Invoices — generate PDF invoices for a client and date range
- Local-first — all data lives in a local SQLite database; no account required
- Config — customize tick rate, default currency, and more via
saga config
cargo install saga-timecargo install --path .git clone https://github.com/squirrelsoft-dev/saga.git
cd saga
cargo build --release
# binary is at target/release/saga# Start a timer
saga start myproject -d "working on feature X"
# Check status
saga status
# Stop the timer
saga stop
# View today's entries
saga log --today
# Launch the interactive TUI (also the default with no arguments)
saga| Command | Description |
|---|---|
saga / saga tui |
Launch the interactive TUI |
saga start <project> |
Start a timer (-d description, -t tags, --no-billable) |
saga stop |
Stop the active timer |
saga status |
Show the current timer |
saga cancel |
Discard the active timer |
saga resume |
Restart the last stopped timer |
saga add |
Add a completed entry (-p, -s, -e, -d, -t) |
saga log |
List entries (--today, --week, --month, --project, --client) |
saga report |
Generate a report (--period, --format, -o) |
saga projects <add|list|edit|archive|activate> |
Manage projects |
saga clients <add|list|edit|delete> |
Manage clients |
saga tags <add|list|delete> |
Manage tags |
saga rates <set|list> |
Manage billing rates |
saga invoice <generate|list> |
Generate or list invoices |
saga config <show|set|path> |
View or update configuration |
Saga stores its SQLite database and configuration in the standard platform directories (via the directories crate):
| Platform | Data directory |
|---|---|
| Linux | ~/.local/share/saga/ |
| macOS | ~/Library/Application Support/saga/ |
| Windows | {FOLDERID_LocalAppData}\saga\ |
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License — see the LICENSE file for details.