ServicePilot 是一个 托盘优先、AI 友好、FluentWindow 现代界面的 Windows 本地开发服务启动器。它从托盘和 CLI 启动、监控、停止本地开发服务,把前端、后端、脚本动作、环境变量和日志收进一个托盘菜单,让人和 AI 都能可靠操作 npm、dotnet、Python 和自定义脚本。v4.2.1 让日志“摘要/展开”模式持续应用到后续新日志组,并让长行搜索自动横向定位命中;同时保留 v4.2.0 的合并函数 Windows 通知与托盘服务即时筛选。
交给 AI 的推荐方式: 下载并启动 ServicePilot 后,在托盘数字图标上右键选择 复制给 AI 的帮助。AI 就能先用 ai-help、doctor --json、list --json、status all --json 读取真实状态,再帮你新增个性化服务、模板、动作和变量。只要命令行能做,就可以包装成 ServicePilot 动作:切换 API 地址、拉取分支、安装依赖、打开 IDE。ServicePilot 内置了“默认开发动作模板”,也推荐让 AI 直接生成适合当前项目的服务和模板。
下载: ServicePilot.exe | 最新发布 | 完整用户指南
日志窗口(动作日志标签可关闭、支持合并折叠和右侧颜色概览):
| 托盘右键菜单 | 编辑服务和脚本动作 |
|---|---|
![]() |
![]() |
| CLI / AI 状态检查 | AI 命令帮助 |
|---|---|
![]() |
![]() |
- 下载
ServicePilot.exe。 - 双击启动,任务栏通知区域会出现一个数字图标。
- 右键数字,选择
新增服务或打开管理服务。 - 填写服务名称、工作目录和脚本动作。
- 按需填写预设变量,例如本地、测试、开发环境 API 地址。
- 从托盘菜单、管理服务窗口、日志窗口或 CLI 启动服务。
- 托盘优先:无额外桌面面板,任务栏通知区域数字就是主入口。
- FluentWindow 现代界面:v3.0.0 全面升级,所有管理窗口使用 WPF-UI FluentWindow,带 TitleBar 标题栏、系统主题色选中效果和统一深色主题。
- 多动作服务:一个服务可包含 Batch、PowerShell、Python、Node.js 动作。
- 动作与组合动作:可以单独运行脚本动作,也可以把多个动作编排成组合动作。
- 变量切换:启动、重启、执行动作时可选择不同预设变量。
- 完整服务模板:模板保存名称、说明、动作和变量,应用时保留目标工作目录。
- 模板分享:模板可导出为 JSON 文件,也可从别人分享的文件导入。
- 内置通用模板:首次启动自动提供“默认开发动作模板”,内含 Git、npm、常用 IDE/终端打开等可编辑动作。
- 实时日志:支持按动作分 Tab、搜索、复制、横向滚动和有限缓存;同名动作按稳定标识独立分 Tab,单个动作 Tab 可关闭并清除已保留日志,完整标题显示在窗口标题栏。
- 日志合并、折叠与通知:动作可配置自定义 C# 合并脚本,把多行日志折叠成一行带色摘要(VSCode 式展开/折叠),搜索命中自动展开,右侧颜色概览便于定位错误;也可调用
Notify("文字")在启动完成等实时节点发送 Windows 通知,前端同一轮启动即使热更新再次到100%也只提醒一次。 - 托盘服务即时筛选:右键打开托盘菜单后可直接输入服务名过滤长列表,搜索框与底部管理入口固定可见。
- 外部配置热加载:直接编辑
%APPDATA%\ServicePilot\config.v2.json会被托盘自动检测并热加载,不覆盖外部改动,保留运行中服务状态。 - AI/脚本 CLI:
list/status/service/step/template/logs支持 JSON 输出;--json错误也走 stdout 且强制 UTF-8 编码,管道消费无乱码;托盘提供复制给 AI 的帮助,CLI 配置变更会刷新已打开的管理/日志窗口。 - 动作级增量编辑:
step add/edit/remove/move可精确增、改、删、排序单个动作步骤;step set-members/add-member/remove-member可直接维护组合动作成员;template import --on-conflict控制同名冲突策略;变更通过托盘管道即时刷新托盘菜单和管理/日志窗口。 - 可靠停止与日志收尾:使用 Windows Job Object 清理进程组,减少 Vite/npm 子进程残留占端口;进程完成或停止时会排空 stdout、stderr 和已排队日志,排空超时会明确报告失败。
- 中英文界面:默认跟随 Windows 语言,也可从托盘菜单切换。
ServicePilot.exe version
ServicePilot.exe ai-help
ServicePilot.exe doctor --json
ServicePilot.exe list --json
ServicePilot.exe status all --json
ServicePilot.exe start "Frontend" --variable "http://localhost:9000"
ServicePilot.exe step run "Frontend" "Set API URL" --variable "http://localhost:9000"
ServicePilot.exe step add "Frontend" --name "Check Node" --type Batch --script "node --version" --position after:"Set API URL"
ServicePilot.exe step edit "Frontend" "Check Node" --name "Node Version Check"
ServicePilot.exe step remove "Frontend" "Node Version Check"
ServicePilot.exe step move "Frontend" "Set API URL" --position end
ServicePilot.exe step set-members "Frontend" "Start" --member "Set API URL" --member "Start Server"
ServicePilot.exe step add-member "Frontend" "Start" --member "Health Check"
ServicePilot.exe template import --file ".\my-template.servicepilot-template.json" --on-conflict skip
ServicePilot.exe logs "Frontend" --tail 200 --json
ServicePilot.exe stop "Frontend"完整命令、服务模型、模板、变量和 AI 工作流见 完整用户指南。
%APPDATA%\ServicePilot\config.v2.json
%APPDATA%\ServicePilot\config.json
%APPDATA%\ServicePilot\variable-usage-cache.json
config.v2.json 是当前服务和模板配置。旧 config.json 只作为迁移来源保留;variable-usage-cache.json 只保存最近使用排序,可删除重建。
要求:
- Windows
- .NET SDK 8.0+
dotnet build .\ServicePilot.sln
dotnet publish .\ServicePilot\ServicePilot.csproj -t:Rebuild -c Release -o .\distRelease 发布默认生成自包含单文件 dist\ServicePilot.exe。
ServicePilot 是本地工具。它不会上传文件、路径、日志、配置或机器名。
MIT。





