Skip to content

Releases: VidGuiCode/plane-cli

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 10 Jul 11:57

Closes the two verification items left open by v0.4.3 (both implemented offline against documented field names, never confirmed live) plus one agent-facing discovery nicety. See pages-support-root-cause.md and production-use-gap-report.md.

Polish

  • discover advertises Plane Pages (un)supportdiscover context and discover issue-inputs now include an additive capabilities.pages field ({ supported, reason }) so AI agents can skip the Pages surface instead of probing and hitting a 404. The probe is a lightweight, non-fatal GET of the project-pages endpoint: a 404 reports supported: false, a success reports supported: true, and any probe error (or no project in context) reports supported: null — the probe can never make discover fail, and --json output stays pure JSON.

Verification

  • Module lead write key confirmed live — verified against a real work-items instance that module update/create --lead must send body key lead (not lead_id): PATCH { lead } persists on read-back, while PATCH { lead_id } is silently ignored. The v0.4.3 mapping was already correct; the code comment is updated from "unverified offline" to live-confirmed. No behavior change.
  • Member-role field shape confirmed live — the token-authenticated workspace members/ endpoint returns role as a top-level role field (no nested/annotated shape on this instance), which the v0.4.3 getMemberRole helper already reads correctly. No behavior change. (Note: the endpoint reports the same role value for every member on that instance — an upstream public-API data quirk, not a field-mapping bug the CLI can remap.)

Install / upgrade

npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.4.4/plane-cli-0.4.4.tgz

Or if already installed: plane upgrade.

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 09 Jul 23:32

Clears the actionable items from the 2026-07-10 production-use gap report. See production-use-gap-report.md.

Bug fixes

  • Ambiguous sequence refs no longer resolve to the wrong issuefindIssueBySeq picked the first of any issues sharing a sequence_id (real in migrated/imported projects) and mutated it while reporting success. It now aborts on duplicates, listing every candidate by UUID + state + title, and requires an unambiguous UUID. P1 / data-integrity.
  • members list no longer shows every member as "Viewer" — role was read as a raw top-level field while name/email tolerate three API shapes. Added a getMemberRole helper (nested member.role → annotated member__role → top-level role) and render - when role is genuinely absent.
  • Unknown --fields names no longer fail silentlyissue get/list/mine now emit a stderr warning naming unrecognized fields and listing the valid normalized names; stdout stays pure JSON.

Features

  • plane module update / plane cycle update — update a module (--name, --description, --status, --startstart_date, --targettarget_date, --lead) or cycle (--name, --description, --startstart_date, --endend_date) in place. The same property options were added to module/cycle create and ensure, so structures can be born fully specified. Both update commands require at least one option and support --dry-run/--json.
  • --module / --cycle on issue create — join a module/cycle at creation. Membership is resolved up-front and POSTed after create; --dry-run previews the create plus each membership call, and a membership failure after the issue exists reports partial success with a non-zero exit and the created UUID.

Polish

  • Tracking columns on issue list / issue mine — added --columns <list> (id, title, state, priority, due, start, assignee, labels, uuid, created, updated); the default table now includes DUE. Unknown column names error before any network call.

Confirmations

  • Single-issue mutations (issue update/close/reopen/delete, module add/remove, cycle add/remove) now print the resolved issue UUID, so a wrong target is visible even when resolution is unambiguous.

Testing

  • Added resolver tests for duplicate-sequence resolution, getMemberRole across all member shapes, and unknown-field detection; command tests for the --fields stderr warning, --columns, issue create --module/--cycle dry-run, and module/cycle update dry-run.

Install / upgrade

npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.4.3/plane-cli-0.4.3.tgz

Or if already installed: plane upgrade.

v0.4.1

Choose a tag to compare

@VidGuiCode VidGuiCode released this 06 May 11:26

Bug fixes

  • Fixed cycle issue membership commands to use Plane's cycle-issues endpoint for cycle current, cycle issues, cycle add, and cycle remove.
  • Improved the 404 hint for cycle membership endpoint failures so a resolved cycle is not reported as missing.

Testing

  • Added command tests for cycle issue listing and removal through the cycle-issues endpoint.

v0.4.0

Choose a tag to compare

@VidGuiCode VidGuiCode released this 06 May 07:46

Features

  • Added plane module ensure <name> and plane cycle ensure <name> for idempotent automation workflows.
  • Added bulk module and cycle assignment with comma-separated issue refs, e.g. plane module add ROADMAP-157,158,159 "Website Deployment".
  • Added plane page search <query> and name-based plane page get <page> lookup.
  • Updated discover issue-inputs to advertise comma-separated issue refs, ensure commands, and bulk assignment commands.

Reliability

  • Added runtime round-trip assertions for issue update so the CLI exits non-zero if Plane silently ignores requested fields.
  • Fixed cycle create to include project_id in the request body.
  • Improved page endpoint compatibility errors when a Plane instance/API version returns 404 for project pages.

Testing

  • Added command-level tests for cycle/module ensure, bulk assignment, and issue update round-trip validation.

v0.3.2 — fix --due silent no-op on issue update

Choose a tag to compare

@VidGuiCode VidGuiCode released this 24 Apr 09:25

Bug fixes

  • Fixed --due flag silently dropped on issue create, issue update, and issue move — the request body sent due_date: "..." but Plane's API expects target_date and silently ignored the wrong key, leaving the due date unset despite the CLI printing Updated and exiting zero. Same class of bug as the v0.3.1 --label fix.
  • Fixed issue get never displaying the due date — the Due: line read issue.due_date (the wrong field) so it was always skipped.
  • Fixed --json output field dueDate always returning null — the normalizer was reading the wrong source field.

