otiin 下载

选中文字,按 ⌘E,答案就在光标旁边。

otiin 常驻在 macOS 菜单栏里,不占 Dock,不弹通知。你在读什么、写什么都不用停下来—— 划选一段文字,按下快捷键,解释、总结、翻译、润色直接出现在原地。

v1.0  |  macOS 15.0 或更新  |  免费开源,MIT 协议

你正在读的任意一篇文档

分布式系统里的共识问题,指的是一组节点在存在故障和网络延迟的前提下, 就某个值达成一致的过程。

Paxos 通过两阶段的提案与承诺机制,保证即使部分节点失联, 已经被多数派接受的值也不会被推翻。

工程实现上更常见的是 Raft,它把同样的保证拆成了领导者选举、日志复制 和安全性三个更容易讲清楚的子问题。

三个动作,两秒钟

不用打开新窗口,不用复制粘贴来回切,整件事发生在你原本就在的那个页面上。

选中

划选一段文字

网页、邮件、代码、PDF、聊天记录都行。任何能选中文字的地方都能用。

⌘E

按下快捷键

浮窗出现在鼠标旁边,当前应用不会失焦,你也不需要切窗口。

回车

挑一个动作

五个预设提示词点一下就走,也可以直接敲你自己的指令。回答边生成边渲染。

为「不打断」而做的细节

功能不多,但每一个都是为了让你尽快回到原本在做的事情上。

五个预设,也可以自己写

解释、总结、翻译、润色、续写开箱即用。自定义提示词随便加,想让它干什么都行。

Markdown 边生成边渲染

标题、列表、引用、代码块在流式输出过程中实时成型。没闭合的标记会自动退回纯文本,不会闪成一团。

代码块单独复制

每个代码块右上角都有自己的复制按钮,拿到的是干净的代码,不带围栏标记。

钉住不放

把结果钉在屏幕上,切到别的应用它也不会消失,始终浮在普通窗口上方。

多个窗口互不干扰

可以同时开好几个结果窗口,自动错开排列,每个窗口独立管自己的请求和状态。

记住你调过的尺寸

回复窗口可以随意拖拽缩放,最小 380×360。调过一次就记住,重启也还在。

用你自己的 API

任何兼容 OpenAI 接口的服务都能接。填地址、填 Key、刷新模型列表,三步搞定。没有账号体系,也没有中间商。

服务Base URL
OpenAIhttps://api.openai.com/v1
OpenRouterhttps://openrouter.ai/api/v1
DeepSeekhttps://api.deepseek.com
Azure OpenAI你的专属部署地址
Ollama(本地)http://localhost:11434/v1
LM Studio(本地)http://localhost:1234/v1

它要什么权限,你的文字去了哪

这类工具最该讲清楚的两件事,写在这里,不藏在 FAQ 里。

为什么需要辅助功能权限

  • macOS 不允许一个应用直接读另一个应用里选中的文字
  • otiin 的做法是模拟一次 ⌘C,然后读剪贴板
  • 读完立刻把你原来的剪贴板内容写回去
  • 权限只用于这一件事,不监听按键,不截屏,不读窗口内容

不会发生的事

  • 不收集任何使用数据或遥测
  • 没有 otiin 自己的服务器,你的文字只发往你填的那个地址
  • API Key 存在 macOS 钥匙串里,日志和报错都不会打印完整 Key
  • AI 的回复内容不落盘,关掉窗口就没了

你可能会问

快捷键能改吗?

目前固定是 ⌘E。自定义快捷键在计划中。如果 ⌘E 和你常用的应用冲突,可以先在那个应用里改掉它的绑定。

支持哪些 Markdown 语法?

标题、粗体、斜体、删除线、有序与无序列表、引用、分隔线、行内代码、围栏代码块(带独立复制按钮)、Markdown 链接。表格、图片、数学公式和内嵌 HTML 暂不支持,会降级成可读的纯文本,不会显示成乱码。

为什么我的请求一直失败?

按顺序排查:Base URL 是否填对、API Key 是否还有额度、服务端是否提供 /chat/completions 接口、网络是否能直连该地址。如果你在用系统代理,otiin 会主动绕过它——因为部分代理会把 Authorization 请求头剥掉,导致鉴权失败。

钉住的窗口位置会保存吗?

不会。固定状态和窗口位置只在当前这次会话里有效,关掉浮窗或重启应用就重置了。窗口的尺寸会被记住。

可以完全离线用吗?

可以。把 Base URL 指向本机跑的 Ollama 或 LM Studio,文字就不会离开你的电脑。

为什么上不了 Mac App Store?

读取选中文字需要模拟键盘事件,这在 App Store 要求的沙盒环境里被禁止。所以 otiin 只能通过 GitHub Releases 分发。

装上它,然后忘掉它。

直到你下一次遇到一句看不懂的话。

第一次打开提示「无法验证开发者」

这个版本没有经过 Apple 公证,所以 Gatekeeper 会拦一下。 把应用拖进「应用程序」文件夹后,在终端里执行下面这行,然后正常双击打开即可:

xattr -dr com.apple.quarantine /Applications/otiin.app