redmine-worklog
A tiny CLI to log your daily tasks to Redmine in plain text.
No Teams, no web UI, no admin approval — just pip install and go.
Clean, professional terminal UI in your brand colors (falls back to plain
text on older terminals with --plain).
Install
From this folder:
pip install .
or for development (edits take effect immediately):
pip install -e .
This adds two commands: rmlog and redmine-worklog.
First run
rmlog
The setup wizard asks for your name, Redmine URL, and API access key
(Redmine -> My account -> API access key), verifies the token, and saves
everything to ~/.redmine_worklog/config.json (per user, so each teammate
logs as themselves).
Logging tasks
After setup, rmlog greets you and waits for tasks. One task per line:
Bug: fix login crash 2 hr today
Deployment: release v2 1 hr today
upload module discovery 3 hr today
sprint planning 1.5 hr 15-09-2026 16-09-2026
Format: [Tracker:] <subject> <hours> hr <start-date> [<end-date>]
- optional
Tracker:prefix — one of: Bug, Scrum Meetings, Documentation, Issues, Tasks, Enhancements, Deployment, Story, Epic, Meetings, Review - if no prefix, the tracker is guessed from the words (e.g. "deploy" -> Deployment, "review" -> Review); if nothing matches, your default is used
- dates:
today|yesterday|dd-mm-yyyy - end date optional (defaults to start date)
It shows a preview and waits for you to type yes before posting.
Rules (enforced before posting)
- Max 9 hours/day (configurable)
- No weekends
- No holidays (
~/.redmine_worklog/config.json->holidays)
CSV backfill (bulk upload)
Inside the chat, type csv to bulk-upload many tasks at once — handy for
back-filling weeks or months. It shows the required format, asks for the file
path, validates the whole file, reports any problems, and only uploads after
you confirm.
CSV header (exact column names):
subject,description,priority,status,tracker,start_date,due_date,estimated_hours,date,hours,activity,comment
tracker is optional — leave it blank to use your default (set at setup or
via change tracker).
Example row:
UPLOAD MODULE DISCOVERY,working on upload module discovery,Normal,Closed,2026-09-17,2026-09-18,8,2026-09-18,4,Development,Initial implementation
Required in every row: subject, hours, date. Everything else falls back
to your defaults. Dates accept YYYY-MM-DD or dd-mm-yyyy. The same rules
(9h/day, no weekends, no holidays) are checked across all rows before upload.
Commands (inside the chat)
- type a task log one task
todayshow today's logged hours and how much is leftweekshow a per-day summary for the current weekquarterlast quarter summary (monthly totals, avg/day, flagged days)undodelete the last entry you logged (with confirmation)csvbulk upload from a CSV (backfill)undo csvundo the last CSV upload (deletes the whole batch)change projectswitch the default project (verified against Redmine)change trackerswitch the default tracker (verified against Redmine)change userswitch Redmine account (re-runs setup)helpshow instructionsquitexit
Multiple accounts
change user— switch between saved accounts (no need to re-enter the token); chooseNto add a new accountlist users— show all saved accounts and which is activedelete user— remove a saved account (with confirmation)
Profiles are stored in ~/.redmine_worklog/config.json.
Command-line flags
rmloglog tasks (runs setup on first use)rmlog --setupre-run the setup wizard / add an accountrmlog --plaindisable colors and box characters (old terminals)rmlog --versionshow version
Setting the NO_COLOR environment variable also enables plain mode.
Update notifications
On startup the tool quietly checks PyPI (at most once per day) and, if a newer
version is available, shows a note reminding you to run
pip install --upgrade redmine-worklog. If PyPI is unreachable it silently
skips the check — it never blocks or slows down the tool.
Daily hours limit
If a day would go over the limit (default 9h), the tool shows a warning and asks you to confirm before logging the extra time. Weekends and holidays are still hard blocks.
Config file
~/.redmine_worklog/config.json holds your name, URL, token, project,
tracker, defaults (activity/comment/status), rules, and holidays.
The token is stored locally with restricted file permissions.
Metadata
Release files for redmine-worklog 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| redmine_worklog-0.3.0.tar.gz | 30.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| redmine_worklog-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.7 kB
Release files / redmine_worklog-0.3.0.tar.gz
| Download URL | redmine_worklog-0.3.0.tar.gz |
|---|---|
| Size | 30.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1291c5764e137ff9104519b215cd8501a51ca2e228cfc4e911d911c93d45b5fd
|
|
BLAKE2b-256 checksum How to use checksums |
760060d8fb680b686319786ff542442f25692893dbe12043d7b4fe4dd74f7210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / redmine_worklog-0.3.0-py3-none-any.whl
| Download URL | redmine_worklog-0.3.0-py3-none-any.whl |
|---|---|
| Size | 26.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1a9379985cc9969efd1fb358aa568da2e3550270209c795ed3fb9c22a08f78e
|
|
BLAKE2b-256 checksum How to use checksums |
e8f3500ee4614f9980598d641a42ac1240862bec43d1493f92c9c9b5e24bbc32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|