Testing

  • Added tests/smoke/due-date-roundtrip.test.ts — live regression test gated on PLANE_CLI_LIVE_TESTS=1 + PLANE_TEST_PROJECT, round-trips --due on create, update, and clear (--due none), verifies both raw target_date and normalized dueDate alias.
  • Added tests/smoke/issue-update-audit.test.ts — silent-drop audit for other issue update flags: --priority, --description, --assignee me, --state (opt-in), --parent (opt-in). Live run against the reporter's instance found no other silent drops.

Install

npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.3.2/plane-cli-0.3.2.tgz

v0.3.1 — fix --label silent drop, add --label-id

Choose a tag to compare

@VidGuiCode VidGuiCode released this 17 Apr 22:18

Bug fixes

  • --label flag silently dropped on issue create, issue update, label add, label remove — the request body was sending label_ids: [...] but Plane's v1 API silently ignores that key and expects labels: [...]. Issues were created with no labels attached despite the CLI exiting zero. All four call sites now send the correct field name. (fixes #19)

Features

  • --label-id <uuid> on issue create and issue update — alternative to --label <name> that skips name resolution (no extra GET /labels/ call) and validates the UUID format up front.

Polish

  • --label help text now says case-insensitive, so security, Security, and SECURITY are all accepted.
  • discover issue-inputs now lists labels (not label_ids) as an optional field, matching the actual API payload key.
  • New live round-trip integration test (tests/smoke/label-roundtrip.test.ts) gated on PLANE_CLI_LIVE_TESTS=1 — round-trips --label against a real workspace and asserts the labels array is non-empty, preventing this exact silent regression from returning.

Install / upgrade

npm install -g github:VidGuiCode/plane-cli

Or if already installed: plane upgrade.

v0.3.0

Choose a tag to compare

@VidGuiCode VidGuiCode released this 03 Apr 21:59

What's new

plane project create

Create projects from the CLI without leaving the terminal:
```
plane project create "My Project" --identifier PROJ --network 2
```
Prompts to set as active project in interactive mode.

plane project update

Update the active project's name, description, or network visibility:
```
plane project update --name "Renamed" --description "New description"
```

plane issue move

Move (or copy) an issue to a different project. State is mapped by group (e.g. started → started):
```
plane issue move PROJ-42 --to-project OTHER
plane issue move PROJ-42 --to-project OTHER --copy # skip delete
```

Bulk issue update

Update multiple issues in one call using comma-separated refs:
```
plane issue update PROJ-1,2,3 --state Done
plane issue update PROJ-5,PROJ-6 --priority high --assignee me
```
All refs are resolved before any API calls are sent (fail-fast). Patches run in parallel.

Multi-filter on issue list / issue mine

--state, --priority, and --assignee now accept comma-separated values:
```
plane issue list --state Todo,InProgress
plane issue list --assignee me,alice --priority high,urgent
```

Prettier formatting fixes

Applied consistent formatting across cycle.ts, issue.ts, project.ts, html.ts, and resolvers.ts.

Install / upgrade

```
npm install -g github:VidGuiCode/plane-cli
```

v0.2.6

Choose a tag to compare

@VidGuiCode VidGuiCode released this 02 Apr 10:25

What's new

Bug fixes

  • Fixed issue create and page create hanging in non-interactive mode when optional fields (description, content) have no default (fixes #8)

Features

  • --name alias for --title on issue update — matches the Plane API field name (fixes #9)
  • view alias for issue get and page getplane issue view PROJ-42 now works (fixes #10)
  • stripHtml() preserves paragraph breaks, line breaks, and list structure instead of collapsing to a single line (fixes #11)
  • Richer cycle and module output: progress counters (totalIssues, completedIssues), module list shows NAME/STATUS/START/TARGET columns, and discover cycles/discover modules expose progress fields (fixes #12)

Install

npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.2.6/plane-cli-0.2.6.tgz

Or upgrade from an existing install:

plane upgrade

v0.2.5

Choose a tag to compare

@VidGuiCode VidGuiCode released this 02 Apr 00:03

What's new

Features

  • --assignee me — resolves to the current authenticated user on issue list, create, and update
  • plane issue mine — shortcut for listing issues assigned to you
  • plane cycle current — shows the active cycle and its issues
  • --updated-since <date> — filter issue list by last-updated date (YYYY-MM-DD)
  • Post-pack release verificationnpm run verify-pack smoke tests the .tgz before publishing

Output consistency

  • issue list --json, issue get --json, cycle issues --json, and module issues --json now return normalized camelCase fields (state name, identifier string, label names) instead of raw API shapes

Error messages

  • API errors now include actionable hints (401→check token, 404→verify identifiers, 429→rate limited)
  • Resolver errors include more context (e.g., which workspace was searched)

Install

npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.2.5/plane-cli-0.2.5.tgz

v0.2.4

Choose a tag to compare

@VidGuiCode VidGuiCode released this 30 Mar 21:18

Bug fixes

  • Fixed `plane issue list --fields` and `plane issue get --fields` returning `[{}, {}, ...]` for every issue — raw Plane API fields (`id`, `name`, `priority`, `assignees`, `sequence_id`, `updated_at`, etc.) are now directly accessible by their exact API name, not just via a curated alias map
  • Fixed `--fields` failing when the shell (e.g. PowerShell) splits a comma-separated list like `id,name,title` into separate arguments

Install

```bash
npm install -g https://github.com/VidGuiCode/plane-cli/releases/download/v0.2.4/plane-cli-0.2.4.tgz
```

Or upgrade from within the CLI:

```bash
plane upgrade
```