这个项目能做什么

Clicky 是一款 AI 驱动的教学助手,作为光标旁的伙伴常驻 macOS。它能观察屏幕、参与对话,并视觉指向特定界面元素。本仓库包含 Clicky 的开源版本,采用 MIT 许可证发布,允许开发者修改、定制或在此基础上构建。 ## 功能 - **屏幕感知**:使用 ScreenCaptureKit 捕获和分析屏幕内容。 - **语音交互**:按键通话语音捕获,通过 AssemblyAI 实时转写。 - **对话式 AI**:将转写文本和截图流式传输至 Claude,生成上下文感知响应。 - **文本转语音**:通过 ElevenLabs TTS 播放响应。 - **光标指向**:Claude 可嵌入特殊标签,在多显示器环境中将光标移至特定 UI 元素。 - **菜单栏应用**:以轻量菜单栏应用运行,包含控制面板和全屏覆盖窗口。 ## 架构 - **Swift 应用**(`leanring-buddy/`):包含主要应用逻辑,包括中央状态机、面板 UI、Claude 流式客户端、ElevenLabs TTS 客户端、覆盖窗口和 AssemblyAI 转写提供程序。 - **Cloudflare Worker**(`worker/`):一个小型代理,安全持有 API 密钥,并将请求路由至 `/chat`、`/tts` 和 `/transcribe-token` 端点。 - **CLAUDE.md**:面向 AI 代理的全面架构文档,帮助理解代码库。 ## 设置 ### 前置条件 - macOS 14.2+(用于 ScreenCaptureKit) - Xcode 15+ - Node.js 18+(用于 Cloudflare Worker) - Cloudflare 账户(免费版即可) - Anthropic、AssemblyAI 和 ElevenLabs 的 API 密钥 ### 使用 Claude Code 快速开始 1. 安装并运行 Claude Code。 2. 粘贴提供的提示词,克隆仓库、阅读 `CLAUDE.md`,并获取设置指导。 ### 手动设置 1. **设置 Cloudflare Worker**:进入 `worker/`,运行 `npm install`,然后使用 `npx wrangler secret put` 将 API 密钥添加为机密。在 `wrangler.toml` 中设置 ElevenLabs 语音 ID。使用 `npx wrangler deploy` 部署。 2. **本地运行 Worker**(可选):使用 `npx wrangler dev`,并创建包含密钥的 `.dev.vars` 文件。将 Swift 代码中的代理 URL 更新为 `http://localhost:8787`。 3. **更新代理 URL**:在 Swift 代码中搜索 `clicky-proxy`,替换为你的 Worker URL。 4. **在 Xcode 中打开**:打开 `leanring-buddy.xcodeproj`,选择 scheme,设置签名团队,按 Cmd+R 运行。 ### 所需权限 - 麦克风(用于按键通话) - 辅助功能(用于全局键盘快捷键) - 屏幕录制(用于截图) - 屏幕内容(用于 ScreenCaptureKit) ## 项目结构 ``` leanring-buddy/ # Swift 源码 CompanionManager.swift # 中央状态机 CompanionPanelView.swift # 菜单栏面板 UI ClaudeAPI.swift # Claude 流式客户端 ElevenLabsTTSClient.swift # 文本转语音播放 OverlayWindow.swift # 蓝色光标覆盖层 AssemblyAI*.swift # 实时转写 BuddyDictation*.swift # 按键通话管道 worker/ # Cloudflare Worker 代理 src/index.ts # 三个路由:/chat、/tts、/transcribe-token CLAUDE.md # 完整架构文档 ``` ## 贡献 欢迎提交 PR。若使用 Claude Code,可阅读 `CLAUDE.md` 理解代码库,协助功能开发或修复缺陷。反馈可发送至作者 X(@farzatv)。