Simple CLI tools to keep a record of daily rainfall records.
- Python 98.1%
- Just 1.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
/ pr-review (push) Has been skipped
/ pr-review (release) Has been skipped
/ gitleaks (push) Successful in 15s
/ gitleaks (release) Successful in 13s
/ checks (push) Successful in 3m55s
/ publish (push) Has been skipped
/ checks (release) Successful in 4m9s
/ deploy-docs (release) Has been skipped
/ deploy-docs (push) Successful in 1m19s
/ publish (release) Successful in 26s
|
||
| .forgejo/workflows | ||
| docs | ||
| src/rainlog | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| .secrets.baseline | ||
| AI-DECLARATION.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| improvements.md | ||
| justfile | ||
| mkdocs.yml | ||
| noxfile.py | ||
| pylock.toml | ||
| pyproject.toml | ||
| README.md | ||
| Release-Notes.md | ||
| Release-Notes.md.template | ||
| ruff.toml | ||
| uv.lock | ||
rainlog
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: forge.marvin8.zone/marvin8/rainlog
- Issues: forge.marvin8.zone/marvin8/rainlog/issues
- Changelog: CHANGELOG.md