AI 驱动的跨平台全能自动化助手。像钢铁侠的 Jarvis 一样,能看到你的屏幕,操控你的电脑,帮你完成各种任务。
个人项目,持续开发中。欢迎 Star ⭐
- 浏览器自动化 - 自动打开网页、填写表单、点击按钮、提取数据
- 桌面控制 - 操控本地应用(微信、QQ、记事本等),模拟键盘鼠标
- 屏幕理解 - 截图分析,理解界面内容,精确定位元素
- 命令执行 - 运行系统命令,管理文件
- 定时任务 - 设置定时任务,自动执行
- 记忆系统 - 记住你的偏好和习惯,越用越懂你
- Web UI - 现代化界面,支持移动端
# 克隆项目
git clone https://github.com/N0tsLabs/NutBot.git
cd NutBot
# 安装依赖
yarn install
# 启动服务
yarn dev打开 http://localhost:18800 即可使用。
首次运行需要配置 AI Provider(支持 OpenAI 兼容接口):
- 打开设置页面
- 添加 Provider(填入 API 地址和 Key)
- 选择默认模型
配置文件位于 ~/.nutbot/config.json。
在 config.json 的 mcp.servers 中配置 MCP 服务端,NutBot 会连接并自动注册其工具(以 mcp_<服务名>_<工具名> 形式供 Agent 调用)。
"mcp": {
"enabled": true,
"servers": [
{ "name": "filesystem", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed"] },
{ "name": "web", "url": "https://your-mcp-server.com/sse" }
]
}- stdio:
command+args(可选env) - HTTP/SSE:
url
在 config.json 的 skills.directory(默认 ./skills)下放置 .md 或 .json 技能文件,启动时自动加载并注入到 Agent 的 system prompt。
.md:文件名作为技能名,内容作为 prompt 片段.json:{ "name", "description?", "prompt" }或数组
config.json 的 agent 支持:defaultModel、systemPrompt、maxIterations、timeout、debugMode、temperature、maxTokens。
也可通过 API GET/PUT /api/agent 读写。
"打开B站搜索'影视飓风',告诉我他有多少粉丝"
"帮我查一下今天的天气"
"打开QQ给张三发消息说'下午开会'"
"每天早上9点提醒我喝水"
NutBot
├── 后端 (Node.js + TypeScript)
│ ├── Gateway - 统一入口
│ ├── Agent - AI 对话和决策
│ ├── Tools - 工具集(browser/computer/exec/screenshot)
│ ├── Memory - 记忆系统
│ └── Cron - 定时任务
├── 前端 (Vue 3 + Tailwind)
│ └── Web UI
└── 浏览器扩展 (Chrome Extension)
└── CDP Relay
| 工具 | 功能 |
|---|---|
browser |
浏览器自动化(基于 Playwright) |
computer |
桌面控制(基于 nut.js + UI Automation) |
screenshot |
屏幕截图 |
exec |
执行系统命令 |
web |
网络请求 |
- 多 Provider 支持
- 浏览器自动化
- 桌面控制(Windows UI Automation)
- 记忆系统
- 定时任务
- Web UI
- macOS/Linux 桌面控制
- MCP 协议支持
- Skills 扩展系统
- 更多记忆能力(向量检索)
- 语音交互
- 多模态输入
- 插件市场
| 库 / 技术 | 用途 |
|---|---|
| Playwright | 浏览器自动化 |
| nut.js | 跨平台桌面自动化(鼠标、键盘) |
| screenshot-desktop | 跨平台屏幕截图 |
| sharp | 图像处理(缩放、裁剪) |
| Chrome DevTools Protocol | 浏览器调试协议 |
| Windows UI Automation | Windows 桌面元素精确定位 |
| macOS Accessibility API | macOS 桌面元素读取 |
| Linux AT-SPI2 | Linux 辅助技术接口 |
MIT
Made with ❤️ by N0ts