🧪 Skills
Plane CLI
Plane.so: Create, update, and manage issues, projects, states, labels, and pages. Use when the user wants to interact with Plane.so — creating issues, listin...
v0.1.0
Description
name: plane-cli version: 0.1.0 description: "Plane.so: Create, update, and manage issues, projects, states, labels, and pages. Use when the user wants to interact with Plane.so — creating issues, listing tasks, updating status, managing labels, or any project-management workflow." metadata: openclaw: emoji: "✈️" category: "productivity" requires: bins: ["plane"] env: ["PLANE_API_KEY", "PLANE_WORKSPACE_SLUG"] cliHelp: "plane --help"
Plane CLI
CLI for Plane.so project management. Output is JSON by default — pipe to jq or consume directly.
Setup
uv tool install plane-cli # or: pip install plane-cli
plane config init # interactive setup wizard
Config: ~/.config/plane-cli/config.toml. All values can be set via env vars (PLANE_API_KEY, PLANE_WORKSPACE_SLUG, PLANE_BASE_URL, PLANE_PROJECT) or CLI flags.
Command Discovery
Do not guess command names or options. Use --help:
plane --help
plane issues --help
plane issues create --help
Quick Reference
| Resource | Key commands |
|---|---|
plane projects |
list, get, create --name, update, delete |
plane issues |
list, get, create --title, update, delete |
plane issues comment |
list <issue-id>, add <issue-id> --body |
plane states |
list, get, create --name --color, update, delete |
plane labels |
list, get, create --name, update, delete |
plane pages |
list, get, create --name, update, delete |
Common Workflows
Create an issue:
plane issues create --title "Fix login bug" --priority high --state <state-id>
List issues with filters:
plane issues list --state <state-id> --assignee <user-id> --all
Update issue state (move to "In Progress"):
# First, find the state ID
plane states list --project <pid>
# Then update
plane issues update <issue-id> --state <state-id>
Add a comment (supports stdin with -):
plane issues comment add <issue-id> --body "Deployed to staging"
git diff HEAD~1 | plane issues comment add <issue-id> --body -
Important Conventions
--projectis optional whendefaults.projectis configured- Destructive commands (
delete) require--yesin non-TTY (agent) contexts --descriptionand--bodyaccept-to read from stdin--allfetches all pages (capped at 1000); default is first 20 results--prettyrenders Rich tables — avoid in scripts, parse JSON instead- Errors go to stderr as JSON:
{"error": {"type": "...", "message": "...", "status_code": N}} - Exit codes:
0success,1error,2rate-limited (retry safe)
[!CAUTION]
deletecommands are destructive — always confirm with the user before executing.
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!