Python CLI skill for managing OpenProject via API v3. Full CRUD for work packages, projects, time entries, and 120+ commands covering all major API resources.
Key improvement over the JS version: full support for assignee, responsible, estimatedTime, remainingTime, duration, startDate, dueDate, version, and category on both wp-create and wp-update.
# Set environment variables
export OP_HOST=https://projects.example.com
export OP_API_TOKEN=your-api-token
export OP_DEFAULT_PROJECT=my-project
# Install
cd openproject-skill
uv sync
# Run
uv run python scripts/openproject.py --help
uv run python scripts/openproject.py wp-list --project my-project# Create with full scheduling info
uv run python scripts/openproject.py wp-create \
--project my-project \
--type Task \
--subject "Implement feature X" \
--assignee me \
--responsible 5 \
--estimated-time 16h \
--start-date 2026-03-21 \
--due-date 2026-03-25 \
--priority High \
--version "Sprint 5"
# Update progress
uv run python scripts/openproject.py wp-update --id 42 \
--remaining-time 4h \
--percent-done 75 \
--status "In progress"
# Read full details (shows all estimate/progress fields)
uv run python scripts/openproject.py wp-read --id 42The CLI accepts human-friendly duration formats:
| Input | ISO 8601 |
|---|---|
8h |
PT8H |
2.5h |
PT2H30M |
3d |
P3D |
1d4h |
P1DT4H |
30m |
PT30M |
PT8H |
PT8H (pass-through) |
uv sync --group dev
uv run pytestMIT