Redmine Tools Skill
This skill provides a Node.js CLI to fetch, update, and summarize Redmine issues.
Command
node scripts/redmine.js get --id <issueId>
node scripts/redmine.js update --id <issueId> [--status_id <statusId>] [--notes <text>]
node scripts/redmine.js image --id <issueId>
Supported Flags
--id <issueId>: Required Redmine issue ID.--include <fields>: Optional include fields. Defaults toattachments,journals.--status_id <statusId>: Optional forupdate. New Redmine status ID.--notes <text>: Optional forupdate. Journal note content.- At least one of
--status_idor--notesmust be provided forupdate.
Environment Variables
REDMINE_BASE_URL: Redmine base URL, for examplehttps://redmine.example.com.REDMINE_API_KEY: Redmine API key.OPENAI_API_URL: OpenAI-compatible API base URL or full/chat/completionsURL.OPENAI_API_KEY: OpenAI-compatible API key.OPENAI_MODEL: Model name used for image summarization.OPENAI_IMAGE_SUMMARY_PROMPT: Prompt used to summarize each image attachment.
Behavior
getuses endpoint:/issues/:id.jsonwithinclude=attachments,journalsby default.updateuses endpoint:/issues/:id.json(HTTPPUT) and sends only the providedstatus_idand/ornotesfields.imagefetches issue attachments, keeps supported image files, and summarizes each image through an OpenAI-compatiblechat/completionsAPI.- Reads base URL and API key from environment variables only.
- Reads model URL, key, model name, and image summary prompt from environment variables.
- Prints JSON output to stdout.
- Returns non-zero exit code on errors.
Image Command Notes
- Supported image types:
png,jpg,jpeg,webp,gif. - Non-image or unsupported attachments are skipped and reported in the output.
- The command downloads each image attachment and sends it as a data URL to the model.
- The model prompt can include your own formatting, tone, or output constraints.
Examples
export REDMINE_BASE_URL=https://redmine.example.com
export REDMINE_API_KEY=xxxx
export OPENAI_API_URL=https://api.openai.com/v1
export OPENAI_API_KEY=xxxx
export OPENAI_MODEL=gpt-4.1-mini
export OPENAI_IMAGE_SUMMARY_PROMPT="Summarize what this image shows, explain its likely relevance to the issue, and keep the answer concise."
node scripts/redmine.js get --id 123
node scripts/redmine.js get --id 123 --include attachments,journals,watchers
node scripts/redmine.js update --id 123 --status_id 3 --notes "Issue fixed and verified"
node scripts/redmine.js update --id 123 --status_id 3
node scripts/redmine.js update --id 123 --notes "Need more logs from QA"
node scripts/redmine.js image --id 123