内容
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="web/public/logo-dark.svg" />
<img alt="DevWebUI" src="web/public/logo-light.svg" width="440" />
</picture>
### 本地开发服务器的图形化界面和管理控制面板
从一个面板运行所有开发服务器 - 点击启动、停止和重启,并实时查看状态、CPU、内存和日志。然后让您的AI代理通过MCP驱动相同的守护进程。<br/>
不再需要在十几个终端标签中进行`bun run dev`的繁琐操作。
[**官网**](https://devwebui.github.io) · [快速开始](#run-it) · [`.devwebui` 文件](#devwebui-files) · [MCP](#drive-it-from-an-ai-agent-mcp) · [更新日志](CHANGELOG.md)
[](https://devwebui.github.io)
[](https://github.com/LunarWerxs/devwebui/actions/workflows/ci.yml)
[](https://github.com/LunarWerxs/devwebui/releases)
[](LICENSE)
<br/>
<img src="docs/screenshot.png" alt="DevWebUI 管理本地开发服务器 - 两个项目,带有正在运行和停止的进程,每个进程显示实时状态、端口、运行时间、CPU 和内存。" width="860" />
</div>
## 为什么存在
优秀的本地开发图形化界面(例如 hotel、exo)已经废弃。PM2 的网页界面需要付费。除此之外,所有仍在维护的界面要么是终端界面,要么是重量级的容器或 k8s 工具。没有人提供您真正需要的功能:**一个图形化界面和 MCP 守护进程** - 您可以点击,您的代理可以自动化,并且所有人都基于同一个真实的源。
## 运行它
**Windows** - 双击 `DevWebUI` 快捷方式。它在后台运行(无控制台窗口),带有托盘图标:右键单击以打开 / 重建并重启 / 重启 / 退出。首次启动时构建一次;之后立即启动。更改了图形化界面?点击 **重建并重启**。
**任意操作系统** - 从终端:
```bash
bun install
bun run dev # 守护进程在 :4000 + 图形化界面在 http://localhost:4010
```
DevWebUI 打开为空 - 在仓库中添加一个 `.devwebui` 文件,然后点击 **添加项目**。想要立即点击?添加 `server/examples/extra.devwebui`(两个依赖项无关的心跳进程)。图形化界面和 API 共用一个端口(默认为 `4000`);如果端口被占用,守护进程会跳转到下一个空闲端口并打开实际绑定的 URL。
## 您获得的功能
- **一键控制** - 启动 / 停止 / 重启任意开发服务器;实时状态、CPU、内存、日志。
- **每个仓库一个面板** - 一个 `.devwebui` 文件将所有进程分组在一个可折叠的标题下;您的项目在下一次启动时自动重新加载。
- **端口冲突救援** - 检测到占用的端口,告诉您哪个进程正在占用它,并在请求时释放它。
- **持久错误日志** - 去重后的 stderr / 崩溃 / 类似错误的 stdout 在重启后仍然存在。
- **桌面快捷方式** - 从 ⋮ 菜单将任意服务器(或整个仓库)发送到您的桌面;双击启动它,链接服务器和所有相关服务器,在一个小窗口中带有停止按钮。
- **为代理构建** - 一整套 MCP 工具驱动与您点击的同一个守护进程,基于同一个共享状态。
- **本地化和主题** - 完整的 i18n(英语基础;[添加语言](web/src/i18n/README.md)),浅色/深色。
- **驻留在托盘中** - Windows 托盘应用程序在后台运行守护进程;打开 / 重建 / 重启 / 退出。
<table>
<tr>
<td width="50%" valign="top">
<b>实时日志,流式传输</b><br/>
无需离开面板即可跟踪任意进程。<br/><br/>
<img src="docs/logs.png" alt="DevWebUI 中的实时日志流式传输" />
</td>
<td width="50%" valign="top">
<b>去重错误日志</b><br/>
重复项折叠成一个带有计数器的条目 - 并且在重启后仍然存在。<br/><br/>
<img src="docs/errors.png" alt="DevWebUI 的去重错误日志,带有出现次数计数器" />
</td>
</tr>
</table>
<p align="center"><sub>默认情况下为深色主题 - 同时提供浅色主题。</sub></p>
<p align="center"><img src="docs/light.png" alt="DevWebUI 的浅色主题" width="820" /></p>
## `.devwebui` 文件
每个仓库的一个小文件列出了要运行的服务器。将它放入仓库根目录并点击 **添加项目**:
```jsonc
{
"name": "Connections",
"processes": [
{ "id": "main", "name": "Main SPA", "command": "bun run dev:main", "autostart": true },
{ "id": "pay", "name": "Pay plane", "command": "bun run dev:pay", "port": 4020 }
]
}
```
每个进程:`id`、`name`、`command`,以及可选的 `cwd`、`port`、`url`、`color`、`env`、`autostart`、`waitForPort`、`links`、`companion`。您还可以在图形化界面中添加和编辑进程 - DevWebUI 将它们写回文件。`links` 将作为一个单元运行的服务器分组(启动或停止一个启动或停止所有);`companion` 标记一个进程,例如共享数据库,当您手动启动项目中的其他进程时,该进程会启动。
**完整字段规范 + 复制粘贴提示,写入文件 →** [`AI_GUIDE.md`](AI_GUIDE.md)
## 通过 AI 代理(MCP)驱动
MCP 服务器是运行守护进程上的薄_stdio_客户端,因此图形化界面和您的代理共享一个状态。启动守护进程,然后注册:
```jsonc
{
"mcpServers": {
"devwebui": {
"command": "bun",
"args": ["server/src/mcp.ts"],
"cwd": "/absolute/path/to/devwebui",
"env": { "DEVWEBUI_URL": "http://localhost:4000" }
}
}
}
```
17 个工具涵盖项目、进程(启动/停止/重启、启用/禁用等)、日志和错误日志。**完整列表 →** [`AI_GUIDE.md`](AI_GUIDE.md#for-an-ai-driving-devwebui-over-mcp)
## 命令行界面
```bash
devwebui start | stop | status | list # 启动 / 停止守护进程,检查状态
devwebui start-process | stop-process | restart-process <id|name>
devwebui start-all | stop-all
devwebui mcp # 代理的_stdio_MCP服务器
```
一个薄客户端,使用与图形化界面和 MCP 相同的 REST API - 运行 `devwebui --help` 获取其余部分;`DEVWEBUI_URL` / `DEVWEBUI_PORT` 将其指向另一个守护进程。
## 技术栈
Bun + Hono 守护进程(HTTP + SSE)带有零依赖的_stdio_MCP引擎;Vue 3 + Vite,shadcn-vue 在 Reka UI,Tailwind v4(锌 + 靛蓝,浅色/深色)。查看 [更新日志](CHANGELOG.md) 获取已完成的内容。
## 本地优先
DevWebUI 完全在您的机器上运行 - 一个本地守护进程,在 [MIT 许可证](LICENSE) 下开源。核心功能不需要帐户和云服务。一个可选的额外功能:
- **设置同步** - 使用 LunarWerx Connections 帐户登录,以同步少量可移植的首选项 + 主题,跨机器生效。默认为关闭;仅在您在设置中明确启用它时运行,并且 `@cnct/connect`/`@cnct/locker`(所需的 SDK)是可选依赖项,仅在您安装后从未导入或初始化它们。
路线图上:macOS / Linux 托盘,一个图形化界面内的环境编辑器,日志搜索和多主机。
由 **[LunarWerx 工作室](https://lunarwerx.com/)** 赞助。