# Dengerbot
**Repository Path**: leftover-essence/dengerbot
## Basic Information
- **Project Name**: Dengerbot
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-11-12
- **Last Updated**: 2026-11-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# Dengerbot
**本地优先的 AI 队友桌面工作区**
让 Claude Code、Codex 与 DeepSeek 成为常驻你电脑的长期队友——
它们有自己的身份、工作区、记忆与技能,并随使用不断进化。
[中文](README.md) · [English](README.en.md)
[](https://github.com/waysozy/Dengerbot/releases)
[](https://github.com/waysozy/Dengerbot/actions/workflows/ci.yml)
[](LICENSE)
[](#安装)
[](https://bun.sh)
[](.github/CONTRIBUTING.md)
> [!WARNING]
> **预览阶段,权限完整。** Agent 以 `danger-full-access` 与 `approvalPolicy: never` 运行:首次授权后可持续读写文件、执行命令、访问网络、控制内嵌浏览器,不再逐次确认。只运行你信任的 agent 与任务,做好备份,并先阅读[安全与隐私](#安全与隐私)。
## 为什么是 Dengerbot
多数 AI 工具是一次性的聊天窗口。Dengerbot 把 agent 当作**长期队友**来设计:
- **持久身份** — 每个 agent 有独立工作区、会话历史、记忆库与技能;切换 provider 或重启后一切保留。
- **数据不出本机** — 聊天、文件、附件、浏览器与团队数据都保存在你的电脑上,SQLite 是唯一事实来源;没有云账号服务。
- **可进化** — 空闲时自动整理带证据的记忆、从经验学习技能,甚至自己写插件、经你审批后安装。
- **处处可达** — 桌面、手机(扫码配对)、Slack / Discord / Telegram 频道,以及任意外部 MCP 客户端。
## 功能
### Agent 与模型
- 内置 **Claude Code、Codex、DeepSeek Harness(dsh)** 与 **ACP 自定义 agent**;应用自动安装并管理 provider 运行时。
- **自定义 OpenAI 兼容端点**与模型发现;**30+ 订阅账号桥接**(Gemini、Copilot、Kimi、GLM、Cursor、Grok 等),复用你已有的订阅。
- 逐 agent **上下文监控**:长会话耗尽模型窗口前自动压缩,也可手动压缩。
### 记忆与学习
- 每 agent 独立记忆库,注入预算 8 KB:顶层只放索引,细节下沉到下层文件。
- 空闲时自动 **review**:对照原始会话校验记忆、纠正错误、合并重复,条目带证据引用。
- 从 review 中**学习技能**,沉淀为可复用的本地技能。
### 工作区与会话
- 每任务独立 **git worktree**,agent 在隔离的工作树中运行。
- **会话分支**:从任一已完成回答开新线程。
- 崩溃安全的 **FIFO 消息队列**(暂停 / 恢复 / 取消)与**发件箱**(发送失败持久化、严格 FIFO 重试)。
- **附加文件夹**:把工作区之外的目录显式纳入权限范围,支持排除目录。
### 插件与自我进化
- 插件以 `openbot.plugin.json` 声明贡献点:**tools / settings / panels / mcpServers / sources**。
- 从**文件夹 / npm / git** 安装,流程为 inspect → approve → install;更新带备份与回滚,禁用即回退注册。
- 插件运行在 **Bun 子进程沙箱**中,capability API 按清单授权(storage / http / agents.send 等)。
- **自我进化**:agent 在托管技能引导下自写插件 → 你审批 → 安装测试 → 保留或退役。
- **市场**:agent 模板(含技能与 routine)、技能目录、连接器插件(Airtable、Canva、Notion 等)。
### 自动化与频道
- **Routines**:逐 agent 定时任务(间隔 / 星期 / 月日、错过策略),支持 ICS 订阅、频道投递与多 agent 接力。
- **Workflows**:节点画布编排,manual / schedule / webhook / message 触发,输出到通知 / 频道 / 文件。
- **Webhook**:本地路由、密钥与测试投递。
- **频道**:Slack / Discord / Telegram 收发;入站消息经自建 `remote/` 中继转发。
### 浏览器与 Computer Use
- 内嵌浏览器:每 agent 命名 profile 与代理、自动化与录制、画中画 / dock。
- **登录接力**:agent 遇到登录墙时,你在自己的浏览器完成登录,会话安全回传。
- **Computer Use**(可选,需 `cua-driver`):`run_steps` / `verify_state` / `set_value` / `type_text`、窗口查询与截图;用户输入活跃、热键与敏感字段自动防护。
### 手机与远程
- **扫码或永久链接配对**手机(Expo / React Native);局域网优先,也可经自建 Signal + TURN 中继外出。
- 手机上聊天、处理**审批卡片**、逐 agent **分级通知**(all / needs-me / nothing)、语音、实时查看浏览器。
- 本机 **Team API**:成员访问级、多 agent 互发消息;桌面间 **WebRTC 文件传输**与**远程桌面**。
### 桌面体验
- **6 套主题**(Catppuccin、Nord 等)+ 自定义主题与壁纸;**12 种语言**。
- **双向语音**:本地转写(Whisper-turbo / Parakeet / SenseVoice)与本地朗读(10 音色),可选 ElevenLabs 云端转写。
- **Vault 密码库**与 Bitwarden / 1Password 连接器;**GitHub 连接器**(device flow、PR、MCP 代理)。
- 托盘、桌面通知、Dynamic Island 浮窗、机器指标告警、脱敏诊断导出、签名校验的自动更新。
### 运维与集成
- **[MCP 控制端](docs/MCP.md)**:Claude Desktop、Cursor、Codex 等 MCP 客户端通过 Local scripts 回环 API 读取、发送与等待 agent 任务。
- **[Sentinel 健康扫描](docs/SENTINEL.md)**:只读归组失败工具、异常回合、队列等待与高成本回合;应用崩溃后仍可运行。
## 安装
| 平台 | 方式 |
| --- | --- |
| **Windows** | 从 [Releases](https://github.com/waysozy/Dengerbot/releases) 下载 `Dengerbot-<版本>-x64.exe`(NSIS 按用户安装,CI 构建) |
| **Android** | 侧载 `Dengerbot-<版本>-android.apk`(CI 构建;预览版用开发密钥签名,暂不含推送) |
| **macOS / Linux** | 暂无官方安装包,从源码构建:`bun run dist:mac` / `bun run dist:linux` |
> [!NOTE]
> 本地优先 ≠ 纯离线:Claude 连接 Anthropic,Codex 连接 OpenAI,dsh 在本机运行但可访问网络;访问的网页与已安装插件也会使用网络。详见[隐私](docs/PRIVACY.md)。
## 快速上手
1. **启动并授权** — 安装后首次启动,确认 agent 的完整访问权限。
2. **连接模型** — 在设置中选择 provider 并按提示登录:Claude 账号、ChatGPT 订阅(`codex login`)、DeepSeek 账号,或自定义端点的 API key。运行时由应用自动安装管理。
3. **创建队友** — 用一段提示词描述角色,审阅可编辑的指令与分段后保存;agent 获得自己的工作区与身份。
4. **配对手机(可选)** — 设置 → 连接手机,扫码即可在局域网内接管会话与审批。
5. **扩展(可选)** — 安装插件与技能、配置 routines / workflows / 频道,或打开 Local scripts 接入外部 MCP 客户端。
## 架构
```mermaid
flowchart LR
subgraph P["模型与账号"]
direction TB
CC["Claude Code"]
CX["Codex"]
DS["DeepSeek Harness (dsh)"]
SUB["订阅桥接 / 自定义端点 / ACP"]
end
subgraph H["本机桌面主机"]
direction TB
RT["Agent 运行时
会话 · 记忆 · 队列 · 自动化"]
DB[("SQLite · openbot.db")]
PL["插件沙箱
Bun 子进程"]
TOOLS["内嵌浏览器 · Computer Use · 语音"]
RT --- DB
RT --- PL
RT --- TOOLS
end
subgraph C["客户端与集成"]
direction TB
MOB["手机端 (Expo)"]
MCP["MCP 客户端"]
CH["Slack / Discord / Telegram"]
end
P --> RT
MOB <-->|"QR 配对 · WebRTC
LAN 优先 / 自建中继"| RT
MCP <-->|"Local scripts 回环"| RT
CH <-->|"自建 remote 中继"| RT
```
| 目录 | 职责 |
| --- | --- |
| `src/main` | Electron 主进程:窗口、IPC、插件宿主、自动化与集成服务 |
| `src/backend` | 领域服务与 SQLite 迁移(Effect 4) |
| `src/preload` | 上下文隔离桥与载荷解码 |
| `src/renderer` | SolidJS 桌面 UI |
| `packages/*` | 共享包:`ui`、`contracts`、`i18n`、`brand`、`team-client`、`logging`、`telemetry`、`user-errors` |
| `apps/mobile` | Expo / React Native 手机端 |
| `apps/status` | 服务状态页 |
| `remote/api` | 自建 Signal + TURN 信令中继(Docker Compose) |
| `resources/cli` | MCP 控制端、Sentinel、CLI |
| `resources/plugins` · `marketplace` · `*-skills` | 内置插件、市场目录与技能 |
## 开发
需要稳定的 Bun **1.4.2** 与 Node.js **>=24**。Bun 版本不符时 `bun run dev` 会拒绝启动。
```bash
bun install --frozen-lockfile
bun run dev
```
| 命令 | 作用 |
| --- | --- |
| `bun run dev` | 启动本工作树的开发栈(独立 Electron profile) |
| `bun run dev --shared` | 打开共享的 `Dengerbot Dev` profile |
| `bun run dev:status` | 查看开发栈状态 |
| `bun run dev:stop` / `dev:forget` | 停止开发栈 / 清理已确认的栈记录 |
| `bun run dev:automation` | 冒烟检查(`snapshot`、`screenshot`、`click`、`type`) |
| `bun run typecheck:node` | `src/main`、`src/backend`、`src/preload`、`scripts` 类型检查 |
| `bun run typecheck:renderer` | `src/renderer`、`packages/ui` 类型检查 |
| `bun run test:changed` | 只跑改过文件的测试(单 worker) |
| `bun run test:related -- ` | 指定源文件对应的测试 |
| `bun run build` | electron-vite 构建 |
| `bun run check:staged` | 检查已暂存文件(提交钩子自动运行) |
不要在本地跑全量 lint、全量 typecheck 或完整测试套件;这些由 CI 承担。工程规范见 [AGENTS.md](AGENTS.md)。
## 文档
| 文档 | 内容 |
| --- | --- |
| [docs/MCP.md](docs/MCP.md) | MCP 控制端:配置、工具与权限 |
| [docs/SENTINEL.md](docs/SENTINEL.md) | Sentinel 只读健康扫描 |
| [docs/PRIVACY.md](docs/PRIVACY.md) | 出网数据与隐私边界 |
| [docs/ANALYTICS.md](docs/ANALYTICS.md) | 产品 analytics 契约 |
| [docs/THIRD_PARTY_NOTICES.md](docs/THIRD_PARTY_NOTICES.md) | 第三方许可与声明 |
| [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) | 参与贡献 |
| [.github/SECURITY.md](.github/SECURITY.md) | 安全问题私密报告 |
| [.github/SUPPORT.md](.github/SUPPORT.md) | 获取帮助 |
## 安全与隐私
- Agent 拥有完整文件与命令权限,不会逐次请求确认。只让它们接触你信任的代码和数据。
- 桌面端保留渲染进程到主进程的信任边界:Electron sandbox、上下文隔离、导航策略与 IPC 发送方校验。
- 聊天、文件、附件、浏览器数据与团队数据保存在运行 Dengerbot 的电脑上;SQLite 数据库 `openbot.db` 是唯一事实来源。
- 日志、导出、诊断与 analytics 路径会脱敏密钥。
- 网络只用于 provider、访问的网页和插件各自的服务;本仓库不包含上游的 Cloudflare 账号服务。
- 报告漏洞请走 [SECURITY.md](.github/SECURITY.md) 的私密流程,不要公开提交。
## 许可证与致谢
Dengerbot 自身代码使用 [MIT](LICENSE)。本项目包含来自 [OpenBot](https://github.com/nightly-labs/openbot)(Synthetify Labs)的代码,其上游 **PolyForm Noncommercial License 1.0.0** 继续适用于 OpenBot 衍生部分;署名与第三方声明见 [NOTICE](NOTICE) 与 [docs/THIRD_PARTY_NOTICES.md](docs/THIRD_PARTY_NOTICES.md)。
感谢 OpenBot 上游,以及 Sentinel 等模块参考的开源项目(见 NOTICE)。
---
[中文](README.md) · [English](README.en.md) · [Releases](https://github.com/waysozy/Dengerbot/releases) · [Issues](https://github.com/waysozy/Dengerbot/issues) · [Discussions](https://github.com/waysozy/Dengerbot/discussions)