Skip to content

Releases: VidGuiCode/plane-cli

v0.3.0

03 Apr 21:59

Choose a tag to compare

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

02 Apr 10:25

Choose a tag to compare

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

02 Apr 00:03

Choose a tag to compare

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

30 Mar 21:18

Choose a tag to compare

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
```

v0.2.3

30 Mar 18:17

Choose a tag to compare

Bug fixes

  • --fields producing {} empty objectsissue list and issue get with --fields now accept both the normalized camelCase names and raw Plane API field names as aliases. Previously, passing names like state_name, sequence_id, name, or updated_at produced empty objects {} because none matched the internal normalized keys.

Both of these now work:

# normalized names
plane issue list --json --fields id,sequence,title,state,updatedAt

# raw API names (same result)
plane issue list --json --fields id,sequence_id,name,state_name,updated_at

Full alias table:

Normalized Also accepts
title name
sequence sequence_id
state state_name, state_id
projectId project_id
updatedAt updated_at
createdAt created_at
dueDate due_date
startDate start_date
labels label_ids
  • Added projectId field — now available in --fields output (also accessible as project_id)

Install

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

Or upgrade in-place:

plane upgrade

v0.2.2

30 Mar 18:00

Choose a tag to compare

Bug fixes

Follow-up to 0.2.1 — member name/email still blank and --assignee still failing.

Root cause: The most common Plane API layout returns workspace members with display_name and email as top-level fields, and member as a plain UUID string (not an object). The 0.2.1 fix only handled two other formats (double-underscore annotations and a nested member object), missing this third shape entirely.

The three member formats now handled:

Format Fields Plane versions
Top-level flat display_name, email, member: "uuid" Most current versions
Double-underscore member__display_name, member__email Some older versions
Nested object member: { id, display_name, email } Some versions

getMemberId also updated: when member is a string UUID, that string is returned as the user UUID for assignee filtering (instead of falling back to the membership record id).

Install

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

Or upgrade in-place:

plane upgrade

v0.2.1

30 Mar 17:53

Choose a tag to compare

Bug fixes

  • Pagination timeoutsplane discover projects, plane issue list, and all plane discover sub-commands could hang indefinitely. Plane API always returns a next_cursor even on the last page; the loop now checks next_page_results to stop correctly.
  • --assignee crashplane issue list --assignee threw TypeError: Cannot read properties of undefined (reading 'toLowerCase'). Newer Plane instances return workspace members as a nested member object; both flat and nested formats are now handled.
  • plane members list showing undefined — same nested vs flat member format issue. Names and emails now display correctly.
  • plane discover members / discover issue-inputsdisplayName and email fields were undefined in JSON output. Same fix.
  • plane help error — threw "too many arguments. Expected 0 arguments but got 1". Commander.js v13 suppresses the implicit help subcommand when .action() is set on the root command. Re-enabled with .helpCommand(true).
  • plane profile showing "Inactive"/users/me/ does not always include is_active; undefined now defaults to Active instead of Inactive.
  • plane profile showing "Role: undefined"/users/me/ does not return a role (it is workspace-scoped). Removed from output.
  • Assignee filter returning wrong resultsresolveMember was returning the workspace membership UUID instead of the user UUID on newer Plane API versions. Now correctly returns member.id.

Install

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

Or upgrade from within the CLI:

plane upgrade

v0.2.0

29 Mar 22:36

Choose a tag to compare

AI-first release: discover-first workflow, normalized JSON context, dry-run support, compact output, structured errors, and expanded AI discovery helpers.

v0.1.7 - API Modernization & New Commands

28 Mar 23:35

Choose a tag to compare

Changelog

0.1.7

New Commands

  • plane completion <bash|zsh|fish> — generate shell completion scripts
  • plane issue open <ref> — open an issue in the default browser
  • plane cycle create <name> — create a new cycle
  • plane cycle delete <cycle> — delete a cycle by name or UUID
  • plane module create <name> — create a new module
  • plane module delete <module> — delete a module by name or UUID
  • plane label update <label> --name <name> --color <color> — update an existing label
  • plane comment update <commentId> <issue> --message <text> — update an existing comment
  • plane page create <name> — create a new page
  • plane page update <id> — update an existing page
  • plane page delete <id> — delete a page by UUID

API & Authentication

  • API style detection now tries work-items first, falls back to issues
  • Added --api-style flag to plane login command for explicit control
  • Added PLANE_CONFIG environment variable support for custom config file path

Developer Experience

  • Added ESLint + Prettier configuration for code quality
  • Added unit tests for core modules using Vitest
  • Added retry logic and rate limiting in API client

0.1.6

  • Fix install on Windows: switch to GitHub release tarballs (npm install -g https://github.com/.../releases/download/v{x}/plane-cli-{x}.tgz); npm installs HTTPS tarballs as real directories — no junctions, no broken paths
  • plane upgrade now installs from the GitHub release tarball for the same reason

0.1.5

  • Fix GitHub install on Windows: npm creates a broken directory junction (not a real copy) for git dependencies that have no prepare script; adding a no-op prepare script forces npm to do a full pack-and-install, producing a real directory
  • dist/ is still committed — no build step required during install

0.1.4

  • Fix install failure on Windows: npm install -g github:VidGuiCode/plane-cli was creating a broken junction to a temporary git-clone directory that npm later cleaned up; now uses tagged installs (#v{version}) so npm fetches a proper GitHub archive tarball instead of cloning
  • plane upgrade now installs the exact tagged version (github:VidGuiCode/plane-cli#v{latest}) to benefit from the same fix

0.1.3

  • Env var support: PLANE_BASE_URL, PLANE_API_TOKEN, PLANE_WORKSPACE, PLANE_API_STYLE — no config file needed in CI/automation
  • plane issue delete — delete an issue by ref
  • plane issue close / plane issue reopen — move to first completed/backlog state automatically
  • plane label create <name> <color> / plane label delete <name> — manage labels
  • plane label add / plane label remove — now accept names instead of raw UUIDs
  • plane module add <issue> <module> — name-based, consistent with cycle add
  • plane comment delete <id> <issue> — delete a comment by UUID
  • Removed legacy plane module assign (replaced by plane module add)
  • plane upgrade — check for updates and upgrade in one command
  • Update hint shown on plane splash when a newer version is available
  • Rebuilt and shipped updated dist/

0.1.2

  • Fixed GitHub installs by shipping the built dist/ output in the repository
  • Removed the install-time prepare build hook that was failing during npm install -g github:...
  • Included the CI workflow fix for setup-node cache configuration in a repo without package-lock.json

0.1.1

  • Added plane comment list <issue> so comments can be discovered and deleted from the CLI
  • Updated docs and command references to reflect the shipped command surface
  • Clarified that plane-cli works with self-hosted Plane and Plane Cloud via personal access tokens
  • Added an npm prepare build hook so GitHub installs produce the plane binary correctly

0.1.0

  • First public release of plane-cli
  • Interactive and non-interactive login with saved local accounts
  • Active account, workspace, and project context management
  • Read/write issue workflows: list, get, create, update, delete, close, reopen
  • Project, workspace, members, modules, cycles, labels, comments, pages, and states commands
  • Support for both self-hosted issues and Plane Cloud work-items API styles
  • JSON output, table output, custom help formatting, and env var overrides for automation

v0.1.6

28 Mar 22:18

Choose a tag to compare

Fix install on Windows: npm git installs create broken directory junctions. Switching to GitHub release tarballs produces real directories with no junctions.