plane

Manage Plane issues, comments, labels, and attachments through an allowlist-guarded REST CLI.

Updated May 3, 2026
One-click install
npx skills add https://github.com/spikelab/multiplai-cc-mktplace --skill plane-spikelab
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: plane
Source: https://github.com/spikelab/multiplai-cc-mktplace/tree/main/plugins/multiplai-pm/skills/plane
Command: npx skills add https://github.com/spikelab/multiplai-cc-mktplace --skill plane-spikelab

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Working with Plane tickets from an agent or terminal risks accidental writes to shared team projects, and ad-hoc API calls offer no protection against scope mistakes. This Skill provides a CLI that lists, reads, creates, updates, and comments on Plane issues while physically refusing any request that touches a project outside an explicit allowlist. ## Core Features & Use Cases - Allowlist-guarded operations: Every request passes a chokepoint that blocks projects not in PLANE_ALLOWED_PROJECTS, refuses workspace-scoped writes, and permits DELETE only on labels. - Full issue workflow: List, get, create, update, comment, search, and move issues through states, with cycles, estimates, labels, and attachment upload/download support. - Safe previews and self-test: --dry-run prints writes without sending them, and check verifies configuration plus the guardrail before any real work. - Use Case: Ask the agent "move SPK-12 to In Progress and comment that the fix shipped" — the tool resolves the ref, applies the state change, and reports the exact ref changed, while a typo targeting a team project fails closed with a BLOCKED error. ## Quick Start Set PLANE_API_TOKEN, PLANE_WORKSPACE, and PLANE_ALLOWED_PROJECTS in the environment, then ask the agent to run the plane check command and list your in-progress tickets.

Frequently Asked Questions about plane

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create and update Plane tickets from the command line?

Use the plane.py CLI with subcommands like create, update, comment, and get, referencing issues by human refs such as SPK-12. Bodies are written in markdown and converted to Plane's HTML, and --dry-run prints any write before sending it.

How do I prevent an AI agent from touching shared team projects in Plane?

Set PLANE_ALLOWED_PROJECTS to a comma-separated list of project UUIDs; every API request passes a guardrail that refuses any path or query parameter naming a non-allowlisted project. Workspace-scoped writes and DELETE outside labels are also blocked, so mistakes fail closed.

Does the Plane CLI work with self-hosted Plane instances?

Yes, set PLANE_BASE_URL to your self-hosted host instead of the default https://api.plane.so. The same token, workspace slug, and allowlist configuration apply to both Plane Cloud and self-hosted deployments.

Why does Plane search return no results when tickets exist?

Search runs workspace-wide and then drops hits from non-allowlisted projects, counting them on stderr, so matches may exist but be out of scope. A TRUNCATED notice on stderr also means you should raise --limit before concluding a ticket does not exist.

What are the limitations of managing Plane issues via the API?

Issues can never be deleted, only labels can (gated on --yes), and sub-issues, relations, worklogs, and module assignment are not exposed. Attachment uploads are capped at 32 MB, and markdown tables, blockquotes, and nested lists degrade to plain paragraphs in bodies.