R

redmine-cli

by @diskd-aiv
4.0(20)

redmine-cli is a command-line tool that automates the management of Redmine issues and tickets via the Redmine REST API. It allows users to quickly create, list, view, and edit issues, add comments, and manage issue relationships directly in the terminal. It also supports multi-instance configuration. This tool is suitable for developers and project managers to efficiently perform Redmine operations from the command line, eliminating the need to switch to the web interface.

redminecliissue-trackingproject-managementautomationGitHub
Installation
git clone https://github.com/diskd-ai/redmine-cli.git
compare_arrows

Before / After Comparison

1
Before

Manually clicking and filling out forms in the web interface to create, view, and update Redmine issues is a cumbersome process, leading to low efficiency, especially when batch processing or quick queries are needed.

After

Using command-line tools, users can directly and quickly perform Redmine operations in the terminal, such as creating, editing, and commenting on issues, enabling automation scripts, and significantly improving issue management and daily work efficiency.

SKILL.md

Redmine CLI

Use the bundled scripts/redmine_cli.py (no external dependencies) to interact with Redmine from the terminal. It reads auth/config from ~/.red/config.json (and optionally ./.red/config.json as an override).

Quick start

  1. Create a Redmine API key (Redmine UI: My account -> API access key).
  2. Create ~/.red/config.json (v1 / single-instance format):
{
  "api-key": "YOUR_API_KEY",
  "editor": "",
  "pager": "",
  "project": "",
  "project-id": 0,
  "server": "https://redmine.example.com",
  "user-id": 0
}
  1. Verify connectivity:
python scripts/redmine_cli.py project list --json | head

Multi-instance (--rid) (optional)

If your ~/.red/config.json uses a v2 / multi-server structure (like the reference red-cli), select a server with --rid:

python scripts/redmine_cli.py issue list --rid prod
python scripts/redmine_cli.py issue list --rid 1

Common tasks

List projects (default output is TSV; use --json for automation):

python scripts/redmine_cli.py project list
python scripts/redmine_cli.py project list --json

List issues (uses project-id from config unless --all or issue list all):

python scripts/redmine_cli.py issue list
python scripts/redmine_cli.py issue list --json --limit 10 --page 1
python scripts/redmine_cli.py issue list --query "login fails" --status_id 1 --sort priority
python scripts/redmine_cli.py issue list --issue-urls
python scripts/redmine_cli.py issue list --project   # include project column in output

List available projects, trackers, statuses, and priorities (useful before creating issues):

python scripts/redmine_cli.py issue meta

Create an issue (defaults to "Task" tracker; use --tracker to override by name):

python scripts/redmine_cli.py issue create --project-id 1 --subject "New feature request" --json
python scripts/redmine_cli.py issue create --subject "Bug fix" --description "Details here" --json
python scripts/redmine_cli.py issue create --subject "Subtask" --parent-id 123 --json
python scripts/redmine_cli.py issue create --subject "A bug" --tracker Bug --priority-id 3 --json

Get an issue:

python scripts/redmine_cli.py issue view 12345
python scripts/redmine_cli.py issue view 12345 --journals

List all issues across projects:

python scripts/redmine_cli.py issue list all
python scripts/redmine_cli.py issue list --all

List only issues assigned to the current user:

python scripts/redmine_cli.py issue list me

Add a journal note to an issue:

python scripts/redmine_cli.py issue note 12345 -m "Fixed in commit abc123"
python scripts/redmine_cli.py issue note 12345 -m "Customer-visible" --private
python scripts/redmine_cli.py issue note 12345 --message-file ./notes.md
python scripts/redmine_cli.py issue note 12345 --message-file - < ./notes.md

Edit issue fields (subject, description, status, priority, tracker, parent, assigned-to):

python scripts/redmine_cli.py issue edit 12345 --description "New description"
python scripts/redmine_cli.py issue edit 12345 --description-file ./description.md
python scripts/redmine_cli.py issue edit 12345 --subject "Renamed" --status-id 2
python scripts/redmine_cli.py issue edit 12345 --parent-id 100       # make it a subtask
python scripts/redmine_cli.py issue edit 12345 --assigned-to-id 5 --priority-id 3

Manage issue relations (relates, blocks, duplicates, precedes, follows):

python scripts/redmine_cli.py issue relate add 12345 67890                    # relates (default)
python scripts/redmine_cli.py issue relate add 12345 67890 --type blocks      # 12345 blocks 67890
python scripts/redmine_cli.py issue relate list 12345                          # list relations
python scripts/redmine_cli.py issue relate list 12345 --json
python scripts/redmine_cli.py issue relate remove 42                           # delete by relation id

Update/remove an existing comment (journal):

  1. Find the journal id in issue view --journals output: issue.journals[].id
  2. Update or remove:
python scripts/redmine_cli.py issue comment update 5993 -m "Updated comment text"
python scripts/redmine_cli.py issue comment update 5993 --message-file ./comment.md
python scripts/redmine_cli.py issue comment remove 5993

Show current user info:

python scripts/redmine_cli.py user me

Troubleshooting

  • HTTP 401/403: API key missing/invalid, REST API disabled, or insufficient permissions.
  • HTTP 404: wrong base URL (ensure it is the Redmine root, not a sub-path like /projects).
  • Config not found: ensure ~/.red/config.json exists and is valid JSON.

References

  • Redmine REST API notes (endpoints, payloads, filters): references/rest-api.md

User Reviews (0)

Write a Review

Effect
Usability
Docs
Compatibility

No reviews yet

Statistics

Installs1
Rating4.0 / 5.0
Version
Updated2026年5月20日
Comparisons1

User Rating

4.0(20)
5
10%
4
40%
3
40%
2
10%
1
0%

Rate this Skill

0.0

Compatible Platforms

🔧Manual

Timeline

Created2026年4月9日
Last Updated2026年5月20日