摘要: 每天在浏览器翻标签页找 AI 47 次,在终端 cd 路径启动 Claude Code 37 次------这些重复操作累积起来消耗大量注意力。本文介绍如何用 Swift + AppKit + AppleScript 实现一个 macOS 菜单栏工具,通过全局快捷键 ⌥Space 一键发送消息到任意 AI,附完整技术方案。
背景
昨天数了一下自己的操作:浏览器里找 AI 标签页 47 次,终端里 cd 到项目路径 37 次。每次只花几秒,但一天下来就是 84 次注意力中断。
痛点一:Web AI 切换效率低。 订阅了 ChatGPT、Gemini、Monica 等多个 AI 产品,每次使用都需要切到 Chrome 翻标签页。工作场景分散在 IDE、终端、文档等应用中,频繁切换浏览器打断工作流。
痛点二:Claude Code 启动流程繁琐。 Claude Code 是目前最强的 AI 编程助手,但每次启动都是「打开终端 → cd 到项目路径 → 输入 claude」。项目多了路径记不住,每天 cd 几十次。
这两个操作单次耗时不长,但日积月累消耗大量注意力。
解决方案
GroAsk 的核心思路:把所有 AI 的启动路径缩短到一个快捷键。
功能一览
| 功能 | 说明 |
|---|---|
| ⌥Space 全局唤起 | 在任何应用中按快捷键弹出输入框 |
| 多 AI 统一入口 | Tab 键切换 ChatGPT / Claude / Gemini / DeepSeek 等 |
| 划词即问 | 选中文本按快捷键,自动填入并发送给 AI |
| Claude Code 一键启动 | 图形化选择项目目录,自动在终端打开 |
| 本地桥接 | AppleScript 操控本地浏览器和终端,无数据上传 |
技术实现
技术栈: Swift + 纯 AppKit(非 Electron)
Web AI 通道: AppleScript 异步队列定位 / 打开 Chrome 标签页 → 注入 JavaScript 脚本填入文本 → 模拟发送操作。每个 AI 网站的注入脚本单独维护,适配各站 DOM 结构。注入脚本支持服务端热更新。
CLI 通道: 检测本地终端环境(Terminal.app / iTerm2),自动拼接 cd + claude 命令执行。支持终端别名自动补全。
隐私设计: 不接触任何对话内容,消息通过 AppleScript 直接交给用户本地浏览器或终端处理。
开发过程
两周完成,一人开发,Claude Code 辅助。从 Apple 开发者注册到前后端部署全部独立完成。Claude Code 生成了约 70% 的代码,我负责架构设计和用户体验。
适用场景
- 每天使用多个 AI 工具,需要高频切换的开发者
- Claude Code 用户,不想每次手动 cd 到项目路径
- 想体验 Claude Code 但被命令行门槛挡住的用户
目前完全免费,macOS 专属。
免费下载:groask.com/zh/
AppleScript 操控浏览器这块坑不少,有做类似方案的朋友欢迎评论区交流。