Yardlet
在同一个 macOS 窗口中并排运行 Codex、Claude Code 等多个编码 agent CLI。
- Star 数
- ★ 31
- 最近更新
- 今天
- License
- MIT
- 主语言
- Swift
- FA 评分
- 49/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude CodeChatGPT · OpenAI API · Claude API(部分支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 同时使用 Codex 和 Claude Code 的开发者,希望在一个窗口里并排查看两条任务进度,而不是在终端标签间切换
- 不适合
- 需要在 Windows 或 Intel Mac 上使用的团队
- 希望 Yardlet 自带模型账号、无需自行安装 CLI 的用户
- 必须完全脱离 Apple 生态、只跑 Linux 服务器的场景
- 源码审查
- 49/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Yardlet 是一个用 Swift 和 SwiftUI 编写的原生 macOS 应用,不是网页壳,用来在同一个窗口里并排运行 Codex、Claude Code、OpenCode、Cursor Agent、Antigravity CLI、Kimi Code、Grok Build、Pi 等编码 agent 命令行工具。它不代理、不复制各 agent 的账号,而是直接启动你已登录的 CLI,因此每个 agent 保留自己的 agent loop、登录状态和会话历史;会话仍保存在 Codex 的 CODEX_HOME 或 Claude Code 自己的存储中,中断后可在原应用或 CLI 中继续。Yardlet 自己只保存任务清单、草稿和阅读状态在 ~/.yardlet 下。除对话界面外,它还提供最后一轮改动的 diff、文件恢复与 fork、通过本机 gh 查看 PR 检查、终端、文件面板、内置 Chromium 浏览器面板、连接器(Gmail、Google Calendar、Google Drive 通过内置 MCP 服务器,以及 GitHub、Slack 和远程 MCP 服务)和多账号会话/周额度展示。发布形式是签名并公证的 DMG 或 Homebrew cask,使用 Sparkle 自更新,采用 MIT 许可证。
启动时 Yardlet 调用系统中已安装的 agent CLI(如 codex、claude),通过统一的侧边栏、会话视图、输入框和审批卡片驱动它们;每个任务绑定一个 CLI 运行时和一个已注册的 provider 账号,新任务可按剩余额度选择账号。它读取并索引各 agent 原生会话存储(Codex 使用原生 CODEX_HOME,通常是 ~/.codex),自身只在 ~/.yardlet 维护任务索引、草稿和阅读状态,因此会话可在 Yardlet 与原 CLI 之间互相恢复。运行中它展示最后一轮改动的 diff、支持文件恢复与 fork,PR 标签页通过用户自己的 gh 拉取检查结果,并提供终端与文件面板。内置 MCP server 在本机提供 Gmail、Google Calendar、Google Drive 连接器,GitHub、Slack 及远程 MCP 服务通过一次登录接入,连接器可按任务关闭;Chromium 面板供 agent 通过浏览器工具操作。此外还有在 Yardlet 打开时运行的定时任务,以及让一个任务读取、发消息或启动另一个任务的会话工具。
- 同时使用 Codex 和 Claude Code 的开发者,希望在一个窗口里并排查看两条任务进度,而不是在终端标签间切换
- 给同一家 provider 注册多个账号的用户,需要按剩余额度为新任务挑选账号并看到会话/周用量
- 需要在提交前审阅 agent 最后一轮改动、对比 diff、恢复文件或从某一步 fork 出新会话的工程师
- 希望把 Gmail、Google Calendar、Google Drive、GitHub、Slack 作为连接器一次性提供给多个 agent 并按任务开关的团队
- 需要在任务运行期间让 agent 驱动内置浏览器查看页面的使用者
- 想要保持本地优先、quit 后各 agent 的登录和会话原封不动可回退到原 CLI 的用户
如何安装或部署这个 Agent?
从 GitHub Releases 下载已公证的 Yardlet-<version>.dmg,打开后拖入「应用程序」;或用 Homebrew 安装:
brew install --cask zzunkie/tap/yardlet前置要求:macOS 15 或更高版本、Apple 芯片,并至少安装并登录一个 agent CLI(例如 codex 或 claude)。安装后 Yardlet 通过 Sparkle 每天自动检查 https://yardlet.app/appcast.xml 并自更新。
如需从源码构建,需要 Xcode 27.1 或更高版本(Swift 6.4):
swift build --build-system native
./scripts/test-fast.sh
swift run --build-system native NativeHarnessClient生成可正常注册的 .app 包:
./scripts/build-app.sh
open .build/Yardlet.app如何使用这个 Agent?
确认目标 CLI 已登录后启动 Yardlet,在侧边栏新建任务并选择要运行的 agent;若要启用 Claude,先用 CLI 自身登录:
claude auth login在 Connections → Accounts 下可为同一 provider 注册多个账号,新任务按可用额度选择账号,已保存的任务保留其原 CLI 环境。任务运行中可查看 diff、通过 gh 打开 PR 检查、使用终端和文件面板;连接器在设置中一次配置后按任务启用或关闭。若更新时仍有任务在跑,Yardlet 菜单显示 Waiting to Update,可在任务结束后安装,或选择 Cancel Update 推迟到下次退出。要卸载时退出 Yardlet 并拖入废纸篓,或:
brew uninstall --cask zzunkie/tap/yardlet如需连同自身数据一起清除:
brew uninstall --zap --cask zzunkie/tap/yardlet这个 Agent 有哪些优点和局限?
- 不替换也不代理 agent:直接启动你已登录的 CLI,移除 Yardlet 后各 agent 的登录与会话保持原样
- 会话仍存于 Codex 的原生 CODEX_HOME 与 Claude Code 自身存储,可在 Yardlet 和原 CLI 之间双向恢复,避免迁移锁定
- 同一窗口统一侧边栏、会话视图、输入框与审批卡片,同时支持 Codex、Claude Code、OpenCode、Cursor Agent 等多个 CLI
- 内置 diff 审阅、文件恢复与 fork、gh PR 检查、终端、文件面板和 Chromium 浏览器面板,覆盖从改动到验证的流程
- 本地优先:无分析埋点,任务元数据在 ~/.yardlet,连接器凭据存于 macOS Keychain,连接器调用从本机直达服务
- 仅支持 macOS 15 及以上、Apple 芯片,Windows 与 Intel Mac 用户无法使用
- 本身不提供模型额度,必须自行安装并登录各 agent CLI,账号成本由各自 provider 收取
- 从源码构建需 Xcode 27.1 / Swift 6.4,README 明确 Xcode 26 无法编译
- main 分支可能领先于已发布版本,仓库中描述的功能未必已在你安装的版本中
- 新增 MCP 连接器、内置浏览器的 Touch ID passkey 等能力有文档记录的边界与限制(例如 stock CEF 构建下的 passkey 默认关闭)
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 明确说明不写入各 agent 自身配置、不复制凭据、连接器登录存于 Keychain、无分析上报,并给出卸载与回滚路径(Updates/Previous、Install Update 确认、Sparkle 签名校验),这些是加分项。但应用本身权限面很大:内置 Chromium、MCP 服务器、终端、Apple Events/摄像头/麦克风权限、以 root 运行的 lid helper,README 只描述机制而未给出最小权限论证,故 least_privilege 仅 1。依赖安全方面仅见 CEF 哈希校验与 CI 固定 action SHA,未见依赖清单或漏洞治理,记 1。外部效应(连接器、浏览器、手机中继)有描述但缺少逐项同意与影响说明,记 1。
README 与 CI 对构建/测试流程描述一致(swift build、test-fast.sh、Xcode 27.1),自洽性较好记 2。但依赖可用性要求 Xcode 27.1/Swift 6.4、Apple silicon、macOS 15+,且 CEF 需另行下载,门槛高且未提供降级方案,记 1。失败信息仅在 relay 测试中体现错误码映射,应用侧错误处理未见证据,记 1。
目标受众(多 agent 并用的 macOS 开发者)与场景描述清晰,能力边界(不替代 agent、不代理账号、会话留在原存储)说明到位,记 2。触发精度方面,定时任务、会话间互读互启、浏览器自动驱动等触发条件缺少精确约束说明,记 1。环境适配仅限 Apple silicon + macOS 15+,无 Intel 或跨平台支持,记 1。
README 结构完整,含安装、更新、卸载、隐私、开发、发布等章节,信息架构记 2;安装说明含 DMG 与 Homebrew 两种方式,记 2;MIT 许可证文件完整,记 2。命名稳定性方面存在多处路径/标识(~/.yardlet、com.zzunkie.yardlet、旧隔离 Codex home 保留),迁移语义复杂且未声明稳定性承诺,记 1。示例与 FAQ 仅有截图和零散说明,无 FAQ,记 1。已知限制分散在正文(如个人 agent 限制、iCloud 钥匙串不支持),未集中列出,记 1。版本化仅靠 Releases 与 CFBundleVersion,无 CHANGELOG 文件,记 1。维护责任方面 SECURITY.md 自述由单人维护、仅最新版受支持,发布者身份未经验证,记 1。
输出可用性方面,应用提供 diff、PR 检查、终端、文件面板等实用产物,记 2。边际价值在于统一多 agent 工作台与账号配额管理,相对直接用 CLI 有明确增益,记 2。成本收益方面,需 macOS 15+ Apple silicon、Xcode 27.1 构建、CEF 下载、签名公证流程,对普通用户成本偏高,记 1。
README 中大量声明(如 Touch ID 验证日期 2026-10-23、性能基准、公证流程)可追溯到脚本与文档引用,但多数为自述,缺少独立佐证,claim_traceability 记 1。跨源佐证方面,CI 配置与 README 测试描述一致、relay 测试与 README 中继描述一致,但核心应用行为无测试证据展示,记 1。事实与推断分离方面,README 混用了已实现功能与路线图/未来计划(如 roadmap 链接),未明确区分,记 1。
- 应用权限面较大(内置 Chromium、MCP 服务器、终端、Apple Events/摄像头/麦克风、以 root 运行的 lid helper),README 未提供最小权限论证,部署前应逐项审查 entitlements 与 helper 的 SpawnConstraint。
- 构建依赖 Xcode 27.1/Swift 6.4 与 Apple silicon,且 CEF 需单独下载并校验哈希,普通用户难以从源码复现。
- 发布者身份未经验证,更新依赖 yardlet.app 的 appcast 与内置 Sparkle 公钥,应确认签名与 Developer ID 后再信任自动更新。
- 手机中继经 relay.yardlet.app 传输端到端加密消息,虽声明不可读,但中继代码与部署一致性无法静态确认。
- README 混用已实现功能与路线图计划,且已知限制分散,评估实际能力时需以 Releases 与代码为准。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.11.8 Yardlet 0.11.8
发布说明摘录
Yardlet 0.11.8 Mail - A mailbox shows the inboxes of your connected Gmail, Outlook Mail and IMAP accounts beside tasks and personal agents. It is off by default: turn it on in Settings › General › Mailbox, and Mail appears next to Tasks and Personal agents. - Read threads in place, write, reply and forward. What you write is saved to the account's own Drafts, and Send waits five seconds, during which Undo takes the message back. - Mail stays on the service. The mailbox reads it when it is shown and keeps it in memory only. …在 GitHub 查看 ↗ -
v0.11.7 Yardlet 0.11.7
发布说明摘录
Yardlet 0.11.7 Security - Keys and tokens that a web page shows, such as an API key on a service's settings page, are hidden from what the browser tools return to agents. Settings › General › Hide keys and tokens turns this off. - Reading files from a paired phone is more limited. Google - Yardlet's own Google app now signs in for Gmail, Calendar and Drive only. Google Analytics and Google Ads need a Google OAuth app of your own: Settings › Connectors › Google › Use a Google OAuth app of your own… …在 GitHub 查看 ↗ -
v0.11.6 Yardlet 0.11.6
发布说明摘录
Yardlet 0.11.6 Yardlet starts on macOS 15 again. Since 0.11.0 it quit as soon as it opened there. If you are on macOS 15, download this version: the earlier ones cannot open to update themselves. New - The browser panel saves and fills your addresses and payment cards. A card fills only after Touch ID, never with its security code, and never for an agent. - Sign-ins that ask for the username first keep it for the password step, and other fields such as an AWS account ID are saved with the item. The save bar closes with an X and says Save when it adds a username. …在 GitHub 查看 ↗