把最常用的几个操作,放进 Finder 的右键菜单。
Clicklet 是一个轻量的 macOS 右键增强工具。 Finder 的右键菜单一向简单,扩展它通常得靠第三方工具,而 Clicklet 想做更轻的那种:只收下新建文件、拷贝路径、在此处打开终端、压缩解压这些常用操作,并且只显示当前选中内容用得上的那些功能。它不内置任何压缩引擎,压缩软件可在系统自带工具与 Keka 之间选择,菜单里能压缩、解压哪些格式也由所选软件决定。这些功能不够用,自己写一个 shell 脚本放进脚本目录,它就是一个新的菜单项。
新建文件:在空白处右键,按模板创建文件。在文件夹里建好后会就地进入重命名;在桌面上则静默创建,图标直接出现在原位,想改名按一下回车。默认提供文本、Markdown、Word、Excel、PowerPoint、Pages、Numbers、Keynote、JSON、HTML 十种模板;CSS、JavaScript、Python、Shell、YAML、CSV、RTF 七种在设置里勾选即可使用。
拷贝路径:复制选中项的绝对路径,多选时每行一个;在空白处右键则复制当前文件夹的路径。
拷贝文件名:只在有选中项时出现,只复制文件名,不带路径。
在此处打开终端:在当前文件夹打开 Terminal;选中的是文件夹就在那个文件夹,选中的是文件则在其所在文件夹。
脚本:运行脚本目录里匹配当前选区的脚本,没有匹配项时整项不显示;一个可执行的 script.sh放进脚本目录就是一个菜单项。
压缩为 ZIP:用设置里选定的压缩软件打包,产物重名时自动追加序号。
压缩为 7Z:只在所选压缩软件支持 7z 时出现。
解压到当前文件夹:选中压缩包时就地解开,不新建文件夹。
解压到独立文件夹:解压到以压缩包命名的新文件夹,重名时同样自动追加序号。
此外,每个条目的启用开关与顺序都在设置里调整,改完立刻反映到 Finder;界面与右键菜单都支持简体中文和 English,切换后立即生效。
| 新建文件 | 脚本 | 解压 |
|---|---|---|
![]() |
![]() |
![]() |
前往 Releases 下载最新版,打开后把 Clicklet 拖进「应用程序」文件夹。需要 macOS 13 Ventura 或更高版本。首次启动会打开一个四页的引导,逐项告诉你还缺哪一项,并直接带你到对应的地方开启。之后随时可以从菜单栏图标的「帮助 → 设置引导…」再看一遍。
安装包未经 Apple 公证,macOS 会提示「无法验证开发者」。首次打开请右键点按 Clicklet → 打开,在弹窗里再点一次「打开」;或在「系统设置 → 隐私与安全性」里点「仍要打开」。也可以直接在终端执行
xattr -dr com.apple.quarantine /Applications/Clicklet.app。
权限列表:
| 项目 | 在哪里开启 |
|---|---|
| 访达扩展 | 系统设置 → 通用 → 登录项与扩展 → 文件提供程序 |
| 辅助功能 | 系统设置 → 隐私与安全性 → 辅助功能 |
| Keka 文件夹访问 | 仅用 7z 时需要,在 Keka → 设置 → 文件访问权限里开启 |
| 通知(可选) | 首次运行时的系统弹窗,用来反馈压缩、解压与脚本的结果 |
旧版 macOS 中,访达扩展在「隐私与安全性 → 扩展」下开启。拿不准缺哪一项时,从菜单栏图标进入「检查运行状态…」。
更新:下载新版本覆盖安装即可,当前版本不含自动更新。唯一的例外是从 RightKit 1.0.x 升到 1.1.0——那一版随改名换了 bundle id(com.dozecat.RightKit → com.dozecat.Clicklet),macOS 会把 Clicklet 当成另一个应用:新旧两版并存,偏好设置不会带过来,访达扩展要重新勾选一次,顺手把旧的 RightKit 取消掉。卸载:关掉访达扩展,把 Clicklet 拖进废纸篓;脚本与模板在 ~/Library/Application Support/Clicklet/,日志在 App Group 容器里:open ~/Library/Group\ Containers/6T9RSL7KL6.group.com.dozecat.Clicklet/Logs,需要时一并删除。
右键菜单里的「脚本」子菜单会列出匹配当前选区的脚本,点击即运行;没有匹配项时,整项不会出现。开箱自带两个:用 VS Code 打开 与 运行 Python 脚本。
想加自己的,把脚本包放进脚本目录即可(设置 → 脚本 → + 可以直接打开这个目录)——目录是唯一的事实来源,不需要在应用内导入。
~/Library/Application Support/Clicklet/Scripts/
└── 用 VS Code 打开/
├── script.sh # 入口,需 chmod +x
├── config.json # 元数据,可选
└── icon.png # 图标,可选
一个最小的 script.sh:
#!/bin/bash
# 选中的路径以参数传入,工作目录是右键所在的文件夹
for f in "$@"; do
echo "$f" >> "$CLICKLET_DIR/selected.txt"
doneconfig.json 决定它什么时候出现,常用的几个字段:
| 字段 | 取值 | 作用 |
|---|---|---|
name |
字符串 | 菜单里显示的名字 |
context |
selection / files / folders / background / all |
作用于选中项、文件、文件夹、空白处,还是全部 |
extensions |
如 ["py"] |
只对指定扩展名的选中项出现 |
confirm |
true |
执行前先弹确认 |
icon |
文件名 | 包内的图标文件 |
order |
数字 | 在子菜单中的排序 |
执行时:选中项以 $@ 传入,环境里有 CLICKLET_DIR(右键所在目录)与 CLICKLET_FILES(换行分隔的选中路径);单个脚本 300 秒超时;每次执行的日志在 ~/Library/Logs/Clicklet/Scripts/<脚本名>/。
PATH:脚本由 XPC 服务启动,继承的是 launchd 的最小环境,只有
/usr/bin:/bin:/usr/sbin:/sbin。要用 Homebrew 装的python3、node,请在脚本开头自己补上export PATH="/opt/homebrew/bin:$PATH"。
其余字段与内置脚本的播种规则见设计文档。
遇到问题或有想法,欢迎到 Issues 提出。附上 macOS 版本、Clicklet 版本和自检面板的结论,会快很多。
想自己编译,或调试访达扩展为什么不刷新,见构建指南。
GNU General Public License v3.0。Clicklet 是自由软件,任何再分发的衍生版本都必须同样以 GPL-3.0 开源。


