Releases: alexander-zierhut/agent-tool-openproject-cli
Release list
v0.5.4
Full Changelog: v0.5.3...v0.5.4
Full Changelog: v0.5.3...v0.5.4
Full Changelog: v0.5.3...v0.5.4
Full Changelog: v0.5.3...v0.5.4
v0.5.3
Full Changelog: v0.5.2...v0.5.3
Full Changelog: v0.5.2...v0.5.3
Full Changelog: v0.5.2...v0.5.3
Full Changelog: v0.5.2...v0.5.3
v0.5.2
Full Changelog: v0.5.1...v0.5.2
Full Changelog: v0.5.1...v0.5.2
Full Changelog: v0.5.1...v0.5.2
Full Changelog: v0.5.1...v0.5.2
v0.5.1
Full Changelog: v0.4.1...v0.5.1
Full Changelog: v0.4.1...v0.5.1
Full Changelog: v0.4.1...v0.5.1
Full Changelog: v0.4.1...v0.5.1
v0.4.1 — bugfix: silent wrong-file write on `attach download`
Bugfix release. No new features; one real bug with a silent failure mode.
Fixed
attach download --output PATH wrote to the wrong file, silently, with exit 0.
--output/-o is a global flag (output format) that the CLI strips from anywhere on the command line — so attach download's own --output was consumed before the command ever saw it. The chain: the path got read as a format → coercion failed → the error was swallowed → the format degraded to json → download() received no path → the file landed in the current directory under its original name, and the CLI exited 0.
- The option is now
--out.-Ois unchanged and always worked. - This is not a breaking change — the long form never worked in any release.
openproject attach download 42 --out ./report.pdf # now lands where you askedOther fixes
make test-unitran 30 of 144 hermetic tests while advertising the full set.Emitter.message()used a denylist that would have printed prose intocsv/markdownoutput, corrupting both.- README now opens with a Contributing quickstart:
pip install -e '.[test]' && pytest— 144 passed, 103 skipped in ~2s, with no OpenProject, no Docker and no token. The full stack is documented as the deeper tier, not a prerequisite.
Added
tests/test_globals_unit.py — walks all 94 commands and fails if any declares an option in the reserved global namespace, so this class of bug can't return. It reserves only the flags actually stripped from argv: --version, --profile and --no-color are ordinary root options that a subcommand may legitimately shadow (verified: wp list --version "Sprint 3" and raw get x -p k=v both work).
Verified
246 passed / 1 skipped against a live OpenProject 15; CI green on Python 3.10–3.12 plus a live-instance integration job. The --out path was additionally confirmed by hand end-to-end: upload → download to an explicit path → correct contents, nothing left in the working directory.
pipx install -U agent-tool-openproject-cliFull Changelog: v0.4.0...v0.4.1
v0.4.0 — install into Claude Code
v0.4.0 — install into Claude Code
pipx install -U agent-tool-openproject-cli
openproject install claude # Claude now auto-uses this CLI for OpenProject work- 🤖
openproject install claude— registers a Claude Code skill at~/.claude/skills/openproject/SKILL.md, the idiomatic discovery mechanism: Claude auto-invokes the CLI whenever you mention OpenProject. The skill points atopenproject guide, so Claude learns the tool from the tool and never goes stale.--printpreview ·--memoryalso hint in~/.claude/CLAUDE.md·--projectinstall into this repo's.claude/·--uninstall(fully reversible) ·--force
- 🔎 First-run offer — on the first interactive run, if Claude Code is detected, the CLI offers to install the skill (once; declining changes nothing). Never prompts when running under Claude Code or in pipelines.
- 📓 AGENTS.md — full session-context section for agents (how sticky defaults apply, and the safety rules).
Everything from v0.3.0 included (--dry-run, CSV/--stream, retries, detailed cost export with time-entry custom fields, session context).
Tested against OpenProject 13–17 · 242 tests green · standalone binaries for Linux/macOS/Windows attached.
Full Changelog: v0.3.0...v0.4.0
Full Changelog: v0.3.0...v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0 — dry-run, CSV/stream, retries, detailed cost export, session context
v0.3.0 — power features for automation & invoicing
pipx install agent-tool-openproject-cli # or: pip install -U agent-tool-openproject-cli- 🧪
--dry-run— any mutating command prints the exact request it would send (names resolved,lockVersionfilled) and exits without touching the server. - 📤 CSV output (
-o csv) and--stream(NDJSON, one object per line) for spreadsheets and large result sets. Both honour--fields. - 💶 Detailed cost export —
cost report --detailedemits one row per time entry including time-entry custom fields, CSV-exportable for invoicing (OpenProject's own reports can't).time add/editgained--custom-fields. - 🔁 Retry/backoff — the client retries transient failures (429 + 5xx on reads) with backoff, honoring
Retry-After. - 🧭 Session context —
openproject context set --project X --assignee megives sticky defaults reused by later commands (explicit flags win;--no-contextbypasses;context save/usefor named contexts). - Confirmed the OpenProject cost-report API doesn't exist in v3; the client-side report is the substitute.
Tested against OpenProject 13–17. 235 tests (unit + integration) green in CI. Standalone binaries for Linux/macOS/Windows attached below.
Full Changelog: v0.2.1...v0.3.0
Full Changelog: v0.2.1...v0.3.0
Full Changelog: v0.2.1...v0.3.0
v0.2.1 — first PyPI release
v0.2.1 — now on PyPI 🎉
pipx install agent-tool-openproject-cli # installs the `openproject` commandThe distribution is published as agent-tool-openproject-cli (the name openproject-cli was already taken on PyPI); the installed command is unchanged: openproject.
Includes everything from v0.2.0 — the built-in openproject guide, self-documenting help, --version, three output formats, --fields, discoverable search, and per-person cost reporting. Also available as standalone binaries (attached below) for Linux/macOS/Windows.
Full Changelog: v0.2.0...v0.2.1
Full Changelog: v0.2.0...v0.2.1
Full Changelog: v0.2.0...v0.2.1
Full Changelog: v0.2.0...v0.2.1
v0.2.0 — self-documenting (built-in guide)
What's new in v0.2.0
Focus: make the CLI self-documenting so agents (and humans) can use it without any external context.
- 🧭
openproject guide— a built-in operating manual: output contract, auth, name resolution, filter discovery, and gotchas, plus per-topic cheat-sheets (guide search,guide wp,guide time,guide costs, …). - 🆘 Self-documenting help — root
--helpnow signpostsguideandsearch fields; the trickiest commands (wp create/update,comment edit,time add,member add,raw patch) carry examples and gotchas inline. - 🔖
--version/-Vflag. - 📦 Release workflow now attaches each platform binary independently (a slow/queued runner no longer blocks the others).
215-test suite (unit + integration) green in CI against a live OpenProject instance.
Install
pipx (recommended):
pipx install https://github.com/alexander-zierhut/agent-tool-openproject-cli/releases/download/v0.2.0/openproject_cli-0.2.0-py3-none-any.whlSingle binary (no Python) — download openproject-linux-x86_64 (macOS/Windows attached by CI), then:
chmod +x openproject-linux-x86_64 && mv openproject-linux-x86_64 /usr/local/bin/openproject
openproject guide # learn the tool from the toolv0.1.0 — agent-ready OpenProject CLI
First release of openproject-cli — an agent-ready command-line interface for OpenProject (REST API v3).
Highlights
- Work packages: create, update, delete, move, assign, watch, schema discovery
- Discoverable search: plain flags (
--mine,--overdue,--updated-since 7d), presets (search mine),--whereexpressions, andsearch fields|operators|values - Projects, comments, time entries, notifications, wiki, attachments + Nextcloud file links
- Per-person time & cost reporting for monthly invoicing
- 3 output formats (json/table/markdown),
--fieldsselection, secure OS-keyring credentials - 208-test suite (unit + integration) run against a live OpenProject instance
Install
pipx (recommended):
pipx install https://github.com/alexander-zierhut/agent-tool-openproject-cli/releases/download/v0.1.0/openproject_cli-0.1.0-py3-none-any.whlSingle binary (no Python needed) — download openproject-linux-x86_64, then:
chmod +x openproject-linux-x86_64 && mv openproject-linux-x86_64 /usr/local/bin/openproject
openproject --helpmacOS/Windows binaries are attached by CI. See the README and AGENTS.md.