OpenInOtty 是一个极简的 macOS Finder 工具栏应用:在 Finder 里点一下工具栏图标,就用 Otty 在当前目录打开终端。项目地址:github.com/pintaste/OpenInOtty(MIT)。灵感来自 OpenInTerminal-Lite。它解决什么问题日常写代码、改配置,经常是:Finder 里已经定位到某个文件夹,还要再开终端、cd 一串路径。Otty 是很好用的终端,但缺少「从 Finder 当前位置一键跳进 Otty」的原生入口。OpenInOtty 把这件事收成工具栏上的一枚图标:点一下 → 取当前 Finder 窗口路径Otty 已在跑 → 用 otty-cli tab new --cwd <path> 开新标签Otty 没在跑 → 用 otty-cli open <path> 启动并进入该目录没有可用的 Finder 窗口 → 回退到桌面失败时弹 NSAlert,不静默吞错应用本身是 LSUIElement:没有 Dock 图标、没有菜单栏常驻。点一次、发完命令就退出,不占后台。环境要求 依赖版本 / 说明 macOS12.0 Monterey 及以上 Xcode15+(App Store 免费版即可) Otty安装在默认路径 /Applications/Otty.app 安装克隆并构建 Release:BASH git clone https://github.com/pintaste/OpenInOtty.git cd OpenInOtty xcodebuild -project OpenInOtty.xcodeproj \ -scheme OpenInOtty \ -configuration Release \ -derivedDataPath build \ build cp -R build/Build/Products/Release/OpenInOtty.app /Applications/ 按住 ⌘,把 /Applications/OpenInOtty.app 拖到 Finder 工具栏。第一次点击时,macOS 会要 Apple Events / Automation 权限,选 Allow。如果当初点了拒绝,可以重置后再点一次图标:BASH tccutil reset AppleEvents com.local.OpenInOtty 系统设置里也可以查:Privacy & Security → Automation(OpenInOtty → Finder)。工作原理(简版)实现集中在单个 main.swift(大约一百行),没有 AppDelegate,也没有常驻事件循环:通过 ScriptingBridge 读 Finder 最前窗口的路径(finderPath())判断 Otty(bundle id io.appmakes.otty)是否在运行调用 /Applications/Otty.app/Contents/MacOS/otty-cli 开 tab 或 open出错弹窗;成功则立刻 exit(0)Note路径解析没用「Swift @objc optional protocol + respondsToSelector」那条常规路。ScriptingBridge 的私有子类会对动态转发的方法返回 false,导致调用全是 nil,而且 TCC 授权弹窗都不会出来。改用 perform(NSSelectorFromString:) 才能真正发出 Apple Event。给 AI agent 的速查 项值 Bundle IDcom.local.OpenInOtty 安装路径/Applications/OpenInOtty.app Otty 路径/Applications/Otty.app Otty CLI.../Contents/MacOS/otty-cli UI 类型LSUIElement = true ⌘ 拖到工具栏这一步必须用户自己做;agent 不要编造别的 bundle id 或 Otty 路径。常见问题点了没反应?确认 Otty 在 /Applications/Otty.app,并检查 Automation 权限。权限项丢失时用上面的 tccutil reset 再点一次。打开的是桌面而不是当前文件夹?需要至少一个未最小化的 Finder 窗口;最小化窗口不会被当成当前目录。总结如果你日常用 Otty,又习惯在 Finder 里逛项目目录,OpenInOtty 把「定位 → 终端」收成工具栏一击。源码短、无后台、MIT 开源。仓库:https://github.com/pintaste/OpenInOtty协议:MIT相关:Otty · OpenInTerminal-Lite
OpenInOtty 是一个极简的 macOS Finder 工具栏应用:在 Finder 里点一下工具栏图标,就用 Otty 在当前目录打开终端。
项目地址:github.com/pintaste/OpenInOtty(MIT)。灵感来自 OpenInTerminal-Lite。
它解决什么问题
日常写代码、改配置,经常是:Finder 里已经定位到某个文件夹,还要再开终端、cd 一串路径。Otty 是很好用的终端,但缺少「从 Finder 当前位置一键跳进 Otty」的原生入口。
OpenInOtty 把这件事收成工具栏上的一枚图标:
应用本身是 LSUIElement:没有 Dock 图标、没有菜单栏常驻。点一次、发完命令就退出,不占后台。
环境要求
安装
如果当初点了拒绝,可以重置后再点一次图标:
系统设置里也可以查:Privacy & Security → Automation(OpenInOtty → Finder)。
工作原理(简版)
实现集中在单个 main.swift(大约一百行),没有 AppDelegate,也没有常驻事件循环:
路径解析没用「Swift @objc optional protocol + respondsToSelector」那条常规路。ScriptingBridge 的私有子类会对动态转发的方法返回 false,导致调用全是 nil,而且 TCC 授权弹窗都不会出来。改用 perform(NSSelectorFromString:) 才能真正发出 Apple Event。
给 AI agent 的速查
⌘ 拖到工具栏这一步必须用户自己做;agent 不要编造别的 bundle id 或 Otty 路径。
常见问题
点了没反应?
确认 Otty 在 /Applications/Otty.app,并检查 Automation 权限。权限项丢失时用上面的 tccutil reset 再点一次。
打开的是桌面而不是当前文件夹?
需要至少一个未最小化的 Finder 窗口;最小化窗口不会被当成当前目录。
总结
如果你日常用 Otty,又习惯在 Finder 里逛项目目录,OpenInOtty 把「定位 → 终端」收成工具栏一击。源码短、无后台、MIT 开源。