iammm0/secbot
GitHub: iammm0/secbot
Secbot 是一个基于 TypeScript 和多 agent 编排的 AI 驱动安全测试自动化工作区,为授权安全测试提供从侦察到报告的端到端工具链整合。
Stars: 74 | Forks: 12
# @opensec/secbot (TypeScript) — v2.0.0-b2
[](https://github.com/iammm0/secbot/releases)
[](https://nodejs.org/)
[](LICENSE)
Secbot 是一个基于 AI 驱动的 TypeScript 安全自动化工作区,包含 NestJS 后端和基于 Ink 的终端 UI。

## 产品线
| 线 | 分支 | 发布版本 | 备注 |
| --- | --- | --- | --- |
| **v2 TypeScript 产品** | [`release`](https://github.com/iammm0/secbot/tree/release) | [GitHub Releases](https://github.com/iammm0/secbot/releases) (`.tgz`) | 当前产品线 — NestJS + Ink TUI |
| **v1 Python 技术栈** | [`pypi-release`](https://github.com/iammm0/secbot/tree/pypi-release) | [v1.10.0+](https://github.com/iammm0/secbot/releases/tag/v1.10.0) | 旧版 Python 版本;在 `pypi-release` 上维护 |
| **Go 实验版** | [`pure-go`](https://github.com/iammm0/secbot/tree/pure-go) | — | 仅作为演示 / 概念验证 |
## 为什么选择此包
- 端到端的 TypeScript 架构(`NestJS + Ink + SQLite`)。
- `secbot` 二进制文件默认通过在本地启动后端来运行终端 UI。
- `secbot-server` 二进制文件适用于仅需后端 API 的场景。
- `secbot-mcp` 二进制文件将 Secbot 工具作为 stdio MCP 服务器暴露。
- 跨 REST、TUI 斜杠命令、CLI 子命令和内部工具共享 skills 管理。
- 具备规划、工具执行、MCP 桥接和摘要功能的多 agent 编排。
- 内置针对 Web、网络、OSINT、防御和报告工作流的安全工具模块。
### 源码树编排(贡献者)
从代码库检出开始,`ChatService` 通过 **`IntentRouter`**(单次 LLM 分类)路由每一轮对话,可选择通过 **`ExploreAgent`**(使用 `vuln_db_query` / `browser_session` 的 ReAct,不含敏感工具),然后在每个模型的上下文预算下通过 **`ContextAssemblerService`** + **`ContextStore`** 执行。SSE 事件包括用于 TUI token 计量器的 `intent_decision`、`explore_*` 和 **`context_usage`**。**`task_simple`** 会跳过规划器;**`SummaryAgent`** 仅在 `needs_report` 为 true 时运行。面向贡献者的详细信息位于 **[`CLAUDE.md`](CLAUDE.md)**;更长的用户文档:[`README_CN.md`](README_CN.md) / [`README_EN.md`](README_EN.md)。
## 环境要求
- Node.js `>= 24`
- npm `>= 10`(推荐)
- 可选:使用 Ollama 提供本地模型服务
## 安装
从 [GitHub Releases](https://github.com/iammm0/secbot/releases) 下载最新的 `.tgz`(目前为 **v2.0.0-b2**),然后:
### 全局安装(推荐)
```
npm install -g ./opensec-secbot-2.0.0-b2.tgz
secbot
```
### 单次运行
```
npx ./opensec-secbot-2.0.0-b2.tgz
```
## 快速开始
### 1. 配置环境变量
您可以在工作目录中创建一个 `.env` 文件:
```
# 云模型 backend(推荐)
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-your-api-key
DEEPSEEK_MODEL=deepseek-chat
# 可选的本地 backend (Ollama)
# LLM_PROVIDER=ollama
# OLLAMA_BASE_URL=http://localhost:11434
# OLLAMA_MODEL=llama3.2
# 可选:探索迭代、context debug SSE、自适应 replan、NVD 速率限制
# SECBOT_EXPLORE_MAX_ITERS=12
# SECBOT_CONTEXT_DEBUG=1
# SECBOT_ADAPTIVE_REPLAN=false
# NVD_API_KEY=your-nvd-key
```
### 2. 启动完整产品模式(后端 + TUI)
```
secbot
```
### 3. 仅启动后端(可选)
```
secbot-server
```
### 4. 启动 MCP 服务器模式(可选)
```
secbot-mcp
```
仅当您明确希望 MCP 客户端看到敏感工具时,才设置 `SECBOT_MCP_ALLOW_SENSITIVE=true`。
### 5. 连接到现有后端(可选)
```
# 推荐的显式 service mode
SECBOT_TUI_BACKEND=service SECBOT_API_URL=http://127.0.0.1:8000 secbot
# 向后兼容的别名
SECBOT_TUI_BACKEND=remote SECBOT_API_URL=http://127.0.0.1:8000 secbot
```
## 包二进制文件
| 二进制文件 | 描述 |
| --- | --- |
| `secbot` | 启动终端 UI(默认:启动本地后端;可选服务模式) |
| `secbot-server` | 仅启动 NestJS 后端 |
| `secbot-mcp` | 通过 stdio MCP 暴露 Secbot 工具 |
## Skills 管理
Secbot 现在为产品和自动化接口公开了一层共享的 skills。
### TUI 斜杠命令
```
/skills
/skill
/create-skill [--description ...] [--trigger ...] [--tag ...] [--prerequisite ...] [--author ...]
```
### CLI 子命令
```
secbot skills list
secbot skills view
secbot skills create --description "..." --trigger recon --tag web
```
### REST 端点
```
GET /api/skills
GET /api/skills/:name
POST /api/skills
```
创建的 skills 会在 `skills/custom//SKILL.md` 下生成脚手架,并且也可以通过内部的 `list_skills`、`get_skill` 和 `create_skill` 工具访问。
## MCP 集成
Secbot 支持 MCP 的双向交互。
### 将 Secbot 作为 MCP 服务器使用
```
secbot-mcp
```
这会通过 stdio MCP 暴露当前的 `ToolsService` 目录。除非设置了 `SECBOT_MCP_ALLOW_SENSITIVE=true`,否则敏感工具默认保持隐藏状态。
### 从 Secbot 调用外部 MCP 服务器
使用内置的 `mcp_call` 工具连接到另一个 stdio MCP 服务器,列出其工具,或从 Secbot 工作流中调用其中一个工具。
## 源码开发
```
git clone https://github.com/iammm0/secbot.git
cd secbot
npm ci
# Backend 开发
npm run dev
# 带文件监听的 Backend 开发
npm run dev:watch
# TUI(在另一个终端中,默认:spawn 本地 backend)
npm run start:tui
# TUI service mode(仅连接现有 backend)
SECBOT_TUI_BACKEND=service SECBOT_API_URL=http://127.0.0.1:8000 npm run start:tui
```
### 常用 npm 脚本
| 脚本 | 描述 |
| --- | --- |
| `npm run build` | 构建 NestJS 后端 |
| `npm run build:terminal-ui` | 构建 Ink 终端 UI |
| `npm run build:web` | 构建 Web 前端 bundle |
| `npm run typecheck` | 对服务端代码进行类型检查 |
| `npm run lint` | 运行 ESLint |
| `npm run format:check` | 检查 Prettier 格式化 |
| `npm test` | 运行测试 |
| `npm run release:pack` | 构建并创建 npm 包 tarball |
| `npm run release:verify` | 验证打包后的 npm 发布内容 |
## 文档
- **Wiki**: [GitHub Wiki](https://github.com/iammm0/secbot/wiki) · [源文件 `docs/wiki/`](docs/wiki/)
- **[CLAUDE.md](CLAUDE.md)** — 贡献者 / AI 编程 agent 指南(编排、SSE、环境变量)
- [快速开始](docs/QUICKSTART.md)
- [API 参考](docs/API.md)
- [LLM 提供商](docs/LLM_PROVIDERS.md)
- [Ollama 设置](docs/OLLAMA_SETUP.md)
- [UI 交互设计](docs/UI-DESIGN-AND-INTERACTION.md)
- [工具扩展](docs/TOOL_EXTENSION.md)
- [发布指南](docs/RELEASE.md)
- [安全警告](docs/SECURITY_WARNING.md)
## 链接
- 发布版本: [https://github.com/iammm0/secbot/releases](https://github.com/iammm0/secbot/releases)
- Python v1 线: [pypi-release 分支](https://github.com/iammm0/secbot/tree/pypi-release)
- 代码库: [https://github.com/iammm0/secbot](https://github.com/iammm0/secbot)
- Issues: [https://github.com/iammm0/secbot/issues](https://github.com/iammm0/secbot/issues)
## 许可证
本项目采用 MIT 许可授权。详情请参阅 [LICENSE](LICENSE)。
标签:AI风险缓解, MITM代理, NestJS, TypeScript, 人工智能, 多智能体, 安全插件, 安全测试, 实时处理, 密码管理, 攻击性安全, 用户模式Hook绕过, 终端UI, 网络调试, 自动化, 自动化攻击