@monolithia/monoplane
v0.1.0
Published
CLI for Plane project management — works with Plane Cloud and self-hosted instances
Maintainers
Readme
monoplane
CLI for Plane project management — works with Plane Cloud and self-hosted instances.
Install
npm install -g monoplaneOr download a binary from GitHub Releases.
Quick Start
# 1. Register your Plane instance
monoplane instance add
# 2. Verify authentication
monoplane me
# 3. Start managing projects
monoplane project list
monoplane issue list <project-id>
monoplane issue create <project-id> -n "Fix login bug" -p highConfiguration
Config is stored at ~/.config/monoplane/config.toml.
Multi-Instance Support
Manage multiple Plane instances (cloud + self-hosted):
# Add instances
monoplane instance add -n work -u plane.mycompany.com -k plane_api_xxx -w my-workspace
monoplane instance add -n cloud -u api.plane.so -k plane_api_yyy -w my-cloud-ws
# Switch between them
monoplane instance switch cloud
monoplane instance listOutput Format
# Default is table; switch to JSON globally
monoplane config set defaults.output json
# Or per-command
monoplane project list --jsonCommands
Auth & Config
| Command | Description |
|---------|-------------|
| monoplane auth login | Set API key for active instance |
| monoplane auth status | Show authentication status |
| monoplane me | Show current user |
| monoplane instance add | Register a new Plane instance |
| monoplane instance list | List all configured instances |
| monoplane instance switch <name> | Switch active instance |
| monoplane instance remove <name> | Remove an instance |
| monoplane instance update <name> | Update instance settings |
| monoplane config set <key> <value> | Set a config value |
| monoplane config get [key] | Show config values |
Projects
monoplane project list
monoplane project create -n "My Project" -i PROJ
monoplane project view <project-id>
monoplane project update <project-id> -n "New Name"
monoplane project delete <project-id>
monoplane project archive <project-id>
monoplane project unarchive <project-id>Work Items (Issues)
monoplane issue list <project-id>
monoplane issue create <project-id> -n "Fix bug" -p high -a <user-id>
monoplane issue view <project-id> <issue-id>
monoplane issue update <project-id> <issue-id> -p medium -s <state-id>
monoplane issue delete <project-id> <issue-id>
monoplane issue search <project-id> -q "login"States & Labels
monoplane state list <project-id>
monoplane state create <project-id> -n "In Review" -c "#f39c12" -g started
monoplane label list <project-id>
monoplane label create <project-id> -n "bug" -c "#ff0000"Cycles & Modules
monoplane cycle list <project-id>
monoplane cycle create <project-id> -n "Sprint 1" --start-date 2024-01-01 --end-date 2024-01-14
monoplane cycle add-issue <project-id> <cycle-id> -i <issue-id-1> <issue-id-2>
monoplane module list <project-id>
monoplane module create <project-id> -n "Auth Module" -s in-progress
monoplane module add-issue <project-id> <module-id> -i <issue-id>Comments & Activity
monoplane comment list <project-id> <issue-id>
monoplane comment create <project-id> <issue-id> -m "Looks good!"
monoplane activity list <project-id> <issue-id>Pages
monoplane page list # Workspace pages
monoplane page list --project <project-id> # Project pages
monoplane page create -n "Meeting Notes"Members & Invitations
monoplane member list
monoplane member list --project <project-id>
monoplane invitation list
monoplane invitation create -e [email protected] -r 15Customers
monoplane customer list
monoplane customer create -n "Acme Corp" -e [email protected]Custom Properties & Types
monoplane property list
monoplane property create -n "Severity" -t select
monoplane type listEstimates
monoplane estimate list <project-id>
monoplane estimate create <project-id> -n "Story Points" -t pointsIntake Issues
monoplane intake list <project-id>
monoplane intake create <project-id> -n "Feature request from customer"
monoplane intake update <project-id> <intake-id> -s 1 # AcceptAttachments
monoplane attachment list <project-id> <issue-id>
monoplane attachment upload <project-id> <issue-id> ./screenshot.png
monoplane attachment delete <project-id> <issue-id> <attachment-id>Shell Completions
# Bash
eval "$(monoplane completion bash)"
# Zsh
eval "$(monoplane completion zsh)"
# Fish
monoplane completion fish > ~/.config/fish/completions/monoplane.fishSelf-Hosted Instances
Monoplane works with any Plane deployment. Just provide your domain:
monoplane instance add -n selfhosted -u plane.internal.company.com -k <key> -w <workspace>The CLI auto-detects the protocol (tries HTTPS first, falls back to HTTP) and appends the API path (/api/v1).
Global Flags
| Flag | Description |
|------|-------------|
| --json | Output as JSON (overrides config default) |
| --cursor <cursor> | Pagination cursor for list commands |
| --per-page <n> | Results per page (1-100) |
| -h, --help | Show help |
| -V, --version | Show version |
MCP Server (Model Context Protocol)
Monoplane includes a built-in MCP server so Claude (and other LLM clients) can manage your Plane instance directly.
Setup with Claude Code
Add to your Claude Code MCP config (~/.claude/claude_desktop_config.json or project .mcp.json):
{
"mcpServers": {
"monoplane": {
"command": "monoplane-mcp"
}
}
}Or if using npx without global install:
{
"mcpServers": {
"monoplane": {
"command": "npx",
"args": ["-y", "monoplane", "monoplane-mcp"]
}
}
}Prerequisites
Before using the MCP server, configure at least one Plane instance via the CLI:
monoplane instance add -n work -u plane.mycompany.com -k <api-key> -w <workspace-slug>The MCP server reads the same config file (~/.config/monoplane/config.toml) as the CLI.
Available Tools (64 total)
| Category | Tools |
|----------|-------|
| Auth | plane_get_me |
| Projects | plane_list_projects, plane_create_project, plane_get_project, plane_update_project, plane_delete_project, plane_archive_project, plane_unarchive_project |
| Issues | plane_list_issues, plane_create_issue, plane_get_issue, plane_update_issue, plane_delete_issue, plane_search_issues |
| States | plane_list_states, plane_create_state, plane_update_state, plane_delete_state |
| Labels | plane_list_labels, plane_create_label, plane_update_label, plane_delete_label |
| Cycles | plane_list_cycles, plane_create_cycle, plane_get_cycle, plane_update_cycle, plane_delete_cycle, plane_add_issues_to_cycle, plane_remove_issue_from_cycle |
| Modules | plane_list_modules, plane_create_module, plane_get_module, plane_update_module, plane_delete_module, plane_add_issues_to_module, plane_remove_issue_from_module |
| Comments | plane_list_comments, plane_create_comment, plane_update_comment, plane_delete_comment |
| Activity | plane_list_activity |
| Pages | plane_list_pages, plane_create_page, plane_get_page |
| Members | plane_list_members |
| Invitations | plane_list_invitations, plane_create_invitation, plane_delete_invitation |
| Customers | plane_list_customers, plane_create_customer, plane_get_customer, plane_update_customer, plane_delete_customer |
| Properties | plane_list_properties, plane_create_property, plane_delete_property |
| Types | plane_list_issue_types |
| Estimates | plane_list_estimates, plane_create_estimate, plane_delete_estimate |
| Intake | plane_list_intake_issues, plane_create_intake_issue, plane_update_intake_issue, plane_delete_intake_issue |
Example prompts with Claude
"List all projects in my workspace" "Create a high-priority bug in the Auth project: login fails on Safari" "What issues are in the current sprint?" "Move all unfinished items from Sprint 3 to Sprint 4" "Add a comment to issue X saying the fix is deployed"
