Skip to main content

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
  • today show today's logged hours and how much is left
  • week show a per-day summary for the current week
  • quarter last quarter summary (monthly totals, avg/day, flagged days)
  • undo delete the last entry you logged (with confirmation)
  • csv bulk upload from a CSV (backfill)
  • undo csv undo the last CSV upload (deletes the whole batch)
  • change project switch the default project (verified against Redmine)
  • change tracker switch the default tracker (verified against Redmine)
  • change user switch Redmine account (re-runs setup)
  • help show instructions
  • quit exit

Multiple accounts

  • change user — switch between saved accounts (no need to re-enter the token); choose N to add a new account
  • list users — show all saved accounts and which is active
  • delete user — remove a saved account (with confirmation)

Profiles are stored in ~/.redmine_worklog/config.json.

Command-line flags

  • rmlog log tasks (runs setup on first use)
  • rmlog --setup re-run the setup wizard / add an account
  • rmlog --plain disable colors and box characters (old terminals)
  • rmlog --version show 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)

Source distribution for redmine-worklog 0.3.0
File Size Uploaded
redmine_worklog-0.3.0.tar.gz 30.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redmine-worklog 0.3.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page