七个 Agent 在跑,
它告诉你该管哪一个。
Seven agents running.
It tells you which one needs you.
Claude Code、Codex、Cursor、OpenCode、Gemini CLI、TRAE、pi——一只桌宠看着全部七个,谁在干活、谁卡住等你、谁失败了,一眼分清。点一下「打开任务」,直接跳回那个会话所在的终端标签页,不用再一个个窗口翻。等待的时间顺手变成有边界的休息。 Claude Code, Codex, Cursor, OpenCode, Gemini CLI, TRAE, pi — one pet watches all seven and tells working from waiting-on-you from failed. Hit “Open task” and it jumps straight back to the terminal tab that session lives in, instead of you hunting through windows. The waiting turns into a bounded break on the way.
全部本地运行 · 无账户 · 无遥测 · 提示词与代码永不离开你的 Mac
精确跳回标签页依据 tty 设备名,Terminal.app 与 iTerm2 精确到标签页,tmux 里精确到面板,其他终端退化为激活应用;首次需要一次系统授权。
Runs fully local · No account · No telemetry · Prompts and code never leave your Mac
Tab-exact return uses the tty device name: precise in Terminal.app and iTerm2, pane-exact inside tmux, other terminals just get activated. One-time system permission on first use.
一只桌宠,看着你所有的 Agent One companion for every agent
Sleepwing 不做监控面板,也不做游戏化桌宠。它安静、温暖、克制——像 macOS 原生工具一样可信。 Sleepwing is not a monitoring dashboard or a gamified toy. It is quiet, warm, and restrained — as trustworthy as a native macOS utility.
统一的桌面伙伴One shared companion
无论连接多少个 Agent,桌面上只有一只伙伴。它有休息、工作、等待、庆祝等独立状态,支持三种尺寸、多显示器位置记忆和减弱动态。No matter how many agents you connect, there is exactly one companion — with distinct resting, working, attention, and celebration states, three sizes, per-display position restore, and Reduce Motion support.
需要你时叫你回来Recall when needed
Agent 等待授权或输入时,Sleepwing 通过桌宠气泡和可操作的系统通知召回你,一键返回对应任务。When an agent waits for permission or input, Sleepwing recalls you with a companion bubble and actionable system notifications — one click returns you to that task.
有边界的健康提醒Bounded health breaks
只有经验证的 Agent 工作时间才会变成休息机会:喝水、拉伸、远眺。并行任务只计一次,等待你时自动暂停,支持勿扰时段和 10 分钟稍后提醒。Only verified agent work time becomes break opportunities — hydrate, stretch, look away. Parallel work counts once, timing pauses while you are needed, with quiet hours and durable 10-minute snoozes.
隐私安全的任务收件箱Privacy-safe task inbox
菜单栏展示每个会话的运行时长、等待状态和返回操作——只基于脱敏的生命周期事件,不含任何提示词或代码。The menu bar shows each session's running time, attention state, and return action — built only on sanitized lifecycle events, never prompts or code.
本地统计Local statistics
今日与近七天的休息完成情况、找回的时间、完成任务数——全部保存在本机,不做排名,不制造焦虑。Daily and seven-day breaks completed, time reclaimed, and finished-task counts — all stored locally. No rankings, no pressure.
Pet Studio 自定义桌宠Pet Studio
内置两只官方角色;也可以用 Agent 技能 perch-pet 把你的角色创意做成 .perchpet 素材包,经校验后导入并实时预览。Two built-in characters, plus the perch-pet agent skill that turns your character ideas into validated .perchpet packages you can import and preview live.
三步开始,全程本地 Three steps, fully local
连接你的 AgentConnect your agents
在 Sleepwing 的「连接」页面一键安装官方生命周期钩子。安装可逆、可回滚,只改动 Sleepwing 自己拥有的条目,绝不覆盖你已有的配置。Install official lifecycle hooks with one click from Sleepwing's Integrations page. Installs are reversible, touch only Sleepwing-owned entries, and never overwrite your existing configuration.
Agent 干活,你休息Agents work, you rest
事件在进入 Sleepwing 之前先在本地脱敏:只保留平台名、不透明会话 ID、阶段、时间戳和一个不超过 60 字符的任务名。桌宠进入工作状态,健康计时开始。Events are sanitized locally before they reach Sleepwing: only provider, opaque session ID, phase, timestamp, and a task label capped at 60 characters. The companion starts working; break timing begins.
该你了,回来Your turn — come back
Agent 需要授权、完成任务或出错时,Sleepwing 用气泡和通知告诉你,并提供一键返回。庆祝很短,肯定很轻。When an agent needs permission, finishes, or fails, Sleepwing tells you with a bubble and a notification, plus a one-click return. Celebrations are brief; affirmation is light.
七个本地 Agent 平台 Seven local agent surfaces
全部基于各平台的官方本地钩子或插件机制。云端 Agent 与普通 ChatGPT 聊天不在支持范围内。 All built on each platform's official local hook or plugin mechanism. Cloud agents and ordinary ChatGPT conversations are out of scope.
| 平台Surface | Beta 支持Beta support | 边界说明Boundary |
|---|---|---|
| Claude Code | 本地生命周期钩子Local lifecycle hooks | 仅限本地会话Local sessions only |
| Cursor IDE / CLI | 本地 Agent 钩子Local agent hooks | 云端 Agent 不在支持范围Cloud agents remain out of scope |
| ChatGPT / Codex | 当前 Codex 生命周期钩子;旧版 notify 仅报告完成Current Codex lifecycle hooks; legacy notify is completion-only |
首次安装可能需要 /hooks 信任确认;普通聊天不是生命周期任务First install may require /hooks trust; ordinary chats are not lifecycle tasks |
| OpenCode | 官方本地插件生命周期事件Official local plugin lifecycle events | 连接后需重启 OpenCodeRestart OpenCode after connecting |
| Gemini CLI | 官方本地钩子Official local hooks | 事件在本地脱敏后才进入 SleepwingEvents are sanitized locally before reaching Sleepwing |
| TRAE IDE | 官方本地钩子Official local hooks | 支持国际版与国内版配置路径International and China config paths supported |
| pi coding agent | 官方本地扩展生命周期Official local extension lifecycle | 仅限本地会话Local sessions only |
如果某个平台不提供某种生命周期状态,Sleepwing 会如实说明,绝不模拟不存在的状态,也不会把内容为空的连通性检查当作真实活动展示。 If a provider does not expose a lifecycle state, Sleepwing says so. It never simulates unavailable states or presents a content-free connectivity check as real activity.
从安装到卸载的完整指南 From install to uninstall
快速开始Quick start
下载并打开Download and open
下载 ZIP,核对下方的 SHA-256 校验值,解压后把 Sleepwing.app 拖入「应用程序」并打开。正式发布版已经过 Apple 公证,无需绕过任何 Gatekeeper 提示。Download the ZIP, verify the SHA-256 below, unzip, drag Sleepwing.app into Applications, and open it. Release builds are Apple-notarized — no Gatekeeper workarounds needed.
完成引导Finish onboarding
首次启动会引导你选择角色、预览桌宠状态。可以按需开启「登录时启动」,Sleepwing 会指引你完成 macOS 的授权确认。First launch walks you through character selection and live state previews. Optionally enable Launch at Login — Sleepwing guides you through the macOS approval state.
连接 AgentConnect agents
打开菜单栏 Sleepwing →「连接」,为你使用的 Agent 点击「安装」。任何配置改动只在你按下安装后发生,并且随时可以在同一页面移除。Open menu bar Sleepwing → Integrations and press Install for the agents you use. Configuration changes happen only after you press Install, and are removable from the same page.
授权通知Allow notifications
允许通知,以便 Agent 需要你时收到可操作的横幅提醒。Sleepwing 会区分「已授权」与「横幅是否真正可见」,并在设置里给出修复指引。Allow notifications so you get actionable banners when an agent needs you. Sleepwing distinguishes authorization from banner visibility and offers fix-it guidance in Settings.
各平台接入说明Per-platform notes
以下操作都可以在 Sleepwing 的「连接」页面一键完成,这里说明各平台的机制与注意事项。 Everything below is one click on Sleepwing's Integrations page; these notes explain each platform's mechanism and caveats.
Claude Code
Sleepwing 将命令钩子合并进 ~/.claude/settings.json,覆盖 UserPromptSubmit、PreToolUse、PermissionRequest、PostToolUse、Notification、Stop、StopFailure 和 SessionEnd 事件。你已有的其他钩子会被完整保留。Sleepwing merges command hooks into ~/.claude/settings.json covering UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, Notification, Stop, StopFailure, and SessionEnd. Your existing hooks are fully preserved.
通知事件只响应权限请求、空闲等待和补充信息弹窗;失败不会被误报为完成。Notification events respond only to permission prompts, idle prompts, and elicitation dialogs; a failure is never misreported as completion.
Cursor IDE / CLI
Sleepwing 将钩子写入 ~/.cursor/hooks.json,监听 beforeSubmitPrompt、preToolUse、postToolUse、afterAgentResponse、stop 和 sessionEnd,并保留你已有的钩子命令。Sleepwing writes hooks into ~/.cursor/hooks.json for beforeSubmitPrompt, preToolUse, postToolUse, afterAgentResponse, stop, and sessionEnd, preserving your existing hook commands.
桌面版已完成端到端验证;Cursor CLI 与云端 Agent 的钩子覆盖随版本变化,云端 Agent 不在支持范围。The desktop app is verified end to end; Cursor CLI hook coverage varies across releases, and cloud agents are out of scope.
ChatGPT 桌面版 / Codex CLI / IDEChatGPT desktop / Codex CLI / IDE
Sleepwing 安装当前的 Codex 生命周期钩子(SessionStart、UserPromptSubmit、PreToolUse、PermissionRequest、PostToolUse、Stop、SessionEnd)。旧版顶层 notify 仅作为「完成时通知」的兼容路径:如果你已有通知器,Sleepwing 会用包装器串联它,移除时原样恢复。Sleepwing installs current Codex lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, Stop, SessionEnd). The legacy top-level notify remains a completion-only compatibility path: an existing notifier is chained through a wrapper and restored on removal.
首次安装后可能需要在 Codex 中执行 /hooks 完成信任确认。Stop 只是轮次边界——Sleepwing 会等待 5 秒安静窗口再展示完成,任何续接的工作会立即取消待展示的完成状态。普通 ChatGPT 聊天没有任务生命周期,不会出现在 Sleepwing 中。After first install you may need to run /hooks in Codex to confirm trust. Stop is only a turn boundary — Sleepwing waits for a five-second quiet window before showing completion, and any resumed work cancels it immediately. Ordinary ChatGPT chats have no task lifecycle and never appear in Sleepwing.
OpenCode
Sleepwing 在 ~/.config/opencode/plugins/perch.ts 写入一个带所有权标记的本地插件,监听 session.status、session.idle、permission.asked 等官方事件。连接后请重启 OpenCode。Sleepwing writes an ownership-marked local plugin to ~/.config/opencode/plugins/perch.ts, listening to official events like session.status, session.idle, and permission.asked. Restart OpenCode after connecting.
Sleepwing 不会覆盖不属于它的同名文件,移除时也只删除带 Sleepwing 所有权标记的文件。「本地连接通过」代表链路可用;「已收到真实状态」只有在真实事件到达后才会显示。Sleepwing never overwrites an unrelated file of the same name, and removal deletes only the ownership-marked file. "Local connection passed" confirms the relay; "Real state received" appears only after a genuine event arrives.
Gemini CLI
Sleepwing 将钩子合并进 ~/.gemini/settings.json(SessionStart、BeforeAgent、BeforeTool、AfterTool、Notification、AfterAgent、SessionEnd),保留你已有的设置。Sleepwing merges hooks into ~/.gemini/settings.json (SessionStart, BeforeAgent, BeforeTool, AfterTool, Notification, AfterAgent, SessionEnd), preserving existing settings.
Gemini 的钩子载荷可能包含提示词与工具输入,Sleepwing 的本地中继在传输前会全部丢弃,只保留平台、会话标识、阶段和时间戳。Gemini hook payloads can contain prompts and tool inputs; Sleepwing's local relay discards all of it before transport, keeping only provider, session identifier, phase, and timestamp.
TRAE IDE
同时支持国际版 ~/.trae/hooks.json 和国内版 ~/.trae-cn/hooks.json:如果 ~/.trae-cn 已存在则优先使用国内路径。移除时只清理 Sleepwing 自己的命令条目。Both official global locations are supported — ~/.trae/hooks.json and ~/.trae-cn/hooks.json; the China path is chosen when ~/.trae-cn already exists. Removal touches only Sleepwing-owned command entries.
pi coding agent
通过 pi 的官方本地扩展生命周期接入,同样只传输脱敏后的生命周期事件,安装与移除均可逆。Connected through pi's official local extension lifecycle. Only sanitized lifecycle events are relayed, and install/removal are reversible.
导入自定义桌宠Import a custom pet
用 Pet Studio 制作并导入 .perchpetCreate and import a .perchpet with Pet Studio
- 打开 Sleepwing → Pet Studio,一键安装 App 自带的
perch-petAgent 技能;只有用户环境中已安装hatch-pet时才会复用它。Open Sleepwing → Pet Studio and install the app-bundledperch-petagent skill; it reuseshatch-petonly when that optional skill is already installed. - 在你的编程 Agent 里描述角色创意或提供角色图,技能会产出完整的
.perchpet素材包。Describe your character idea or provide character art to your coding agent; the skill produces a complete.perchpetpackage. - 回到 Pet Studio 导入。Sleepwing 会校验大小、路径、清单与素材,拒绝符号链接,然后用真实的待机动画实时预览。Import it back in Pet Studio. Sleepwing validates size, paths, manifest, and assets, rejects symbolic links, and previews the real idle motion live.
导入的素材包始终保留在本机。Imported packages always stay on your Mac.
卸载Uninstall
完整移除 SleepwingRemove Sleepwing completely
Sleepwing 不安装特权助手或内核扩展。Sleepwing installs no privileged helper and no kernel extension.
- 打开 Sleepwing →「连接」,移除每一个已安装的 Agent 集成,让 Sleepwing 恢复它拥有的钩子或插件条目。Open Sleepwing → Integrations and remove every installed agent integration so Sleepwing restores only the hook or plugin entries it owns.
- 在 Sleepwing 中关闭「登录时启动」,然后退出应用。Turn off Launch at Login in Sleepwing, then quit the app.
- 把 Sleepwing.app 移到废纸篓。Move Sleepwing.app to the Trash.
- 如需清除本地数据,删除
~/Library/Application Support/Perch;如需清除偏好设置,运行defaults delete app.sleepwing.Sleepwing。To erase local data, remove~/Library/Application Support/Perch; to erase preferences, rundefaults delete app.sleepwing.Sleepwing.
集成安装期间生成的相邻备份文件可能会保留,删除前请先检查——它们在需要手动恢复配置时很有用。详见卸载指南。Adjacent configuration backups created during integration install may remain; inspect them before deleting — they help if a provider configuration ever needs manual restoration. See the removal guide.
脱敏先于传输,本地就是全部 Sanitize before transport. Local is everything.
Sleepwing 唯一的网络行为是监听本机回环地址(127.0.0.1),自身不发起任何对外网络请求——无账户、无广告、无跨应用跟踪、无产品分析、无遥测,也没有自动更新检查。可选的桌宠对话默认完全本地;只有你明确选择「我的 Agent」时,输入内容才交给你自己的 Agent 处理。诊断报告经白名单约束、一键生成并在访达中打开——它不可能包含提示词、代码、回复、工具输入、路径或标识符。 Sleepwing's only network surface is a loopback listener (127.0.0.1) — the app makes no outbound network requests. No account, no ads, no cross-app tracking, no analytics, no telemetry, no automatic update checks. The optional pet chat is fully local by default; only if you explicitly choose "My agent" is your typed input handed to your own agent. The one-click diagnostic report is allowlist-constrained and opens in Finder — it cannot contain prompts, code, responses, tool inputs, paths, or identifiers.
会进入 Sleepwing 的What enters Sleepwing
- 平台名称(如 claude、cursor)Provider name (e.g. claude, cursor)
- 不透明的会话标识An opaque session identifier
- 生命周期阶段与时间戳Lifecycle phase and timestamp
- 可选任务名(≤ 60 字符,随会话过期)Optional task label (≤ 60 chars, expires with the session)
- 经白名单校验的本地返回路径An allowlisted local resume route
永远不会进入的What never enters
- 提示词与助手回复Prompts and assistant responses
- 源代码与文件完整路径Source code and full file-system paths
- 工具输入与输出Tool inputs and outputs
- 错误正文Error bodies
- 附件名、UUID 类标识符与提示词包装Attachment names, UUID-like identifiers, and prompt wrappers
完整政策:隐私政策 · 安全政策 The complete policies: Privacy Policy · Security Policy
常见问题Frequently asked questions
我的代码或提示词会被上传吗?Is my code or prompt ever uploaded?
不会。Sleepwing 没有服务器端,不要求账户。钩子事件在进入 Sleepwing 之前先在本地脱敏,提示词、代码、工具输入输出和完整路径在传输前就被丢弃,桌宠与统计只依赖生命周期元数据。No. Sleepwing has no server side and requires no account. Hook events are sanitized locally before they reach Sleepwing — prompts, code, tool I/O, and full paths are discarded before transport. The companion and statistics rely only on lifecycle metadata.
支持 Intel Mac 吗?Does it support Intel Macs?
当前公开测试版仅支持 macOS 14 及以上的 Apple Silicon Mac。在通用构建通过同样的验收测试之前,我们不声称兼容 Intel。The current public beta targets macOS 14 or later on Apple Silicon only. Intel compatibility is not claimed until a universal build passes the same acceptance matrix.
会拖慢我的 Agent 吗?Will it slow down my agents?
钩子投递是尽力而为的:即使 Sleepwing 没有运行,钩子也会立刻静默返回,绝不阻塞或影响宿主 Agent。Hook delivery is best-effort: even when Sleepwing is not running, hooks return silently and immediately. They never block or fail the host agent.
能同时显示多只桌宠吗?Can I show multiple pets at once?
不能,这是有意的设计。无论连接多少个 Agent,桌面上始终只有一只伙伴代表全部状态——精确的分任务状态在菜单栏的任务收件箱里。No — by design. However many agents you connect, one companion represents the aggregate state. Exact per-task states live in the menu bar task inbox.
健康提醒会不会很吵?Will the health reminders nag me?
不会。提醒只在经验证的 Agent 工作时间达到阈值后出现,有每小时上限、勿扰时段和 10 分钟稍后提醒;Agent 等待你时提醒会让位。没有排名、没有连续打卡、不奖励屏幕时间。No. Reminders appear only after verified agent work time crosses a threshold, with an hourly cap, quiet hours, and 10-minute snoozes; attention states take priority. No rankings, no streaks, no rewarding screen time.
如何反馈问题或报告安全漏洞?How do I give feedback or report a vulnerability?
一般问题与建议请提交 GitHub Issues。安全漏洞请使用仓库的私密安全通告渠道,不要在公开 Issue 中包含令牌、私有提示词或个人数据。For general feedback, open a GitHub Issue. For vulnerabilities, use the repository's private security advisory — never include tokens, private prompts, or personal data in a public issue.
获取 Sleepwing 公开测试版Get the Sleepwing public beta
或用 Homebrew:Or via Homebrew: brew install --cask lttxzmj/tap/sleepwing
官方安装包仅通过上方的 GitHub Releases 发布;其他站点提供的下载均非官方渠道。 Official builds are published only via GitHub Releases above; downloads from any other site are not official.
Beta 已知限制Known beta limitations
- 仅观察本地 Agent 会话的生命周期事件;云端 Agent 与远程会话不在支持范围。Only local agent sessions' lifecycle events are observed; cloud agents and remote sessions are out of scope.
- 如果某平台不提供某种生命周期状态(例如部分平台缺少细分的等待状态),Sleepwing 会如实说明,而不是模拟。Where a provider lacks a lifecycle state (for example, fine-grained attention on some surfaces), Sleepwing says so rather than simulating it.
- 普通 ChatGPT 聊天没有 Codex 任务生命周期,不会出现在 Sleepwing 中。Ordinary ChatGPT conversations have no Codex task lifecycle and never appear in Sleepwing.
- 仅支持 Apple Silicon;Intel 兼容尚未声明。Apple Silicon only; Intel compatibility is not yet claimed.