linearis-oss/linearis
GitHub: linearis-oss/linearis
一个面向 AI 代理与命令行用户的 Linear 工具,通过智能 ID 解析与精简 GraphQL 查询,以极低令牌成本实现结构化的问题管理。
Stars: 177 | Forks: 19
# Linearis
CLI 工具,用于 [Linear.app](https://linear.app),专为 AI 代理优化。JSON 输出、智能 ID 解析、令牌高效的命令,以及“先发现后执行”的工作流,保持代理上下文最小化。也能很好地为偏好在命令行使用结构化数据的用户服务。
## 为什么?
官方的 Linear MCP 运行良好,但它连接时会占用约 13k 令牌——代理尚未执行任何操作。Linearis 采取不同方法:不是一次性暴露完整 API 表面,而是通过两层的用量系统让代理按需发现。`linearis usage` 提供约 200 令牌的概览,随后 `linearis usage` 为某一领域提供完整引用,约 300-500 令牌。一次典型的代理交互仅需约 500-700 令牌上下文,而非 13k。
代价是覆盖范围。MCP 暴露完整的 Linear API;Linearis 覆盖日常处理议题、评论、周期、文档和文件等关键操作。如果你需要管理自定义工作流、集成或工作区设置,MCP 是更好的选择。
**本项目解决我自己的痛点,** 满足我使用 Linear 的工作模式:我**确实**在命令行处理票据/议题和评论;我**不会**用它来管理项目或工作区等。效果因人而异。
## 安装
```
npm install -g linearis
```
需要 Node.js >= 22。
## 认证
```
linearis auth login
```
这会在浏览器中打开 Linear,引导你创建 API 密钥,并将令牌加密存储在 `~/.linearis/token`。
或者直接提供令牌:
```
# 通过 CLI 标志
linearis --api-token issues list
# 通过环境变量
LINEAR_API_TOKEN= linearis issues list
```
令牌解析顺序:`--api-token` 参数 > `LINEAR_API_TOKEN` 环境变量 > `~/.linearis/token` > `~/.linear_api_token`(已弃用)。
## 用法
所有输出均为 JSON。可通过 `jq` 或类似工具进行格式化。
```
# 发现
linearis usage # overview of all domains
linearis issues usage # detailed usage for one domain
```
### 快速开始
```
# 发现可用命令
linearis usage
# 深入一个域
linearis issues usage
# 列出最近的问题
linearis issues list --limit 10
# 搜索问题
linearis issues search "authentication bug"
# 创建问题
linearis issues create "Fix login flow" --team Platform --priority 2
# 添加评论
linearis comments create ENG-42 --body "Investigating this now"
```
如需每个命令和参数的完整参考,请运行:
```
linearis usage
```
## AI 代理集成
### 代理如何使用 Linearis
CLI 围绕“先发现后执行”的模式构建,与代理的工作方式相匹配:
1. **发现** — `linearis usage` 返回所有领域的紧凑概览(约 200 令牌)。代理读取一次以了解可用功能。
2. **深入** — `linearis usage` 提供某一领域的完整命令参考(约 300-500 令牌)。代理仅加载所需内容。
3. **执行** — 所有命令返回结构化 JSON。不解析人类可读的表格或文本。
这意味着代理永远不会将完整 API 表面加载到上下文中。它按需使用,一次只加载一个领域。
### Linearis 与 MCP 的对比
| | Linearis | Linear MCP |
|---|---|---|
| 上下文成本 | 每次交互约 500-700 令牌 | 连接时约 13k 令牌 |
| 覆盖范围 | 常见操作(议题、评论、周期、文档、文件) | 完整 Linear API |
| 输出 | 通过标准输出返回 JSON | 工具调用响应 |
| 设置 | `npm install -g linearis` + Bash 工具 | MCP 服务器连接 |
当令牌效率重要且你主要处理议题及相关数据时,使用 Linearis;当你需要完整 API 覆盖或紧密的工具调用集成时,使用 MCP。
### 示例提示
```
## Linear(项目管理)
Tool: `linearis` CLI via Bash. All output is JSON.
Discovery: Run `linearis usage` once to see available domains. Run `linearis usage` for full command reference of a specific domain. Do NOT guess flags or subcommands -- check usage first.
Ticket format: "ABC-123". Always reference tickets by their identifier.
Workflow rules:
- When creating a ticket, ask the user which project to assign it to if unclear.
- For subtasks, inherit the parent ticket's project by default.
- When a task in a ticket description changes status, update the description.
- For progress beyond simple checkbox changes, add a comment instead of editing the description.
File handling: `issues read` returns an `embeds` array with signed download URLs and expiration timestamps. Use `files download` to retrieve them. Use `files upload` to attach new files, then reference the returned URL in comments or descriptions.
```
将此(或适用于你工作流的版本)添加到你的 `AGENTS.md` 或 `CLAUDE.md`,以便每个代理会话都能自动在上下文中包含它。
## 贡献者
由 [contrib.rocks](https://contrib.rocks) 制作。
## 许可证
MIT。参见 [LICENSE.md](LICENSE.md)。
标签:API安全, API客户端, GNU通用公共许可证, GraphQL, Homebrew安装, JSON输出, Linear.app, Linux 内核安全, LLM代理, MITM代理, Node.js, NPM包, OSV-Scalibr, Token优化, 发现式交互, 威胁情报, 工作流自动化, 开发者工具, 文档结构分析, 智能ID解析, 结构化数据, 自动化攻击, 认证管理, 轻量级上下文, 项目管理