pp-linear
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLinear - Printing Press CLI
Linear - Printing Press CLI
Prerequisites: Install the CLI
前提条件:安装CLI
This skill drives the binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
linear-pp-cli- Install via the Printing Press installer (use the flag to skip the MCP component): <!-- npx -y @mvanhorn/printing-press install linear cli-only -->
cli-onlynpx -y @mvanhorn/printing-press install linear cli-only - Verify:
linear-pp-cli --version - Ensure (or
$GOPATH/bin) is on$HOME/go/bin.$PATH
If the install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.23+):
npxbash
go install github.com/mvanhorn/printing-press-library/library/project-management/linear/cmd/linear-pp-cli@latestIf reports "command not found" after install, the install step did not put the binary on . Do not proceed with skill commands until verification succeeds.
--version$PATH本技能驱动二进制文件。在调用本技能的任何命令之前,必须先验证CLI已安装。如果未安装,请先执行以下步骤:
linear-pp-cli- 通过Printing Press安装程序进行安装(使用标志跳过MCP组件): <!-- npx -y @mvanhorn/printing-press install linear cli-only -->
cli-onlynpx -y @mvanhorn/printing-press install linear cli-only - 验证安装:
linear-pp-cli --version - 确保(或
$GOPATH/bin)已添加到$HOME/go/bin环境变量中。$PATH
如果安装失败(如无Node环境、离线等情况),可回退到直接使用Go安装(需要Go 1.23及以上版本):
npxbash
go install github.com/mvanhorn/printing-press-library/library/project-management/linear/cmd/linear-pp-cli@latest如果安装后执行提示“command not found”,说明安装步骤未将二进制文件添加到中。请在验证成功前不要继续执行技能命令。
--version$PATHWhen to Use This CLI
何时使用本CLI
Reach for this when the user wants:
- a fast "what's on my plate today" view across teams (,
today)me - find or look up a specific issue by identifier ()
issues ESP-1155 - list issues assigned to them or a teammate, filtered by team / state ()
issues list --assignee me --state started - sprint velocity / team workload / bottleneck analysis (,
velocity,workload,load)bottleneck - find stale issues, duplicates, or orphaned items (,
stale,similar)orphans - search across issues, projects, and cycles offline (once, then
synchits SQLite)similar - list or inspect projects, cycles, milestones, roadmaps, initiatives, releases
- create / update issues, projects, or cycles (via the typed subcommands and )
workflow - export Linear data to JSONL for backup or migration
- stream live changes without polling the web UI ()
tail - run read-only SQL against the synced store (for power users)
sql
Trigger phrases: "what's assigned to me", "look up issue ABC-123", "find my Linear tickets", "what's on my plate", "show me my Linear queue".
Skip it when the user wants to configure team settings, integrations, or OAuth apps; those admin surfaces live in the Linear web admin.
当用户有以下需求时,可使用本工具:
- 快速查看跨团队的“今日待办事项”(、
today命令)me - 通过标识符查找或查看特定问题()
issues ESP-1155 - 列出分配给自己或队友的问题,并按团队/状态筛选()
issues list --assignee me --state started - 迭代速度/团队工作量/瓶颈分析(、
velocity、workload、load命令)bottleneck - 查找陈旧问题、重复问题或孤立条目(、
stale、similar命令)orphans - 离线搜索问题、项目和迭代周期(先执行,之后
sync命令会读取SQLite数据库)similar - 列出或查看项目、迭代周期、里程碑、路线图、行动计划、发布版本
- 创建/更新问题、项目或迭代周期(通过类型化子命令和)
workflow - 将Linear数据导出为JSONL格式用于备份或迁移
- 无需轮询Web UI即可实时流变更(命令)
tail - 对同步后的存储执行只读SQL查询(面向高级用户的命令)
sql
触发短语:“我有哪些待办任务”、“查看问题ABC-123”、“查找我的Linear工单”、“我今天要做什么”、“展示我的Linear任务队列”。
当用户想要配置团队设置、集成或OAuth应用时,请跳过本工具;这些管理操作需在Linear Web管理界面中进行。
Argument Parsing
参数解析
Parse :
$ARGUMENTS- Empty, , or
help-> show--helplinear-pp-cli --help - Starts with -> ends with
install-> MCP installation; otherwise -> CLI installationmcp - Anything else -> Direct Use (map to the best command and run it)
解析:
$ARGUMENTS- 为空、或
help-> 显示--helplinear-pp-cli --help - 以开头 -> 如果结尾是
install-> 安装MCP;否则 -> 安装CLImcp - 其他情况 -> 直接使用(映射到最合适的命令并执行)
MCP Server Installation
MCP服务器安装
The CLI ships an MCP server at :
linear-pp-mcpbash
go install github.com/mvanhorn/printing-press-library/library/project-management/linear/cmd/linear-pp-mcp@latest
claude mcp add -e LINEAR_API_KEY=lin_api_... linear-pp-mcp -- linear-pp-mcpAsk the user for the actual key value before running.
CLI附带了一个MCP服务器:
linear-pp-mcpbash
go install github.com/mvanhorn/printing-press-library/library/project-management/linear/cmd/linear-pp-mcp@latest
claude mcp add -e LINEAR_API_KEY=lin_api_... linear-pp-mcp -- linear-pp-mcp执行前请向用户索要实际的密钥值。
Direct Use
直接使用
- Check installed: . If missing, offer CLI installation.
which linear-pp-cli - Run once (or when data is stale) to populate the local SQLite store. Analytics and search commands then run offline.
linear-pp-cli sync - Discover commands: ; drill into
linear-pp-cli --help.linear-pp-cli <cmd> --help - Execute with for structured output:
--agentbashlinear-pp-cli <command> [args] --agent - (default) hits the local store first with live fallback; use
--data-source autoto force a live call (e.g. for time-sensitive queries on unsynced fields).--data-source live
- 检查是否已安装:。如果未安装,提供CLI安装指引。
which linear-pp-cli - 先执行一次(或数据过期时)以填充本地SQLite存储。之后分析和搜索命令即可离线运行。
linear-pp-cli sync - 查看可用命令:;查看具体命令详情:
linear-pp-cli --help。linear-pp-cli <cmd> --help - 添加参数执行命令以获取结构化输出:
--agentbashlinear-pp-cli <command> [args] --agent - (默认值)优先读取本地存储,本地无数据时回退到实时API调用;使用
--data-source auto强制实时调用(例如对未同步字段进行时间敏感的查询)。--data-source live
Notable Commands
重要命令
| Command | What it does |
|---|---|
| Your issues across all teams, triaged to today's queue |
| Current authenticated user plus a snapshot of your open work |
| Get a single issue by identifier (e.g. |
| List issues from the local store with filters ( |
| Get/list projects with milestones and health status |
| Get/list sprint cycles for any team |
| Sprint velocity trends across recent cycles |
| Issue + estimate distribution per team member |
| Overloaded assignees and blocked issues |
| Issues not updated in N days |
| Fuzzy-find potential duplicate issues |
| Items missing assignee, project, or estimate |
| Populate local SQLite from the GraphQL API |
| Stream live changes by polling at an interval |
| JSONL round-trip for backup and migration |
| Read-only SQL against the local store (power users) |
Run any command with for full flag documentation.
--help| 命令 | 功能 |
|---|---|
| 跨所有团队的个人问题列表,按今日优先级排序 |
| 当前认证用户信息及未完成工作快照 |
| 通过标识符获取单个问题(例如 |
| 从本地存储列出问题,支持筛选( |
| 获取/列出项目及里程碑和健康状态 |
| 获取/列出任意团队的迭代周期 |
| 最近迭代周期的速度趋势 |
| 按团队成员划分的问题+预估工作量分布 |
| 负载过重的负责人和阻塞的问题 |
| N天未更新的问题 |
| 模糊查找潜在重复问题 |
| 缺少负责人、项目或预估工作量的条目 |
| 从GraphQL API填充本地SQLite存储 |
| 通过定时轮询实时流变更 |
| JSONL格式的备份和迁移往返操作 |
| 对本地存储执行只读SQL查询(面向高级用户) |
执行任何命令时添加可查看完整的参数文档。
--helpFinding Issues
查找问题
Three patterns cover the common cases:
bash
undefined以下三种模式覆盖常见场景:
bash
undefinedLook up a specific issue by identifier
通过标识符查看特定问题
linear-pp-cli issues ESP-1155
linear-pp-cli issues ESP-1155
List all issues assigned to the authenticated user, excluding completed/canceled
列出分配给当前认证用户的所有问题,排除已完成/已取消的
linear-pp-cli issues list --assignee me
linear-pp-cli issues list --assignee me
Narrow to a team and state (also accepts --project, --limit, --json)
按团队和状态筛选(也支持--project、--limit、--json参数)
linear-pp-cli issues list --team ESP --state started --json
`issues list` reads from the local store, so run `linear-pp-cli sync` first. `issues <ID>` tries the local store, then falls back to a live GraphQL query, and works without sync.
`--state` matches on state.type so it works across teams with customized state names: `started`, `backlog`, `unstarted`, `completed`, `canceled`, `triage`, or `all`. The default `active` excludes completed and canceled.
`--assignee` accepts `me`, a user UUID, a display name, or an email. `--team` and `--project` accept either a key (e.g. `ESP`) or a UUID.linear-pp-cli issues list --team ESP --state started --json
`issues list`读取本地存储,因此需先执行`linear-pp-cli sync`。`issues <ID>`先尝试本地存储,失败则回退到实时GraphQL查询,无需同步即可使用。
`--state`匹配state.type,因此可跨自定义状态名称的团队使用:`started`、`backlog`、`unstarted`、`completed`、`canceled`、`triage`或`all`。默认值`active`会排除已完成和已取消的问题。
`--assignee`接受`me`、用户UUID、显示名称或邮箱。`--team`和`--project`接受键值(例如`ESP`)或UUID。Agent Mode
Agent模式
Add to any command. Expands to: .
--agent--json --compact --no-input --no-color --yes- Pipeable — JSON on stdout, errors on stderr
- Filterable — keeps a subset of fields, with dotted-path support (see below)
--select - Previewable — shows the request without sending
--dry-run - Cacheable — GET responses cached for 5 minutes, bypass with
--no-cache - Non-interactive — never prompts, every input is a flag
在任何命令后添加参数。该参数等价于:。
--agent--json --compact --no-input --no-color --yes- 可管道传输 — 标准输出为JSON,错误信息输出到标准错误
- 可筛选 — 保留字段子集,支持点路径(见下文)
--select - 可预览 — 显示请求但不发送
--dry-run - 可缓存 — GET响应缓存5分钟,使用可绕过缓存
--no-cache - 非交互式 — 从不提示,所有输入均通过参数传递
Filtering output
输出筛选
--selectbash
linear-pp-cli <command> --agent --select id,name
linear-pp-cli <command> --agent --select items.id,items.owner.nameUse this to narrow huge payloads to the fields you actually need — critical for deeply nested API responses.
--selectbash
linear-pp-cli <command> --agent --select id,name
linear-pp-cli <command> --agent --select items.id,items.owner.name使用该参数可将庞大的响应缩小到实际需要的字段 — 这对深度嵌套的API响应至关重要。
Response envelope
响应信封
Data-layer commands wrap output in . Parse for data and to know whether it's or local. The summary is printed to stderr only when stdout is a TTY; piped/agent consumers see pure JSON on stdout.
{"meta": {...}, "results": <data>}.results.meta.sourceliveN results (live)数据层命令会将输出包裹在中。解析获取数据,可了解数据是来自(实时)还是本地存储。当标准输出为TTY时,摘要会输出到标准错误;管道/Agent消费者仅会在标准输出看到纯JSON。
{"meta": {...}, "results": <data>}.results.meta.sourceliveN results (live)Exit Codes
退出码
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found (issue, project, team) |
| 4 | Authentication required (LINEAR_API_KEY missing or invalid) |
| 5 | API error (Linear upstream, including GraphQL errors) |
| 7 | Rate limited (Linear enforces per-key complexity budgets) |
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 使用错误(参数错误) |
| 3 | 资源未找到(问题、项目、团队) |
| 4 | 需要认证(LINEAR_API_KEY缺失或无效) |
| 5 | API错误(Linear上游错误,包括GraphQL错误) |
| 7 | 请求受限(Linear按密钥执行复杂度预算限制) |
Unique Capabilities
独特功能
These capabilities aren't available in any other tool for this API.
这些功能是其他同类型API工具所不具备的。
Local state that compounds
可累积的本地状态
-
— See all your issues for today across every team, ranked by priority and cycle deadline.
todayWhen an agent is asked 'what should I work on right now?', this returns the ranked list in one call instead of N team-scoped list queries.bashlinear-pp-cli today --json --select identifier,title,priority,cycle.endsAt -
— See which team members are overloaded and which issues are blocked before sprint planning.
bottleneckPre-sprint-planning question 'who is overloaded right now' becomes a single agent call instead of scrolling N tabs.bashlinear-pp-cli bottleneck --team ENG --json -
— Project a project's landing date by linear-regressing remaining estimate against the team's measured velocity.
projects burndownReplaces static project target-dates with a velocity-driven projection an agent can compare against the milestone date.bashlinear-pp-cli projects burndown PROJ-42 --json -
— Side-by-side metrics between any two cycles: completion %, scope added, scope cut, carryover, average cycle time.
cycles compareFriday-update ritual: 'how does this cycle compare to last cycle?' becomes one call.bashlinear-pp-cli cycles compare 42 43 --json -
— Find issues that haven't been touched in N days, grouped by team and project.
staleBacklog-grooming workflow: surface zombie issues without paying API complexity for a full scan.bashlinear-pp-cli stale --days 30 --team ENG --json -
— Show what carried over from last cycle into this cycle, grouped by team and reason heuristic.
slippedMaya's Friday update needs 'what slipped' as a structured list, not a manual count.bashlinear-pp-cli slipped --team ENG --json -
— Show issues you are blocking — sorted by impact (downstream count and priority).
blockingDaily ritual: 'what's blocked because of me' becomes one call instead of clicking through every assigned issue.bashlinear-pp-cli blocking --json -
— Find issues that look like duplicates of a query string using offline FTS5 fuzzy matching.
similarTriage and grooming: catch dupes before filing or while sweeping the inbox.bashlinear-pp-cli similar "login button broken" --json -
— Track sprint completion rates over the last N cycles to spot productivity trends.
velocityMulti-cycle trend lines feed the burndown projection and the weekly stakeholder update.bashlinear-pp-cli velocity --weeks 8 --team ENG --json -
— Rolled-up portfolio view per initiative: child project progress, milestone target-vs-projected dates, slippage flags.
initiatives healthPortfolio review: 'which milestone in my portfolio is most at risk this month' becomes one ranked answer.bashlinear-pp-cli initiatives health --json
-
— 查看跨所有团队的今日个人问题,按优先级和迭代截止日期排序。
today当Agent被问及“我现在应该先做什么?”时,该命令可一次性返回排序后的列表,无需执行N次团队范围的列表查询。bashlinear-pp-cli today --json --select identifier,title,priority,cycle.endsAt -
— 在迭代规划前查看哪些团队成员负载过重,哪些问题被阻塞。
bottleneck迭代规划前的问题“现在谁负载过重?”可通过一次Agent调用解决,无需在N个标签页间切换。bashlinear-pp-cli bottleneck --team ENG --json -
— 通过线性回归剩余预估工作量与团队实测速度,预测项目完成日期。
projects burndown用速度驱动的预测替代静态项目目标日期,Agent可将其与里程碑日期进行对比。bashlinear-pp-cli projects burndown PROJ-42 --json -
— 任意两个迭代周期的并排指标对比:完成率、新增范围、削减范围、遗留工作量、平均周期时间。
cycles compare周五更新惯例:“本次迭代与上次相比如何?”可通过一次调用解决。bashlinear-pp-cli cycles compare 42 43 --json -
— 查找N天未更新的问题,按团队和项目分组。
stale待办事项梳理流程:无需支付全量扫描的API复杂度成本即可发现僵尸问题。bashlinear-pp-cli stale --days 30 --team ENG --json -
— 显示从上一个迭代周期遗留到当前周期的问题,按团队和原因启发式分组。
slippedMaya的周五更新需要结构化的“遗留问题”列表,而非手动统计。bashlinear-pp-cli slipped --team ENG --json -
— 显示因你而阻塞的问题 — 按影响程度(下游问题数量和优先级)排序。
blocking日常惯例:“哪些问题因我而阻塞?”可通过一次调用解决,无需逐个点击已分配的问题。bashlinear-pp-cli blocking --json -
— 使用离线FTS5模糊匹配查找与查询字符串相似的重复问题。
similar问题分类和梳理:在创建问题或清理收件箱前发现重复项。bashlinear-pp-cli similar "login button broken" --json -
— 跟踪最近N个迭代周期的完成率,发现生产力趋势。
velocity多周期趋势线可用于燃尽图预测和每周利益相关者更新。bashlinear-pp-cli velocity --weeks 8 --team ENG --json -
— 按行动计划汇总的组合视图:子项目进度、里程碑目标日期与预测日期对比、延迟标记。
initiatives health组合评审:“本月我的组合中哪个里程碑风险最高?”可通过一次排序后的回答解决。bashlinear-pp-cli initiatives health --json
Agent-native plumbing
Agent原生管道
-
— List Linear issues this CLI created in the current or named session, then archive them with pp-cleanup.
pp-test listLets agents create test issues during a session and clean up only their own fixtures, never touching pre-existing tickets.bashlinear-pp-cli pp-test list --session current && linear-pp-cli pp-cleanup --session current --dry-run -
— Refuse mutations on Linear issues not in the local pp_created ledger when --trust-mode strict is set; works on the create command and any future mutation surfaces.
issues createWhen an agent runs against a real workspace, this is the safety net that prevents silent damage to non-test data.bashlinear-pp-cli issues create --title "test" --team ENG --trust-mode strict --session demo
-
— 列出本CLI在当前或指定会话中创建的Linear问题,然后使用pp-cleanup归档这些问题。
pp-test list允许Agent在会话期间创建测试问题,并仅清理自己的测试数据,绝不会触及已存在的工单。bashlinear-pp-cli pp-test list --session current && linear-pp-cli pp-cleanup --session current --dry-run -
— 当设置
issues create时,拒绝修改不在本地pp_created ledger中的Linear问题;该规则适用于create命令及任何未来的变更操作。--trust-mode strict当Agent在真实工作区运行时,这是防止意外损坏非测试数据的安全网。bashlinear-pp-cli issues create --title "test" --team ENG --trust-mode strict --session demo