Simple CLI tools to keep a record of daily rainfall records.
- Python 98.1%
- Just 1.9%
rainlog
PyPI version Python versions License: AGPL-3.0 CI Docs
A terminal-based rain logger. Record daily rainfall totals in a local SQLite database and explore history through an interactive TUI.
License: AGPL-3.0-or-later
Python: 3.11–3.14
Install
From the repository root (with uv recommended):
uv sync
Or install the package into your environment:
uv pip install .
The console entry point is rainlog.
Usage
Run the TUI:
rainlog
| Key | Action |
|---|---|
n |
Add a rain record |
e |
Edit a record (use s to select a bar first in daily view) |
← / → |
Scroll history back / forward |
g |
Cycle grouping (daily / weekly / monthly / yearly) |
m |
Toggle chart mode (rainfall ↔ soil-moisture index) |
+ / - |
More / fewer bars |
a |
Auto bar count |
q |
Quit |
Data storage
- By default, data lives in
rainlog.sqlitein~/.local/share/rainlog/. - Use
--db-dirto put the database in another directory (the filename staysrainlog.sqlite). - Each row stores the rain total in millimetres for a 24-hour block ending at 09:00 local time on the given calendar day.
Development
Tests and automation are driven by Nox; list sessions with nox -l and run the ones you need (e.g. tests).
Links
- Documentation: rainlog.marvin8.zone
- Source: codeberg.org/marvin8/rainlog
- Issues: codeberg.org/marvin8/rainlog/issues
- Changelog: CHANGELOG.md