SuperAPI AI 工具集

persistproc

persistproc 是一个 MCP 服务器与命令行工具,让智能体和人类能够查看并控制长时间运行的进程(例如 Web 服务器)。它的目标是减少用 AI 编码时反复复制粘贴的工作量,方便同时使用多个智能体,并且不绑定特定工具。它没有配置文件,进程完全在运行时管理,不是 supervisord 的替代品。它暴露一个标准的 Model Context Protocol(MCP)服务器,默认运行在 http://127.0.0.1:8947,任何兼容 MCP 的客户端都可以调用。暴露的工具较少,原因是工具过多会降低 LLM 表现。安装后先运行服务端并按输出配置智能体,再用 persistproc 前缀启动命令,其输出会流式回传终端,关闭终端后进程仍继续运行。适用于本地开发中需要让智能体读取或管理多个进程日志与状态的场景。

访问官网

工具介绍

用途

persistproc 是一个 MCP 服务器和命令行工具,目标是成为一个“多智能体开发工作流中的共享进程层”。它让智能体与人类都能查看并控制长时间运行的进程,例如 Web 服务器。其主要目的是减少在用 AI 编码时所需的复制粘贴操作,让同时使用多个智能体变得更容易,并且保持工具无关(tool-agnostic)。

主要能力

  • 让智能体查看长时间运行进程的输出。
  • 让智能体控制进程,例如启动、停止、重启,并读取日志。
  • 暴露一个标准的 Model Context Protocol(MCP)服务器,地址为 http://127.0.0.1:8947,任何兼容 MCP 的客户端都可以以编程方式与其交互。
  • 服务器暴露的工具列表被有意保持简短,因为 LLM 在工具过多时表现会下降,某些 IDE(例如 Cursor)对工具数量有上限。
  • 没有配置文件,进程完全在运行时管理。项目明确说明它不是 supervisord 的替代品。

使用方式

  1. 安装 persistproc。
  2. 启动服务器并配置你的智能体:在一个专用终端中运行该命令并保持其运行。persistproc serve 首先会输出针对不同智能体的配置说明,按照这些说明操作即可。
  3. 启动一个进程:在另一个终端中,cd 到项目目录,并通过 persistproc 运行命令。命令会被发送到服务器,其输出会流式传输到当前终端。你可以安全地关闭这个终端,进程会继续运行。也可以直接让智能体“用 persistproc 运行你的开发服务器”,它大概会通过查看 package.json 找到正确的命令并用 persistproc 运行。

资料中还提到:可以在完全配置好的 virtualenv 中用 ./pp 运行 persistproc,用 uv run 在 virtualenv 中运行 pytest 等其他命令。

示例交互

假设你已用 persistproc npm run dev 启动了一个 Web 服务器(PID 12345):

  • 你对智能体说“列出正在运行的进程”,智能体调用 list() 并显示正在运行的 npm run dev 进程。
  • 你说“Web 服务器好像卡住了,能重启吗?”,智能体识别出对应进程并调用 ctrl(action="restart", pid=12345)。
  • 你说“给我看看 Web 服务器上的错误”,智能体调用 output(pid=12345, stream="stderr") 获取最新的错误日志。

适用场景

  • 基础 Web 开发:开发服务器通常用 npm run dev 启动,它会监视代码变化、类型检查、lint 并热更新页面。出错时错误会打印到终端。使用 persistproc 时,把 npm run dev 改为 persistproc npm run dev,智能体就能即时读取其输出甚至重启它;同时你仍可在原终端查看输出,并用 Ctrl+C 照常终止。
  • 复杂 Web 开发:本地运行 Web 应用可能需要四个进程,例如 API、前端服务器、SCSS 构建器和 Postgres,每个服务输出各自的日志。如果这些进程用 persistproc 启动,智能体可以一次性读取全部日志,可能给出更快的诊断。
  • 多人/多智能体协作:目标是方便使用多个智能体,并保持工具无关。资料指出,仅 Cursor 的智能体能看见 Cursor 终端中的进程,Claude Code、Gemini CLI 等则不能。

限制

  • 如果进程由其他系统启动,资料建议最好把日志写到可预测的位置并告诉智能体日志在哪里,而不是尝试使用 persistproc;或者关注 GitHub 上的相关 issue。
  • 目前 persistproc 最有用的场景是:你希望智能体能管理进程,而不只是查看其输出。
  • 没有配置文件,进程完全在运行时管理。

许可

本项目使用 MIT License 许可。