Manage Plane.so projects and work items using a clean, zero-dependency Python CLI. List projects, create/update/assign issues, add comments, search workspace.
Interact with Plane.so project management via a clean, auditable Python CLI.
Zero dependencies — uses only Python 3.8+ stdlib.
Before every command, source the environment file:
source /workspace/.env && plane-so-cli <command>
Create /workspace/.env with:
export PLANE_API_KEY="your-api-key"
export PLANE_WORKSPACE="your-workspace-slug"
Get your API key: Plane → Profile Settings → Personal Access Tokens
plane-so-cli me # Show current user
plane-so-cli projects list # List all projects (active only)
plane-so-cli members # List workspace members (for assignments)
# List issues in a project
plane-so-cli issues list -p PROJECT_ID
plane-so-cli issues list -p PROJECT_ID --state STATE_ID
plane-so-cli issues list -p PROJECT_ID --priority high
plane-so-cli issues list -p PROJECT_ID --assignee USER_ID
# Get issue details
plane-so-cli issues get -p PROJECT_ID ISSUE_ID
# Create issue
plane-so-cli issues create -p PROJECT_ID --name "Fix bug" --priority high
plane-so-cli issues create -p PROJECT_ID --name "Task" --assignee USER_ID
# Update issue
plane-so-cli issues update -p PROJECT_ID ISSUE_ID --state STATE_ID
plane-so-cli issues update -p PROJECT_ID ISSUE_ID --priority medium
# Assign issue
plane-so-cli issues assign -p PROJECT_ID ISSUE_ID USER_ID_1 USER_ID_2
# Delete issue
plane-so-cli issues delete -p PROJECT_ID ISSUE_ID
# Search across workspace
plane-so-cli issues search "login bug"
# My issues (assigned to me)
plane-so-cli issues my
plane-so-cli comments list -p PROJECT_ID -i ISSUE_ID
plane-so-cli comments add -p PROJECT_ID -i ISSUE_ID "Comment text"
plane-so-cli states -p PROJECT_ID # List workflow states
plane-so-cli labels -p PROJECT_ID # List labels
plane-so-cli cycles list -p PROJECT_ID
plane-so-cli cycles get -p PROJECT_ID CYCLE_ID
plane-so-cli modules list -p PROJECT_ID
plane-so-cli modules get -p PROJECT_ID MODULE_ID
Default is human-readable table. Use -f json for raw JSON:
plane-so-cli projects list -f json
plane-so-cli issues list -p PROJECT_ID -f json
plane-so-cli projects list — find project IDplane-so-cli members — find member IDs for assignmentplane-so-cli states -p PROJECT_ID — see available statesplane-so-cli issues create -p PROJECT_ID --name "Task" --assignee USER_IDplane-so-cli comments add -p PROJECT_ID -i ISSUE_ID "Started working"