内容
align="center">
<img src="./assets/readme-hero.png" alt="yacli hero" width="100%">
</p>
<h1 align="center">yacli</h1>
<p align="center"><strong>命令行界面,MCP 服务器和MCP应用,用于 Yandex 邮件,日历和磁盘</strong></p>
<p align="center">适用于终端,AI 代理和 MCP 主机的统一产品界面。</p>
<p align="center">
<a href="https://github.com/NextStat/yacli/releases"><img src="https://img.shields.io/github/v/release/NextStat/yacli?display_name=tag&style=for-thelabel=%E5%8F%96%E6%9C%80%E6%96%B0%E5%88%8A%E6%9C%AC" alt="最新版本"></a>
<a href="https://github.com/NextStat/yacli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/NextStat/yacli/ci.yml?branch=main&style=for-the-badge&label=%E6%B5%99%E9%A8%93" alt="检查"></a>
<img src="https://img.shields.io/badge/MCP-Apps-ffb703?style=for-the-badge" alt="MCP 应用">
<img src="https://img.shields.io/badge/macOS%20%7C%20Linux%20%7C%20Windows-%E5%89%AA%E6%AD%A5%E5%99%A8%E5%90%8C%E6%AD%A5%E5%B7%A5%E5%B7-219ebc?style=for-the-badge" alt="支持平台">
<img src="https://img.shields.io/badge/%E8%BF%90%E5%8A%A8%E6%9C%80%E6%96%B0%E5%88%8A%E6%9C%AC%E5%B7%A5%E5%85%B7-8ecae6?style=for-the-badge" alt="自动更新">
<a href="https://github.com/NextStat/yacli/blob/main/LICENSE"><img src="https.shields.io/badge/License-MIT-90be6d?style=for-the-badge" alt="MIT 许可证"></a>
</p>
<p align="center">
<a href="#%E5%AE%89%E8%A3%85"><strong>安装</strong></a> •
<a href="#%E5%BF%AB%E9%80%9F%E5%90%8F%E5%90%8F"><strong>快速开始</strong></a> •
<a href="#%E6%97%A5%E5%B8%B8%E5%91%BD%E5%90%8F"><strong>命令</strong></a> •
<a href="#%E6%A1%AA%E6%9C%8D%E5%90%8A%E5%99%A8%E5%88%80%E6%%AC%E5%88%8A%E6%9C%AC%E5%B7%A5%E5%85%B7"><strong>MCP</strong></a>
</p>
`yacli` 将 Yandex 邮件,日历和磁盘绑定在一个易用的界面中:终端,代理客户端和 MCP 应用中。单个二进制文件解决了日常手动工作,代理集成和诸如 `邮件 → .ics → 事件` 或 `文件 → 邮件` 之类的复合场景。
<table>
<tr>
<td width="33%" valign="top">
<strong>日常工作的命令行界面</strong><br/><br/>
邮件,日历,附件,事件和私有磁盘在一个二进制文件和一个配置文件中。
</td>
<td width="33%" valign="top">
<strong>MCP 代理服务器</strong><br/><br/>
具有 <code>stdio</code>,<code>http</code>,prompts,skills,resources,completions,roots 和 write-tools 的完整 MCP 服务器。
</td>
<td width="33%" valign="top">
<strong>MCP 应用的用户界面主机</strong><br/><br/>
仪表盘,deep links,prompts,资源浏览器和跨服务场景。
</td>
</tr>
</table>
<table>
<tr>
<td width="33%" valign="top">
<strong>邮件 → 附件 → 文件</strong><br/><br/>
查找邮件,下载所需的附件并在中间脚本的情况下本地保存。
</td>
<td width="33%" valign="top">
<strong>邮件 → <code>.ics</code> → 事件</strong><br/><br/>
从邮件中解析邀请并直接在所需日历中创建会议。
</td>
<td width="33%" valign="top">
<strong>文件 → 邮件</strong><br/><br/>
取本地文件,附加到邮件并通过同一界面发送。
</td>
</tr>
</table>
## 安装
### macOS 和 Linux
```bash -fsSL https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.sh | sh
```
### Windows
```powershell
irm https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.ps1 | iex
```
macOS86_64`/`arm64`,Linux86_64`/`arm64` 和 Windows `x86_64` 的预编译二进制文件可在 [GitHub Releases](https://github.com/NextStat/yacli/releases) 中找到。
<details>
<summary>从源代码构建 / 更新 / 私有镜像</summary>
```bash
cargo install --path . # 从源代码构建
yacli update # 更新到最新版本
yacli update --check # 检查但
```
对于私有镜像:
```bash
export YACLI_UPDATE_BASE_URL='https://mirror.example.test/releases/download/v0.5.5'
yacli update --check
```
</details>
## 快速开始
**一分钟启动**
```bash
curl -fsSL https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.sh | sh
yacli setup me@yandex.ru --calendar-app-password <密码> --client claude
```
这将立即为您提供:
- 适用于邮件,日历和磁盘的本地命令行界面;
- 适用于 Claude,Codex,Gemini 等客户端的 MCP 服务器;
- 适用于 MCP 应用的 prompts,embedded skills,resources 和 dashboard;
- 无需脚本粘合的跨服务场景。
- 在 Unified Home 中提供实时 onboarding checklist,以便在不猜测的情况下完成缺少的步骤。
- 通过 `yacli home` 访问终端首页,查看 onboarding,工作流和最新操作。
- 通过 `yacli doctor` 和 `resource://yacli/doctor` 进行产品健康检查,快速了解还有什么阻碍就绪。
- 通过 `yacli doctor --apply-safe` 和 Unified Home 中的“应用安全修复”按钮,进行安全本地修复。
- 通过 `yacli next` 和 `resource://yacli/next-actions`,按排名显示下一个操作,立即看到最有利的下一个步骤。
- 通过 `yacli suggest` 和 `resource://yacli/suggestions`,提供主动建议,从实际活动历史和实时产品信号中获取恢复/清理/撤销提示。在 `Unified Home` 中,这些建议不仅可见,还可以直接跳转到撤销或规范的工作流/审查路径。
### 开始使用
| 如果您需要 | 请执行 |
| --- | --- |
| **一次性设置** | `yacli setup me@yandex.ru --calendar-app-password <密码> --client claude` |
|连接邮件和磁盘** | `yac` → `yacli login` |
| **历** | 获取 Yandex ID 应用密码 → ` login calendar --app-password <密码>` |
| **在 Claude / Codex / Gemini 中设置 MCP** | `yacli mcp install --client <client>` |
| **启动本地 HTTP MCP** | `yacli mcp --transport http --listen 127.0.1:8787` |
对于代理和无头场景,`yacli login` 现在使用两个步骤,无需脆弱的 `stdin` 对话:
```bash
yacli login
# => status=pending, authorization_url, resume_command
yacli login --code <代码>
```
`yacli` 在本地配置文件目录中保存待处理的 PKCE 会话,并在第二次调用时重用它,因此在新的 `code_verifier` 之前,不会破坏确认代码。
<details>
<summary><strong>如何获取日历应用密码</strong></summary>
1. 打开 [Yandex ID 应用密码](https://yandex.ru/support/id/ru/authorization/app-passwords)。
2. 进入 `安全` → `数据访问` → `应用密码`。
3. 选择 `日历` 类型。
4. 指定名称,例如 `yacli calendar`,然后复制密码。
如果不想本地存储密码:
```bash
export YACLI_CALENDAR_APP_PASSWORD='<密码>'
yacli login calendar --env-var YACLI_CALENDAR_APP_PASSWORD
```
在发布版本中,OAuth 令牌和应用密码存储在系统 keyring/keychain 中。在调试/测试版本中,默认使用 `file` 后端,以避免使用 keychain 提示开发和 `cargo test`。要显式覆盖:`export YACLI_SECRET_BACKEND=keyring` 或 `export YACLI_SECRET_BACKEND=file`。
</details>
### 检查一切是否正常
```bash
yacli home
yacli doctor
yacli doctor --apply-safe
yacli next
yacli suggest
yacli status
yacli mail list
yacli calendar calendars
yacli disk info
```
## Claude Cowork 中的实时场景
`yacli` 已经在代理界面中提取了实际的复合任务,而不仅仅是单个命令。
**Claude Cowork 请求:**
> 创建一个名为“yacli v0.5 回顾”的事件,周一 11:00,持续 30 分钟,发送邮件提醒,并为材料在磁盘上创建一个文件夹。
**结果:**
1. 在日历中创建事件,时间为周一 **2026 年 3 月 16 日**,`11:00–11:30`。
2. 邮件提醒已发送。
3. 磁盘上的文件夹已确认:`/yacli-v0.5-review`。
**为什么重要:** 一个请求绑定了 `yacli` 的三个表面:
- 日历用于创建事件;
- 邮件用于发送提醒;
- 磁盘用于准备工作文件夹。
这正是 `yacli` 的产品目标:不仅提供工具,还要将实际工作场景提升到人们和代理人都能理解的水平。
## 日常### 邮件
```bash
yacli mail folders
yacli mail list
yacli mail search "预算"
yacli mail read 1353
yacli mail reply 1353 "已受理,谢谢"
yacli mail forward 1353 person@example.com "请查看"
yacli mail send person@example.com "同步" "你好"
yacli mail send person@example.com "账单" "附件是文件" --attach ./invoice.pdf
yacli mail send person@example.com "账单" "附件是文件" --attach ./invoice.pdf --dry-run
yacli mail send-link person@example.com "材料" "发送链接" --source ./archive.zip --path disk:/docs/archive/archive.zip
yacli mail send-link person@example.com "材料" "发送链接" --source ./archive.zip --path disk:/docs/archive/archive.zip --dry-run
yacli mail send-published-link person@example.com "材料" "发送链接" --public-url https://disk.yandex.ru/i/archive-link
yacli mail send-published-link person@example.com "材料" "发送链接" --public-url https://disk.yandex.ru/i/archive-link --dry-run
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip --dry-run
```
附件和邀请:
```bash
yacli mail attachment export 1353 --index 1 --output ./invoice.pdf
yacli mail invite inspect 1353 --index 1
yacli mail invite 1353 --index 1
```
- 数字 `1353` 是从 `mail list` 或 `mail search` 获得的邮件标识符。
- `--folder "文件夹名"` 用于非 INBOX 文件夹操作。
- `--html`,`--cc`,`--bcc` 用于 HTML 和副本。
- `--attach` 可以多次指定。
- `--dry-run` 显示发送审查,无需实际 SMTP 调用。
- 如果组装的邮件对于安全 SMTP 发送来说太大了,`mail send --dry-run` 建议使用 `send-link-by-mail` 工作流,而实际的 `mail send` 在网络步骤之前被阻止,并附有相同的提示。
- `mail send-link` 是大文件的正确流程:上传到磁盘,发布链接,并在一步中发送邮件链接。
- 如果 `mail send-link` 已经有 `upload + publish`,但 SMTP 失败,命令返回 `status=partial`,带有可恢复操作:通过 `mail send-published-link` 重试仅邮件步骤,或手动分享链接或撤销它。
- `mail send-published-link` 是已经发布的链接的诚实重试邮件步骤,无需重复上传/发布。
- `disk upload-link` 是正确的工作流,当需要获取公共链接而无需发送邮件时。
<details>
<summary>更多示例</summary>
```bash
yacli mailfolder "已发送" --limit 20
yacli mail search "合同" --folder "存档 2026"
yacli mail attachment export 1353 --name invoice.pdf --output ./invoice.pdf
yacli mail invite inspect 1353 --nameics
yacli mail invite create-event 1353 --name invite.ics --calendar team --event-index 2
yacli mail send person@example.com "账单" "发送账单" --cc boss@example.com
yacli mail send person@example.com "账单" "发送账 --attach ./invoice.pdf --attach ./spec.docx
yacli mail send-link person@example.com "材料" "发送链接" --source ./archive.zip --path disk:/docs/archive/archive.zip
```
</details>
### 日历
```bash
yacli calendar calendarsli calendar events
yacli calendar events 2026-03-14 -03-20 --limit 20
yacli calendar create "团队同步" 2026-03-14T09:00:00Z 2026-03-14T10:00:00Z
yacli calendar create "团队同步" 2026-03-14T09:00:00Z 2026-03-14T10:00:00Z --dry-run
yacli calendar delete <id>
```
- 无日期的` 显示接下来的 30 天。
- `--calendar <id>` 用于非默认日历操作。
- `calendar create-run` 显示事件审查,无需实际 CalDAV PUT。
### 磁盘
```bash
yacli disk info
disk list
yacli disk listdocs --limit 50
yacli disk mkdir disk:/docs/archive
yac upload ./report.pdf disk:/docs/archive/report.pdf
yacli disk upload ./report.pdf disk:/docs/archive/report.pdf --dry-run
yacli disk upload-link --report.pdf --path disk:/docs/archive/report.pdf
yacli disk upload-link ./report.pdf --path disk:/docs/archive/report.pdf --dry-run
yacli disk downloaddocs/archive/report.pdf --output ./report.pdf
yacli disk publish disk://report.pdf
yacli disk publish disk:/docs/archive/report.pdf --dry-run
yacli disk unpublishdocs/archive/report.pdf
yacli disk unpublish disk:/docs/archive/report.pdf --dry-run
```
- `disk upload --dry-run` 显示文件和远程路径审查,无需请求上传票据和。
- `disk upload-link` 在一步中关闭人类流程 `本地文件 -> 磁盘 -> 公共链接`--dry-run` 显示审查上传。
- `disk download` 从相同的强大传输合约下载私有进度、重试、统计和活动重放。
- `disk publish --dry-run` 显示将被发布的内容以及资源是否已经具有 `public_url` / `public_key`,无需实际发布。
- `disk publish` 发布私有资源并返回 `public_url` / `public_key`,以便可以链接大文件而无需作为附件发送。
- `disk unpublish --dry-run` 显示将被撤销的公共链接,无需实际吊销。
- `disk unpublish` 吊销公共链接并返回已吊销的 `public_url` / `public_key`。
- 默认情况下,磁盘上传/下载传输在不设置通用短超时时间的情况下等待完成;如有必要,可以通过 `YACLI_DISK_UPLOAD_TIMEOUT_SECS` 和 `YACLI_DISK_DOWNLOAD_TIMEOUT_SECS` 设置严格的上限。
- 在 CLI 表模式中,大型上传/下载显示 stderr 中的实时进度和吞吐量,不会破坏 JSON/MCP 合同。
- 在瞬时网络故障的情况下,传输会自动进行多次安全重试:下载从头开始,上传获取新的上传票据并重新发送整个上传内容。
- `disk public download` 现在通过 `.part` + HTTP `Range` 支持可恢复下载,如果下载端点支持部分内容;最终有效载荷显示 `resumed_from_bytes`、`attempts` 和 `elapsed_ms`。
### 操作日志
```bash
yacli activity list
yacli activity list --limit 20
yacli activity show <id>
yacli activity undo <id>
```
- 只有成功的实际写入操作才会进入日志。
- `--dry-run` 不会记录到日志中。
- 每个条目都有一个 `replay_command`,可以重复或传递给代理。
- 对于诚实的可逆操作,记录还会带有 `undo_command`,而 `yacli activity undo <id>` 执行标准回滚。
### 公共磁盘
```bash
yacli disk public show --public-key https://disk.yandex.ru/i/WhGpLnQWR9efCA
yacli disk public download --public-key https://disk.yandex.ru/i/WhGpLnQWR9efCA --output ./sample.pdf
```
## 跨服务场景
| 技能/工作流 | 绑定 | 请求示例 |
| --- | --- | --- |
| `daily-briefing` | 邮件 + 日历 |邮件和会议中收集每日简报” |
| `reply-with-context 邮件 + 日历 | “在考虑我的日程安排的情况下回复此 |
| `attachment-to | 邮件 → 文件 | “并将附件保存到文件中” |
| `send-file-by-mail` | 文件 → 邮件 | “通过邮件发送磁盘上的文件” |
| `-by-mail` | 文件 →盘 → 邮件 | “将大文件上传到磁盘并通过邮件发送链接” |
| `publish-file-link` | 文件 → 磁盘 | “将文件上传到磁盘并提供公共 |
| `revoke-public-link` | 磁盘 | “上文件的公共链接” |
| `invite-to-calendar` | 邮件 → | “查找邀请并将其添加到日历中” |
```bash 每日简报
yacli maillimit 10
yac events
# 考虑时间安排的回复
yacli mail read
yacli calendar events 2026-03-14 20203-16
yacli mail reply 1353 "确认,窗口期合适"
# 大文件 -> 链接 -> 邮件
yacli mail send-link person@example.com "材料" "发送链接" --source ./archive.zip --path disk:/docs/archive/archive.zip
# 本地文件 -> 公共链接
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip
撤销公共链接
yacli disk unpublish disk:/docs/archive/archive.zip
# 保存附件
yacli mail attachment export 1353 --name invoice.pdf --output ./invoice.pdf
邮件发送文件
yac send person@example.com "账单" "附件是文件" --invoice.pdf
# 邀请 → 事件
yacli mail invite inspect --index 1
yac invite create-event 1353 --index 1 --calendar team
```
对于 MCP 客户端,可以通过 `prompts/get` 和 `resource://yacli/skill/*` 访问相同的场景。
## 多个地址
```bash
yacli add personal@yandex.ru
yacli login
yacli add work@company.ru work
yacli use work
yacli login
yacli mail list --account personal
yacli mail search "账单" --account work
```
每个地址都有自己的令牌和设置。`use` 命令用于切换当前账户,`--account` 用于访问特定账户。
## 为什么选择 yacli
| 特点 | 描述 |
| --- | --- |
| `单一运行环境` | 邮件、日历和磁盘都生活在一个二进制文件、一个配置文件和一个代理合同中。 |
| `应用优先的 MCP` | 不仅有工具,还有 MCP 应用:仪表盘、提示、嵌入式技能、资源、实时订阅。 |
| `跨服务工作流` | 支持从邮件到附件到 `.ics` 到日历事件的工作流,从文件到邮件,从代理到 MCP 提示到操作的工作流。 |
| `可立即使用的` | 为 macOS、Linux `x86_64`/`arm64`、Windows `x86_64` 提供现成的发布版本,以及 `yacli update` 命令。 |
```mermaid
flowchart LR
U["用户/代理"] --> CLI["yacli CLI"]
U --> MCP["yacli MCP 服务器"]
MCP --> APPS["MCP 应用仪表盘"]
MCP --> PROMPTS["提示/技能/资源"]
CLI --> MAIL[" Yandex 邮件"]
CLI --> CAL[" Yandex 日历"]
CLI --> DISK[" Yandex 磁盘"]
MCP --> MAIL
MCP --> CAL
MCP --> DISK
APPS --> MAIL
APPS --> CAL
APPS --> DISK
```
重要:`yacli` 不是 Yandex 的产品,Yandex 不支持该项目。这是一个独立的开源项目。
## MCP
### 启动
```bash
yacli mcp # 标准输入/输出
yacli mcp --transport http --listen 127.0.0.1:8787 # HTTP
```
`stdio` 自动兼容 `Content-Length` 分帧和行分隔的 JSON - 一个二进制文件适用于旧客户端和新客户端。
### 在客户端安装
```bash
yacli mcp install # 所有检测到的客户端
yacli mcp install --client claude # Claude Code + Claude Desktop
yacli mcp install --client codex # Codex
yacli mcp install --client gemini # Gemini CLI
yacli mcp install --client cursor # Cursor
```
注册 MCP 服务器并将 13 个嵌入式技能部署到客户端目录中。
支持的客户端:Claude Code, Claude Desktop / Cowork, Codex, Gemini CLI, Cursor, Zed, Windsurf, Antigravity, Warp.
### MCP 客户端的功能
| 层 | 内容 |
| --- | --- |
| `工具` | 邮件,日历,磁盘,账户,身份验证,更新,根目录 |
| `资源` | 账户/身份验证,技能目录,模板资源 |
| `提示` | 共享,邮件,日历,磁盘,每日简报,查找和阅读,上下文回复,附件到磁盘,发送文件邮件,发送链接邮件,发布文件链接,撤销公共链接,日历邀请 |
| `应用` | `ui://yacli/dashboard` - 浏览器,工具运行器,资源检查器,更新检查 |
| `补全` | 账户,文件夹,日历,技能,仪表盘参数 |
| 客户端 | MCP | 应用/UI | 技能 | 提示 |
| --- | --- | --- | --- | --- |
| Claude Code | `stdio` + `http` | 是 | 是 | 是 |
| Claude Desktop / Cowork | 是 | 是 | 否 | 是 |
| Codex / Gemini CLI | `stdio` + `http` | 是 | 是 | 是 |
| Cursor / Windsurf / Warp | 是 | 取决于主机 | 部分 | 是 |
| Zed | 是 | 取决于主机 | 否 | 是 |
<details>
<summary><strong>传输和身份验证</strong></summary>
| 传输 | 何时使用 | 注意事项 |
| --- | --- | --- |
| `stdio` | Claude Code,本地 CLI MCP 客户端 | 自动协商 `Content-Length` 和 JSONL |
| `http` | 支持应用的客户端和本地联网 MCP | 可流式传输的 HTTP + SSE 通知 |
HTTP 传输可流式传输:
- `POST /mcp` - JSON-RPC 请求和批量有效载荷;
- `GET /mcp` 带有 `Accept: text/event-stream` 和 `Mcp-Session-Id` - SSE 流用于服务器推送通知;
- `DELETE /mcp` - 终止 HTTP MCP 会话。
Bearer Token 身份验证:
```bash
export YACLI_MCP_HTTP_BEARER_TOKEN='secret-token'
yacli mcp --transport http --listen 127.0.0.1:8787
```
受保护的资源元数据和身份验证发现:
```bash
export YACLI_MCP_HTTP_AUTH_ISSUER='https://auth.example.test'
```
代理的公共 URL:
```bash
yacli mcp --transport http --listen 127.0.0.1:8787 --public-url https://mcp.example.test/mcp
```
原生 HTTP 注册:
```bash
yacli mcp install --client claude --transport http --url http://127.0.0.1:8787/mcp
yacli mcp install --client codex --transport http --url http://127.0.0.1:8787/mcp
yacli mcp install --client gemini --transport http --url http://127.0.0.1:8787/mcp
```
</details>
<details>
<summary><strong>提示、技能和资源</strong></summary>
嵌入式 MCP 提示 - 俄语,适用于精确匹配查询,如“邮件摘要”或“考虑到日程安排的回复”。
这是 MCP 原生等效于嵌入式 `SKILL.md`。在像 Claude Desktop / Cowork 这样的客户端中,单独的 `SKILL.md` 表面不存在,`prompts/list` 和 `prompts/get` 提供可移植的工作流层。
资源模板:
```
resource://yacli/account/{alias}
resource://yacli/auth/{alias}
resource://yacli/skills
resource://yacli/skill/{skill}
ui://yacli/dashboard{?account,section,resource,tool,skill,prompt}
```
`resources/subscribe` / `resources/unsubscribe` 通过 `notifications/resources/updated` 提供实时通知。
`completion/complete` 建议参数:账户别名,技能名称,邮件文件夹,日历窗口,磁盘路径,仪表盘参数。
对于具有 `roots` 功能的客户端,可以使用 `yacli.roots.list` 工具。
</details>
<details>
<summary><strong>可写入的工具</strong></summary>
邮件:
- `yacli.mail.send` (包括 `attachments` - 本地路径列表)
- `yacli.mail.reply`
- `yacli.mail.forward`
- `yacli.mail.attachment.export`
- `yacli.mail.invite.inspect`
- `yacli.mail.invite.create_event` (索引/名称选择器 + `event_index` 用于具有多个 VEVENT 的 `.ics`)
日历:
- `yacli.calendar.create`
- `yacli.calendar.delete`
磁盘:
- `yacli.disk.mkdir`
- `yacli.disk.upload`
</details>
<details>
<summary><strong>应用和仪表盘</strong></summary>
MCP 应用可通过 `ui://yacli/dashboard` 访问:
- 统一首页 - 带有快照、工作流、活动和快速导航的启动屏幕
- 规范首页资源 - `resource://yacli/home` , `resource://yacli/home/{account}` 和目标感知变体,带有 `?goal=...` - 在 CLI、MCP 和应用中提供相同的摘要界面
- 排名下一个动作 - `yacli next` 和 `resource://yacli/next-actions` 现在支持目标感知优先级,带有 `--goal` / `?goal=...`
- 主动建议 - `yacli suggest` 和 `resource://yacli/suggestions` 从实际活动历史、目标上下文和实时信号中收集恢复/清理/撤销提示
- 目标路由器 - `yacli goal "..."` 和 `yacli.goal.route` 将自然目标路由到最佳工作流、提示和 MCP 工具路径
- 目标驱动的修复 - 路由直接显示设置/就绪状态缺少的内容以及需要哪些命令来解决
- 应用中的目标路由器 - 路由目标可以直接转换为 `Preview action` 、 `Apply routed action` 和 `Share goal replay`
- 实时 onboarding 清单 - 显示尚未连接的内容以及哪些命令可以完成设置
- 实时医生健康检查 - 显示配置/秘密后端/服务就绪状态、MCP 客户端状态和建议的命令
- 应用安全修复 - 运行 `yacli.doctor.apply_safe` ,仅应用安全本地修复步骤并刷新首页/医生/下一个动作
</details>
<details>
<summary><strong>客户端行为</strong></summary>
- `Claude Code` 、 `Codex` 和 `Gemini CLI` 支持原生 HTTP 注册 - `yacli` 支持 `stdio` 和 `http` 安装流程;
- `Claude Desktop / Cowork` 使用 `claude_desktop_config.json` - `yacli mcp install --client claude` 同时注册 Claude Code 和 Claude Desktop;
- 对于 `Cursor` 、 `Zed` 、 `Windsurf` 、 `Warp` 和 `Antigravity` ,安装路径保持 `stdio` 导向;
- 技能安装适用于 Claude Code、Codex、Gemini CLI、Cursor、Windsurf、Warp 和 Antigravity;对于 Zed,MCP 注册无技能表面;
- Claude Desktop / Cowork 通过 MCP 提示(无 `SKILL.md` )获取工作流;
- `stdio` 自动协商 `Content-Length` 和 JSONL 帧;
- `roots` 功能: `tools/list` 广告 `yacli.roots.list` , `notifications/roots/list_changed` 使缓存失效;
- HTTP SSE: `POST /mcp` 带有 `Accept: text/event-stream` - 嵌套 `roots/list` + 最终结果;
- `yacli mcp install` 不复制机密到客户端配置文件;
- 普通文本 MCP 客户端无需 UI 即可工作。
</details>
## 用于自动化
默认情况下, `yacli` 打印 JSON。要进行表格输出:
```bash
yacli --format table mail list
```
隐藏命令 `guide` 用于代理绑定:
```bash
yacli guide
yacli guide --topic mail
```
## 设置存储位置
| 平台 | 路径 |
| --- | --- |
| macOS | `~/Library/Application Support/yacli` |
| Linux | `~/.config/yacli` |
| Windows | `%APPDATA%\yacli` |
```bash
export YACLI_CONFIG_DIR=/path/to/config-dir # 覆盖目录
```
## 其他有用信息
- `status` 显示当前账户连接了哪些服务;
- 如果邮件或磁盘的 OAuth 令牌过期,只需重新运行 `yacli login` 即可;
- `mail forward` 转发邮件时附带常规附件和内联文件;
- `disk public download` 不会在没有 `--force` 的情况下覆盖现有文件。
## 质量检查
```bash
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
```
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器