A powerful command-line interface for interacting with Redmine project management systems. This tool allows you to manage tasks, log time, and track work sessions directly from your terminal.
- 🔧 Easy Configuration: Simple setup with URL and API key
- 📋 Task Management: List and filter your assigned tasks
- ⏱️ Time Tracking: Built-in timer with automatic time logging
- 📊 Time Entries: View and manage your logged time entries
- 🎯 Activity Management: List and use available time entry activities
- �️ Project Management: List available projects with their IDs
- 📅 Daily Task Creation: Create daily tasks for teams with date ranges
- �🎨 Colored Output: Status-based color coding for better readability
- Python 3.8 or higher
- Access to a Redmine instance with API enabled
- Redmine API key (available in your user account settings)
- Clone the repository:
git clone https://github.com/yourusername/redminecli.git
cd redminecli- Install the package:
pip install --user .pip install redminecliBefore using any commands, you need to configure your Redmine instance:
redmine config --url https://your-redmine-instance.com --key your_api_keyYou can also run the command without options to be prompted for the values:
redmine configCheck your current configuration:
redmine credentialsView all tasks assigned to you:
redmine tasksFilter tasks by status:
redmine tasks --status "In Progress"Configure your Redmine instance URL and API key.
redmine config --url https://redmine.example.com --key abc123def456Options:
--url: Your Redmine instance URL (including protocol)--key: Your Redmine API key
Display current configuration settings.
redmine credentialsList all tasks assigned to you.
# List all tasks
redmine tasks
# Filter by status
redmine tasks --status "New"
redmine tasks --status "In Progress"Options:
--status: Filter tasks by status name (case-insensitive)
Start a timer for a specific issue.
redmine start --issue-id 123Features:
- Only one timer can be active at a time
- Starting a new timer automatically stops the previous one
- Verifies that the issue exists before starting
Check the status of your current timer.
redmine timer-statusOutput includes:
- Issue ID and title
- Start time
- Elapsed time
Stop the current timer and optionally log time to Redmine.
# Stop and be prompted to log time
redmine stop
# Stop with a comment
redmine stop --comment "Fixed the login bug"Options:
--comment,-m: Optional work description
Interactive prompts:
- Confirmation to log time to Redmine
- Activity selection
- Comment (if not provided via option)
Manually log time for a specific issue.
redmine log --issue-id 123 --hours 2.5 --activity "Development" --comment "Fixed login bug"Options:
--issue-id: Issue ID to log time for (required)--hours: Hours worked (decimal values supported, e.g., 2.5)--activity: Activity name (e.g., "Development", "Testing")--comment,-m: Work description (optional)
View your recent time entries.
# View recent time entries
redmine time-entries
# Filter by issue
redmine time-entries --issue-id 123
# Limit number of entries
redmine time-entries --limit 20Options:
--issue-id: Filter entries for specific issue--limit: Number of entries to display (default: 10)
List all available time entry activities.
redmine activitiesList all available projects with their IDs and names.
redmine projectsFeatures:
- Displays all projects visible to the current user
- Shows project IDs that can be used with other commands
- Only shows projects where the user has at least view permissions
Create daily tasks for a specific team.
# Create task for today
redmine daily --team "Backend" --project-id 1
# Create task for specific date
redmine daily --team "Frontend" --start-date 15-07-2025 --project-id 1
# Create tasks for date range
redmine daily --team "QA" --start-date 15-07-2025 --end-date 19-07-2025 --project-id 1Options:
--project-id: ID of the project where daily tasks will be created (required)--team: Team name for creating daily tasks (required)--start-date: Start date in DD-MM-YYYY format (optional, defaults to today)--end-date: End date in DD-MM-YYYY format (optional, creates date range if specified)
Features:
- Creates tasks with format
[Daily][Team] DD-MM-YYYY - Sets both start and due dates to the task date
- Can create single tasks or multiple tasks for a date range
- Interactive prompts for missing parameters
- Validates date formats and ranges
- Check available projects (if needed):
redmine projects- Start your day by checking tasks:
redmine tasks --status "In Progress"- Start working on an issue:
redmine start --issue-id 123- Check your progress:
redmine timer-status- Stop and log your work:
redmine stop --comment "Implemented user authentication"- Review your logged time:
redmine time-entries --limit 5# Work on issue 123 for 2 hours
redmine start --issue-id 123
# ... work for 2 hours ...
redmine stop --comment "Initial implementation"
# Switch to issue 124 for 1 hour
redmine start --issue-id 124
# ... work for 1 hour ...
redmine stop --comment "Code review and testing"
# Check total time logged today
redmine time-entries --limit 10If you forgot to use the timer:
redmine log --issue-id 123 --hours 3.5 --activity "Development" --comment "Refactored authentication module"Create daily tasks for your team:
# First, check available projects
redmine projects
# Create a single daily task for today
redmine daily --team "Backend Team" --project-id 1
# Create daily tasks for a week
redmine daily --team "Frontend Team" --project-id 2 --start-date 21-07-2025 --end-date 25-07-2025
# Create task for specific date
redmine daily --team "QA Team" --project-id 1 --start-date 22-07-2025The configuration is stored in a local file in your user directory. The exact location depends on your operating system:
- Linux/macOS:
~/.config/redminecli/config.json - Windows:
%APPDATA%\redminecli\config.json
To get your Redmine API key:
- Log into your Redmine instance
- Go to "My account" (usually in the top-right menu)
- Click on the "API access key" section
- Click "Show" to reveal your API key
- Copy the key for use with
redmine config
The CLI provides helpful error messages for common issues:
- Authentication errors: Invalid API key or insufficient permissions
- Network errors: Connection issues with Redmine instance
- Resource errors: Invalid issue IDs or missing resources
- Configuration errors: Missing or invalid configuration
- Clone the repository:
git clone https://github.com/yourusername/redminecli.git
cd redminecli- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install in development mode:
pip install -e ".[dev]"pytestblack .
isort .
flake8mypy cli/- click: Command-line interface framework
- python-redmine: Redmine API client library
- requests: HTTP library for API communication
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information about your problem
- Include your Redmine version and CLI version in bug reports
- Basic Redmine integration
- Task listing and filtering
- Time tracking with timer functionality
- Time entry logging and viewing
- Activity management
- Configuration management
- Colored output for better readability