Clippy的复仇📎
一个桌面原生AI代理,将标志性的Microsoft Office Assistant复活为主动的代理编码伴侣。与其被动的前身不同,此Clippy通过模型上下文协议(MCP)拥有真正的代理权,使其能够直接连接到您的文件系统、终端和IDE。
特性
- 始终在顶部覆盖 -透明、无框架的Clippy,漂浮在桌面上
- 主动干预 -自动检测构建失败和linter错误
- MCP集成 -通过安全的MCP服务器读取/写入文件并执行命令
- 个性模式 -从实习生模式、被动攻击模式或末日模式中选择
- VS代码扩展 -监控终端输出和诊断
- 安全控制 -执行命令或修改文件前需要批准
先决条件
- Node.js >=18.x
- npm >=9.x
- VS Code (对于扩展)
项目结构
clippys-revenge/
├── src/
│ ├── main/ # Electron main process
│ │ ├── animation/ # Animation state management
│ │ ├── chat/ # Chat service and message store
│ │ ├── intervention/ # Proactive intervention logic
│ │ ├── ipc/ # IPC handlers
│ │ ├── kiro/ # Kiro hook system (WebSocket server)
│ │ ├── llm/ # LLM client (Anthropic)
│ │ ├── mcp/ # MCP client manager
│ │ ├── persistence/ # SQLite database layer
│ │ ├── personality/ # Personality engine
│ │ ├── safety/ # Safety controls
│ │ └── window/ # Window manager
│ ├── renderer/ # React frontend
│ └── shared/ # Shared types
├── vscode-extension/ # VS Code extension for event detection
└── tests/ # Test suites快速开始
1.安装依赖项
# Install main app dependencies
npm install
# Install VS Code extension dependencies
cd vscode-extension
npm install
cd ..2.运行开发模式
启动Electron应用程序:
npm run dev这将启动启用热重新加载的Electron应用程序。该应用程序将:
- 使用Clippy打开透明覆盖窗口
- 在端口9876上启动WebSocket服务器,用于VS代码扩展通信
- 初始化MCP客户端管理器
构建并运行VS Code扩展:
cd vscode-extension
npm run compile然后在VS代码中:
- 打开
vscode-extension文件夹 - 按
F5启动扩展开发主机 - 该扩展将自动连接到Clippy桌面客户端
3.运行测试
# Run all tests once
npm test
# Run tests in watch mode
npm run test:watch配置
LLM提供者选项
Clippy支持多个LLM提供程序。它会自动检测要使用哪一个:
选项1:Ollama(免费,本地)-默认
不需要API密钥!在您的计算机上完全本地运行。
- 安装Ollama:https://ollama.ai
- 启动服务器:
ollama serve - 拉一个模型:
ollama pull llama3.2 - 运行Clippy:
npm run dev
支持的型号: llama3.2, mistral, codellama, phi3等等。
选项2:无烟煤克劳德(付费API)
为了获得最佳质量的回复,请使用Claude:
export ANTHROPIC_API_KEY=your-api-key-here
npm run dev环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
ANTHROPIC_API_KEY | Anthropic API密钥(启用Claude) | - |
ANTHROPIC_MODEL | 要使用的Claude模型 | claude-sonnet-4-20250514 |
OLLAMA_MODEL | 使用Olama模型 | llama3.2 |
OLLAMA_ENDPOINT | Ollama服务器URL | http://localhost:11434 |
KIRO_WS_PORT | 用于VS代码扩展的WebSocket端口 | 9876 |
VS代码扩展设置
该扩展公开了这些设置:
| 设置 | 默认值 | 说明 |
|---|---|---|
clippy-kiro.websocketPort | 9876 | 桌面客户端的WebSocket端口 |
clippy-kiro.autoConnect | true | 启动时自动连接 |
clippy-kiro.terminalOutputLines | 50 | 失败时要捕捉的行数 |
开发命令
| 命令 | 描述 |
|---|---|
npm run dev | 在开发模式下通过热重新加载启动Electron应用程序 |
npm run build | 构建用于生产的Electron应用程序 |
npm run preview | 预览生产版本 |
npm test | 运行测试套件一次 |
npm run test:watch | 在监视模式下运行测试 |
VS代码扩展命令
cd vscode-extension
npm run compile # Compile TypeScript
npm run watch # Watch mode compilation
npm run lint # Run ESLint
npm test # Run extension tests架构概述
┌─────────────────────────────────────────────────────────────┐
│ VS Code Extension │
│ ┌─────────────────┐ ┌──────────────────────────────────┐ │
│ │ Terminal Detector│ │ Diagnostic Detector │ │
│ └────────┬────────┘ └───────────────┬──────────────────┘ │
│ │ │ │
│ └───────────┬───────────────┘ │
│ ▼ │
│ WebSocket Client │
└───────────────────────┬─────────────────────────────────────┘
│ ws://localhost:9876
▼
┌─────────────────────────────────────────────────────────────┐
│ Clippy Desktop Client (Electron) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Kiro Hook Server ││
│ │ (WebSocket Server) ││
│ └────────────────────────┬────────────────────────────────┘│
│ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Intervention │ │ Personality │ │ Safety │ │
│ │ Manager │ │ Engine │ │ Controller │ │
│ └──────┬───────┘ └──────┬───────┘ └────────┬─────────┘ │
│ │ │ │ │
│ └─────────────────┼────────────────────┘ │
│ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ LLM Client │ │ MCP Client │ │ Persistence │ │
│ │ (Anthropic) │ │ Manager │ │ Layer │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Renderer (React + Lottie) ││
│ │ ┌─────────┐ ┌──────────────┐ ┌────────────────────┐ ││
│ │ │ Clippy │ │ Speech Bubble│ │ Action Approval │ ││
│ │ │ Overlay │ │ │ │ │ ││
│ │ └─────────┘ └──────────────┘ └────────────────────┘ ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘故障排除
Electron应用程序无法启动
# Rebuild native dependencies
npm run postinstallVS代码扩展未连接
- 确保Electron应用程序首先运行
- 检查WebSocket端口是否匹配(默认值:9876)
- 跑
Clippy: Show Connection Status从VS代码命令面板
测试失败
# Clear any cached builds
rm -rf dist
npm run build
npm test许可证
MIT© Kiro系统
