Linear CLI Skill
通过轻量级命令行工具管理 Linear 工单,让 Claude 直接帮你查询、创建、更新和删除 issue。
源码显示最小依赖(@linear/sdk、dotenv),API 密钥通过环境变量或本地 .env 提供,未发现隐蔽外传或恶意行为;删除为软删除可恢复。扣分项:issue delete / update 等写操作无任何用户确认机制,.env 明文存密钥的做法仅作建议而缺安全提示,无回滚说明,发布者身份未验证。
SKILL.md 与脚本存在明显不一致:SKILL.md 写 `--description`,而 CLI 实际使用 `--body`/`--body-file`;SKILL.md 称多词参数无需引号自动合并,代码中未见对应处理。无测试、无 CI 覆盖,错误处理部分尚可(缺失密钥、标签、日期格式有可读报错),但静态审阅下边界与失败路径不可复现,故扣分。
触发条件(用户提及 Linear 或 issue 操作)与场景声明清晰,命令边界、参数、JSON 输出均有说明。扣分项:能力边界(如需管理员权限的资源、批量操作不支持)未声明,核心功能完全依赖 Linear 云服务,未说明中国大陆网络可达性,无中文支持。
文档结构清晰,README 与 help 系统较完整,版本号 0.1.0 存在。扣分项:license 元数据未知(lockfile 中依赖为 MIT/BSD,但仓库本身无声明)、无 changelog、SKILL.md 与代码参数不同步、维护者与更新路径不明确。
CLI 仿 gh 风格,覆盖增删改查与评论,README 含丰富示例,比手动调 API 有边际价值。但静态审阅无法验证实际产出,且 SKILL.md 参数(--description)与实际(--body)不一致可能导致初次使用即失败,扣分。
提供主要源码、lockfile(含完整性哈希)等可审计材料,但无测试套件、无 CI 执行证据,命令行为只能推断不可复现,故仅给低分。
- SKILL.md 的 `--description` 参数与实际 CLI 的 `--body`/`--body-file` 不一致,使用时以 `--help` 输出为准。
- 删除、更新等写操作无确认步骤,建议在自动化调用前人工核对目标 issue。
- API 密钥明文存放于 linear/.env,注意文件权限并避免提交到版本库。
- 未执行过任何验证;建议在受控 Linear 工作区先行测试。
- 核心功能依赖 Linear 海外云服务,中国大陆网络可达性未声明。
这个 Skill 能做什么,适合哪些场景?
这是一个 Claude 技能,内置一个基于 JavaScript 的轻量 CLI,用于操作 Linear 的问题跟踪系统。命令风格模仿 GitHub CLI(resource → action),支持列出用户、团队、项目,以及对 issue 进行查看、创建、评论、更新和软删除。依赖极少(仅 Linear SDK 和 dotenv),首次运行时自动安装。需要配置 LINEAR_API_KEY 才能连接 Linear。
运行 ./linear 可执行文件,通过 Linear API 执行操作:./linear issue list 支持按团队、负责人、状态过滤并限制条数;issue view 输出完整工单详情(含评论);issue create 可设置团队、描述、负责人、优先级、标签、项目、父工单、估算点和截止日期;issue update 可一次性更新多个字段;issue delete 为可恢复的软删除;issue comment 添加评论。默认输出制表符分隔的文本,-- 输出机器可读结果,所有命令支持 --help。
- 开发者在使用 Claude Code 时,希望用自然语言直接创建或修改 Linear 工单,而不必切换窗口
- 团队负责人需要快速汇总某团队当前处于特定状态(如 In Progress)的全部 issue
- 个人用户想通过一条命令给自己分配任务(--assignee @me)或批量更新优先级
- 工程经理希望用脚本(cut/awk/grep)解析 issue 列表做周报或看板统计
- 需要把长描述从 markdown 文件或 stdin 直接写入新 issue 的用户
这个 Skill 有哪些优点和局限?
- 依赖极少(仅 Linear SDK 和 dotenv),首次运行自动安装依赖
- 命令风格遵循 GitHub CLI 惯例,学习成本低
- 覆盖 issue 全生命周期:查看、创建、评论、更新、软删除
- 高级功能齐全:标签、子 issue、项目归属、估算点、截止日期、@me 快捷方式、--body-file 支持 stdin
- 默认输出便于 Unix 工具解析,并支持 --
- 仓库未声明开源许可证,商用需谨慎
- 标签必须预先存在于团队中,否则会报错(会列出可用标签)
- 状态名区分大小写,容易出错
- 创建 issue 时 --team 为必填,需先查询团队 UUID
- README 未提及测试套件或跨平台(Windows)验证情况
如何安装这个 Skill?
在 Claude Code 中通过插件市场安装:
claude plugin marketplace add Valian/linear-cli-skill
claude plugin install linear
或手动安装:克隆仓库后进入 linear/ 目录运行 npm install(首次运行时依赖会自动安装)。然后到 https://linear.app/settings/api 创建 Personal API Key,并通过环境变量 export LINEAR_API_KEY="..." 或写入 linear/.env 文件提供。注意:LICENSE 未知。
如何使用这个 Skill?
对 Claude 说例如「帮我在 ENG 团队创建一个修复登录 bug 的 issue,优先级高」或「列出分配给我的所有 In Progress 工单」即可触发该技能。也可直接运行 CLI:
./linear team list # 获取团队 ID
./linear issue list --team <id> --limit 10
./linear issue view ENG-123
./linear issue create "标题" --team <id> --priority 2
./linear issue update ENG-123 --status "Done" --assignee @me
注意:工单 key 不区分大小写,但状态名区分大小写;用户/团队 ID 是 UUID,需先用 list 命令获取。
这个 Skill 与同类方案有什么区别?
README 明确说明命令风格遵循 GitHub CLI(gh)的 resource → action 约定,以便保持一致性;对于想用 agent 管理 Linear 的用户,它相对于直接写 API 调用脚本的优势在于封装好鉴权和输出格式。