这个项目能做什么
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)。
评论
0 评分人数达到10人后显示
登录后参与讨论。