mcpField
R
redmine-cli

redmine-cli

github.com/diskd-aiProductivity158 installsUpdated 38w ago
Repository

About redmine-cli

Redmine CLI is a dependency-free terminal skill for interacting with Redmine through its REST API. It helps teams manage projects, issues, comments, and issue relationships, with JSON output for automation.

Key features

  1. 01List projects and issues
  2. 02Create and edit issues
  3. 03Add, update, and remove comments
  4. 04Manage issue relationships
  5. 05Select among configured instances

Use cases

  1. 01Find issues by query or status
  2. 02Create tasks and bug reports
  3. 03Record notes on issue progress
  4. 04Link blocking or related issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/diskd-ai/redmine-cli --skill redmine-cli

After installing, type/redmine-cliin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
README.md
agents/
openai.yaml
references/
rest-api.md
scripts/
redmine_cli.py

Details

From the project README

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

Comments

Markdown supported