pm-cli-usage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesepm-cli Usage Guide
pm-cli 使用指南
You are operating , a unified CLI for managing tasks across multiple project management tools (Asana, Notion, etc.). Use this guide to run any pm-cli command correctly.
pm你正在操作,这是一个用于跨多个项目管理工具(Asana、Notion等)管理任务的统一CLI工具。使用本指南正确运行任何pm-cli命令。
pmTool Overview
工具概述
pmnpm package: (install: )
Supported providers: (fully implemented), (planned)
@jogi47/pm-clinpm install -g @jogi47/pm-cliasananotionpmnpm 包: (安装命令:)
支持的平台: (已完全实现),(计划中)
@jogi47/pm-clinpm install -g @jogi47/pm-cliasananotionSetup
配置步骤
1. Connect a provider
1. 连接平台
bash
pm connect asana # Prompts for Personal Access Token
pm connect notion # Prompts for Notion integration tokenThe command interactively prompts for credentials. You cannot pass tokens as arguments.
bash
pm connect asana # 提示输入个人访问令牌
pm connect notion # 提示输入Notion集成令牌该命令会交互式提示输入凭据。不能将令牌作为参数传递。
2. Set credentials via environment variables (alternative)
2. 通过环境变量设置凭据(替代方式)
bash
export ASANA_TOKEN=<token>
export NOTION_TOKEN=<token>Environment variables bypass the interactive flow.
pm connectbash
export ASANA_TOKEN=<token>
export NOTION_TOKEN=<token>环境变量可跳过交互式的流程。
pm connect3. Select a workspace (if the provider has multiple)
3. 选择工作区(如果平台有多个工作区)
bash
pm workspace list -s asana
pm workspace switch -s asana # Interactive workspace pickerbash
pm workspace list -s asana
pm workspace switch -s asana # 交互式工作区选择器Task ID Format
任务ID格式
All tasks use the format :
PROVIDER-externalId- — Asana task with external ID
ASANA-12345678901234567890 - — Notion page with external ID
NOTION-abc123def456abc123def456
The provider prefix is case-insensitive when parsing (both and work).
ASANA-123asana-123所有任务均使用格式:
PROVIDER-externalId- — 外部ID为
ASANA-1234567890的Asana任务1234567890 - — 外部ID为
NOTION-abc123def456的Notion页面abc123def456
解析时平台前缀不区分大小写(和均可生效)。
ASANA-123asana-123Commands Reference
命令参考
pm connect <provider>
pm connect <provider>pm connect <provider>
pm connect <provider>Connect to a project management provider. Prompts for credentials interactively.
| Argument | Required | Values |
|---|---|---|
| Yes | |
bash
pm connect asanaIf already connected, prints current connection info and suggests first.
pm disconnect连接到项目管理平台。交互式提示输入凭据。
| 参数 | 是否必填 | 可选值 |
|---|---|---|
| 是 | |
bash
pm connect asana如果已连接,将显示当前连接信息并建议先执行。
pm disconnectpm disconnect <provider>
pm disconnect <provider>pm disconnect <provider>
pm disconnect <provider>Remove stored credentials for a provider.
| Argument | Required | Values |
|---|---|---|
| Yes | |
bash
pm disconnect asana移除平台的已存储凭据。
| 参数 | 是否必填 | 可选值 |
|---|---|---|
| 是 | |
bash
pm disconnect asanapm providers
pm providerspm providers
pm providersList all providers and their connection status.
| Flag | Short | Description |
|---|---|---|
| Output as JSON |
bash
pm providers
pm providers --json列出所有平台及其连接状态。
| 标志 | 缩写 | 描述 |
|---|---|---|
| 以JSON格式输出 |
bash
pm providers
pm providers --jsonpm workspace [action]
pm workspace [action]pm workspace [action]
pm workspace [action]List or switch the active workspace for a provider.
| Argument | Required | Default | Values |
|---|---|---|---|
| No | | |
| Flag | Short | Default | Description |
|---|---|---|---|
| | | Provider to manage ( |
bash
pm workspace # List workspaces (default: asana)
pm workspace list -s asana # Explicit list
pm workspace switch -s asana # Interactive workspace picker列出或切换平台的活跃工作区。
| 参数 | 是否必填 | 默认值 | 可选值 |
|---|---|---|---|
| 否 | | |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | | 要管理的平台( |
bash
pm workspace # 列出工作区(默认:asana)
pm workspace list -s asana # 显式列出
pm workspace switch -s asana # 交互式工作区选择器pm tasks assigned
pm tasks assignedpm tasks assigned
pm tasks assignedList tasks assigned to the current user.
| Flag | Short | Default | Description |
|---|---|---|---|
| | all | Filter by provider ( |
| | | Maximum number of tasks |
| | Output as JSON | |
| | | Bypass cache, fetch fresh data |
bash
pm tasks assigned
pm tasks assigned -s asana -l 10
pm tasks assigned --json
pm tasks assigned -r列出分配给当前用户的任务。
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | all | 按平台筛选( |
| | | 最大任务数量 |
| | 以JSON格式输出 | |
| | | 绕过缓存,获取最新数据 |
bash
pm tasks assigned
pm tasks assigned -s asana -l 10
pm tasks assigned --json
pm tasks assigned -rpm tasks overdue
pm tasks overduepm tasks overdue
pm tasks overdueList tasks that are past their due date.
| Flag | Short | Default | Description |
|---|---|---|---|
| | all | Filter by provider ( |
| | | Maximum number of tasks |
| | Output as JSON | |
| | | Bypass cache, fetch fresh data |
bash
pm tasks overdue
pm tasks overdue -s asana --json
pm tasks overdue -r列出已逾期的任务。
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | all | 按平台筛选( |
| | | 最大任务数量 |
| | 以JSON格式输出 | |
| | | 绕过缓存,获取最新数据 |
bash
pm tasks overdue
pm tasks overdue -s asana --json
pm tasks overdue -rpm tasks search "<query>"
pm tasks search "<query>"pm tasks search "<query>"
pm tasks search "<query>"Search for tasks matching a text query.
| Argument | Required | Description |
|---|---|---|
| Yes | Search string (quote if it contains spaces) |
| Flag | Short | Default | Description |
|---|---|---|---|
| | all | Filter by provider ( |
| | | Maximum number of tasks |
| | Output as JSON |
bash
pm tasks search "login bug"
pm tasks search "api" -s asana -l 5
pm tasks search "urgent" --jsonNote: does not have a flag — it always fetches live results.
search--refresh搜索匹配文本查询的任务。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 搜索字符串(包含空格时请加引号) |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | all | 按平台筛选( |
| | | 最大任务数量 |
| | 以JSON格式输出 |
bash
pm tasks search "登录bug"
pm tasks search "api" -s asana -l 5
pm tasks search "紧急" --json注意:命令没有标志 —— 它始终获取实时结果。
search--refreshpm tasks show <id>
pm tasks show <id>pm tasks show <id>
pm tasks show <id>Show detailed information for a single task.
| Argument | Required | Description |
|---|---|---|
| Yes | Task ID in |
| Flag | Short | Default | Description |
|---|---|---|---|
| | Output as JSON | |
| | | Open the task in the default browser |
bash
pm tasks show ASANA-1234567890
pm tasks show ASANA-1234567890 --json
pm tasks show ASANA-1234567890 -o显示单个任务的详细信息。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 格式为 |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | 以JSON格式输出 | |
| | | 在默认浏览器中打开任务 |
bash
pm tasks show ASANA-1234567890
pm tasks show ASANA-1234567890 --json
pm tasks show ASANA-1234567890 -opm tasks create "<title>"
pm tasks create "<title>"pm tasks create "<title>"
pm tasks create "<title>"Create a new task in a provider.
| Argument | Required | Description |
|---|---|---|
| Yes | Task title (quote if it contains spaces) |
| Flag | Short | Default | Description |
|---|---|---|---|
| | Task description | |
| | auto | Target provider ( |
| | Project ID to add the task to | |
| Due date ( | ||
| | Assignee email | |
| | Output as JSON |
bash
pm tasks create "Fix login bug"
pm tasks create "Update docs" --source=asana --due=2026-03-01
pm tasks create "Review PR" -d "Check the auth changes" --json
pm tasks create "Design review" -p PROJECT_ID -a user@example.comIf only one provider is connected, is inferred automatically.
--source在平台中创建新任务。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 任务标题(包含空格时请加引号) |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | 任务描述 | |
| | auto | 目标平台( |
| | 要添加任务的项目ID | |
| 截止日期( | ||
| | 负责人邮箱 | |
| | 以JSON格式输出 |
bash
pm tasks create "修复登录bug"
pm tasks create "更新文档" --source=asana --due=2026-03-01
pm tasks create "审核PR" -d "检查认证变更" --json
pm tasks create "设计评审" -p PROJECT_ID -a user@example.com如果仅连接了一个平台,会自动推断。
--sourcepm tasks update <id>
pm tasks update <id>pm tasks update <id>
pm tasks update <id>Update an existing task. At least one update flag is required.
| Argument | Required | Description |
|---|---|---|
| Yes | Task ID in |
| Flag | Short | Default | Description |
|---|---|---|---|
| | New task title | |
| | New task description | |
| New due date ( | ||
| New status: | ||
| | Output as JSON |
bash
pm tasks update ASANA-123456 --title "New title"
pm tasks update ASANA-123456 --due 2026-03-15 --status in_progress
pm tasks update ASANA-123456 --due none # Clear due date
pm tasks update ASANA-123456 -d "Updated notes" --json更新现有任务。至少需要一个更新标志。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 格式为 |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | 新任务标题 | |
| | 新任务描述 | |
| 新截止日期( | ||
| 新状态: | ||
| | 以JSON格式输出 |
bash
pm tasks update ASANA-123456 --title "新标题"
pm tasks update ASANA-123456 --due 2026-03-15 --status in_progress
pm tasks update ASANA-123456 --due none # 清除截止日期
pm tasks update ASANA-123456 -d "更新说明" --jsonpm done <id> [id...]
pm done <id> [id...]pm done <id> [id...]
pm done <id> [id...]Mark one or more tasks as done. Accepts multiple task IDs.
| Argument | Required | Description |
|---|---|---|
| Yes | One or more task IDs ( |
| Flag | Short | Default | Description |
|---|---|---|---|
| | Output as JSON |
bash
pm done ASANA-123456
pm done ASANA-123456 ASANA-789012 # Complete multiple tasks
pm done ASANA-123456 --json将一个或多个任务标记为完成。支持多个任务ID。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 一个或多个任务ID( |
| 标志 | 缩写 | 默认值 | 描述 |
|---|---|---|---|
| | 以JSON格式输出 |
bash
pm done ASANA-123456
pm done ASANA-123456 ASANA-789012 # 批量完成任务
pm done ASANA-123456 --jsonpm open <id>
pm open <id>pm open <id>
pm open <id>Open a task in the default browser.
| Argument | Required | Description |
|---|---|---|
| Yes | Task ID in |
bash
pm open ASANA-123456
pm open NOTION-abc123在默认浏览器中打开任务。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| 是 | 格式为 |
bash
pm open ASANA-123456
pm open NOTION-abc123Output Modes
输出模式
- Table (default) — Human-readable table rendered in the terminal.
- JSON () — Machine-readable output. Use this when piping to
--json, scripting, or parsing results programmatically.jq
- 表格(默认)—— 终端中渲染的易读表格。
- JSON()—— 机器可读输出。当通过管道传递给
--json、编写脚本或程序化解析结果时使用。jq
Caching Behavior
缓存行为
- Responses are cached with a 5-minute TTL.
- Use /
--refreshon-randtasks assignedto bypass the cache and fetch fresh data.tasks overdue - always fetches live results (no cache bypass flag needed).
tasks search - fetches directly from the provider.
tasks show
- 响应缓存的TTL为5分钟。
- 在和
tasks assigned命令中使用tasks overdue/--refresh绕过缓存,获取最新数据。-r - 始终获取实时结果(无需缓存绕过标志)。
tasks search - 直接从平台获取数据。
tasks show
Unified Task Model
统一任务模型
Every task returned by pm-cli is normalized to this shape:
id PROVIDER-externalId (e.g. ASANA-1234567890)
externalId Original provider ID
title Task title
description Task description (may contain HTML/markdown)
status todo | in_progress | done
dueDate Due date (if set)
assignee Assignee display name
project Project or parent container name
tags Tags/labels array
source asana | notion
url Direct link to the task in the provider's UI
priority low | medium | high | urgent (if available)
createdAt Creation timestamp
updatedAt Last modification timestamppm-cli返回的每个任务都标准化为以下结构:
id PROVIDER-externalId(例如 ASANA-1234567890)
externalId 原始平台ID
title 任务标题
description 任务描述(可能包含HTML/Markdown)
status todo | in_progress | done
dueDate 截止日期(如果已设置)
assignee 负责人显示名称
project 项目或父容器名称
tags 标签/标签数组
source asana | notion
url 平台UI中任务的直接链接
priority low | medium | high | urgent(如果可用)
createdAt 创建时间戳
updatedAt 最后修改时间戳Common Workflows
常见工作流
Check what's overdue
查看逾期任务
bash
pm tasks overduebash
pm tasks overdueFind a specific task by keyword
通过关键词查找特定任务
bash
pm tasks search "deploy pipeline"bash
pm tasks search "部署流水线"Create a task with a due date
创建带截止日期的任务
bash
pm tasks create "Fix auth timeout" --due 2026-03-01bash
pm tasks create "修复认证超时" --due 2026-03-01Update a task's status
更新任务状态
bash
pm tasks update ASANA-123456 --status in_progressbash
pm tasks update ASANA-123456 --status in_progressMark tasks as done
标记任务为完成
bash
pm done ASANA-123456
pm done ASANA-123456 ASANA-789012 # Batch completebash
pm done ASANA-123456
pm done ASANA-123456 ASANA-789012 # 批量完成Get task details and open in browser
获取任务详情并在浏览器中打开
bash
pm tasks show ASANA-1234567890 -o
pm open ASANA-1234567890 # Shorthandbash
pm tasks show ASANA-1234567890 -o
pm open ASANA-1234567890 # 简写形式Get JSON output for scripting
获取JSON输出用于脚本编写
bash
pm tasks assigned --json
pm tasks overdue -s asana --jsonbash
pm tasks assigned --json
pm tasks overdue -s asana --jsonForce-refresh stale data
强制刷新过期数据
bash
pm tasks assigned -r
pm tasks overdue --refreshbash
pm tasks assigned -r
pm tasks overdue --refreshSwitch workspace when working across teams
在跨团队工作时切换工作区
bash
pm workspace switch -s asanabash
pm workspace switch -s asana