Skip to content

About

Tiger 项目中控台:面向 Windows + WSL 的本地项目管理面板(AI Agent/CLI/TUI 工具、Web 服务、Docker、计划任务统一启停与日志)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Tiger 项目中控台

面向 Windows + WSL 环境的本地项目管理面板:统一管理 AI Agent / CLI / TUI 工具、本地 Web 服务、Windows / WSL 项目、Docker 容器与 Windows 计划任务。

📖 English documentation: README_EN.md

License: MIT

本地项目 / AI Agent / 工具 / 定时任务的一体化启动、状态、日志仪表盘。默认只在 127.0.0.1 监听,专为单机使用设计。

想看界面长什么样?把本项目跑起来(见下方「安装与首次启动」),浏览器打开 http://127.0.0.1:8900 即可。

Tiger 项目中控台 v2.5 - 运行中视图

上图为本项目实际运行画面(来自作者本机工作区快照)。展示了一次同时管 72 个项目:Web 服务、WSL 进程、Docker 容器、Windows 计划任务与交互式 CLI/TUI 工具的混合视图。

一、功能简介

  • 状态总览:卡片式展示所有项目,每 3 秒自动刷新(页面隐藏时自动暂停);运行中项目绿点带呼吸动画;「运行中」标签页一键只看正在运行的服务;状态变化可开启桌面通知。
  • 搜索:顶栏搜索框按名称 / 描述 / 标签 / 端口 / URL / ID 即时过滤。
  • 归类与标签:全部分组标签页均显示项目数(项目 / AI & Agent / 工具 / 定时任务 / Docker)+ 动态标签,标签支持点击筛选。
  • 一键启动 / 停止 / 重启:隐藏窗口启动,输出重定向到日志文件;运行中不会重复启动;重启会等待旧进程退出后再拉起。
  • 进程检测:task/GUI/交互式项目支持 sig 命令行特征和 pname 进程名精确匹配;Web/WSL 端口检测会用 sig 二次确认 PID,避免端口被其他程序占用时误判/误杀。
  • 工具类(exe):默认无运行状态,点「打开」直接启动使用;配置 pname 后也能显示运行状态并停止;「打开目录」可在资源管理器中定位 exe 所在位置。
  • Docker 容器:容器名检测实时状态(Up/Exited),显示镜像与端口映射,docker start/stop 一键启停,「日志」直接看 docker logs(带时间戳)。
  • Windows 计划任务:首页不展示任务列表;顶部「🗓 Windows 计划任务」按钮一键打开系统任务计划程序;自动识别与项目关联的计划任务,在对应卡片上提示「⏰ 定时运行」(含运行脚本与下次运行时间);计划任务表显示上次运行时间/结果,并支持「立即运行」。
  • 日志查看:点卡片上的「日志」按钮,可查看每次启动的完整日志(自动滚动,向上翻阅自动暂停);支持下载与清空;日志默认保留 30 天 / 总量 200MB,自动清理。
  • 人工导入:点「+ 添加项目」手动添加任意项目/工具(填启动命令、类型、端口、检测特征、进程名、标签等)。
  • CLI/TUI 扫描:自动发现 Windows PATH、npm 全局目录和 WSL Ubuntu 常用 PATH 中的实际命令,过滤系统基础命令;展示已配置与未配置工具,点击「加入中控台」逐个导入,WSL 候选自动使用 wsl -d Ubuntu 启动,避免重复。
  • 标签与分组管理:每张卡片的 ⚙ 按钮可改名称、分组、类型、标签,也能查看/修改启动命令、工作目录、端口、网址、检测特征、进程名、WSL 启停命令、容器名,或删除项目。
  • 深浅色切换:默认浅色,右上角 🌙/☀️ 切换,自动记忆选择。
  • 打开网页:Web / WSL / Docker 类项目可直接跳转到项目自己的页面。

二、前置要求

组件 要求 说明
操作系统 Windows 10 / 11 核心功能依赖 Windows(netstat / PowerShell CIM / 计划任务)
Python 3.10+ 需在 PATH 中(启动器优先用 python,其次 py -3)
Flask 2.3+ 首次启动会自动尝试 pip install flask
WSL Ubuntu(可选) 仅在使用 WSL 类项目 / 扫描时需要
Docker Docker Desktop(可选) 仅在使用 Docker 类项目时需要
Node.js / npm 可选 仅扫描 npm 全局命令时需要

说明:本项目为本地单机工具,默认不跨网络。所有启动/停止/日志操作都只在本机执行。

三、安装与首次启动

  1. 下载或克隆本仓库到任意目录,例如 D:\Projects\项目控制台(路径随意,无需固定位置)。
  2. 双击目录下的 启动中控台.bat(或在仓库根目录运行 powershell -ExecutionPolicy Bypass -File launcher.ps1)。
  3. 启动器会:
    • 读取 projects.json 的端口(没有则默认 8900);
    • 如未安装 Flask 则自动安装;
    • 启动 Flask 服务并等待健康检查通过;
    • 自动打开浏览器访问 http://127.0.0.1:8900。
  4. 若当前目录没有 projects.json,首次启动会自动从 projects.example.json 复制生成一份本地配置(或直接生成空配置),不会因缺配置而崩溃。你可以随时在界面上删除示例项目、添加自己的项目。
  5. 关闭弹出的黑色窗口即停止中控台。

提示:你自己的项目配置保存在仓库目录下的 projects.json,已被 .gitignore 排除,不会进入公开仓库。

四、projects.example.json 配置说明

projects.example.json 是配置模板(含「本地 Web / CLI 工具 / WSL 工具 / Docker 容器」四类示例)。首次启动时会复制为你的 projects.json。字段含义:

字段 说明
server_port 服务监听端口,默认 8900,可被用户修改
id 唯一标识(界面「添加」时自动生成,导入时校验)
name / desc 显示名称 / 描述
group proj(项目)/ ai(AI & Agent)/ tools(工具)/ task(定时任务)/ docker
kind web 按端口检测;task/gui 按进程命令行特征检测;tool 无运行状态(配置 pname 后可检测);interactive 独立窗口打开;wsl 按端口检测 + wsl 命令启停;docker 按容器名检测 + docker start/stop
run 启动命令:.bat 路径 或 命令行;tool 类填 exe 路径
workdir 工作目录(可留空,启动器会自动推断)
port 检测端口(web / wsl 类型必填)
url 「打开网页」按钮的地址
sig 检测特征(task/gui 填命令行片段,建议带 -Mode 等参数区分同一脚本的不同任务)
pname 可选,进程名精确匹配(如 codex.exe、claude.exe),优先级高于 sig
match_end 特征需匹配到命令行结尾(用于区分 -Mode feed 与 -Mode feed -MaxRows 20)
tags 自定义标签数组,界面可筛选
start_cmd / stop_cmd wsl 类型的启停命令
docker_name docker 类型的容器名
logs.keep_days / logs.max_total_mb 日志保留策略(顶层配置,默认 30 天 / 200MB)

你也可以不复制示例,直接新建一个只有 {"server_port": 8900, "projects": []} 的 projects.json,界面上手动添加项目。

五、如何添加各类项目

点界面右上角「+ 添加项目」,按类型填写:

  • Web 项目:kind=web,填 run(启动命令/bat)、port(监听端口)、url(打开网页地址)。状态按端口检测。
  • CLI / TUI 工具:可以用「CLI/TUI 扫描」发现本机命令后点击「加入中控台」;也可手动添加。kind=interactive 会以独立窗口打开(.bat/.cmd 像双击一样打开;命令行优先 Windows Terminal)。配置 pname 可显示运行状态。
  • 普通工具(exe):kind=tool,run 填 exe 路径;默认无运行状态,配 pname 后可显示/停止。
  • WSL 项目:kind=wsl,填 port 与 start_cmd/stop_cmd(默认 wsl -d Ubuntu -- ...);状态按网关端口检测。
  • Docker 容器:kind=docker,填 docker_name;按容器名检测,支持 start/stop 与日志。

添加后卡片上的 ⚙ 可随时修改所有字段或删除。

六、PATH 扫描功能说明

「CLI/TUI 扫描」会读取你当前环境实际能找到的命令,而不是依赖一份固定白名单:

  • 扫描 Windows PATH 中的所有 .exe / .cmd / .bat / .ps1;
  • 扫描 npm 全局目录(%APPDATA%\npm、%LOCALAPPDATA%\npm、PNPM_HOME 等);
  • 扫描 WSL Ubuntu 常用 PATH(/usr/local/bin、/usr/games、/home/*/.local/bin 等);
  • 过滤系统基础命令、语言运行时内部命令、临时目录与备份文件;
  • 同名命令去重(Windows 优先,同名 WSL 命令只在 Windows 没有时展示);
  • 已配置项目继续显示为「已配置」,不能重复添加;
  • 扫描结果只能逐个点击加入,不自动批量导入;
  • 扫描窗口内置搜索,可搜命令名、启动命令、来源路径、运行范围。

已知常见 AI CLI/TUI(如 claude、hermes、openclaw、codex 等)会显示友好名称并归入「AI & Agent」分组;找不到时只显示「未发现」,不会报错。

七、日志与计划任务

  • 日志:每次启动输出重定向到 logs/<项目id>_<时间>.log;界面可查看(大文件只读末尾)、下载、清空;后台按保留天数与总量上限自动清理。
  • Windows 计划任务:首页不展示完整列表,仅通过「🗓 Windows 计划任务」按钮打开系统任务计划程序;中控台会识别与你项目脚本关联的计划任务,在卡片上提示「⏰ 定时运行」并展示下次运行时间;计划任务表支持「立即运行」并展示上次结果。

八、本地安全说明

  • 服务默认只监听 127.0.0.1,不接受来自局域网的连接;请勿将其绑定到 0.0.0.0 或反向代理到公网。
  • 所有「启动 / 停止 / 重启 / 导入」等写操作都做了跨站请求(Origin)校验,仅允许本机页面调用。
  • 端口被其他程序占用时,启动器会拒绝误杀无关进程,只退出自身。
  • 导入配置时校验项目 ID、命令、类型、分组与字段格式,避免注入异常数据。
  • 日志与错误输出不会主动记录 API Key、Token、密码等敏感数据。
  • 你的 projects.json、日志、备份均保存在本地,不会被上传到任何第三方服务。
  • 如果未来需要局域网访问,务必先增加身份验证,不要直接暴露端口。

九、常见问题(FAQ)

Q:启动后浏览器打不开 / 显示无法连接? A:确认黑色窗口仍在运行;手动访问 http://127.0.0.1:8900。若端口被占用,启动器会提示冲突 PID;可改 projects.json 的 server_port 后重开。

Q:端口被别的程序占了怎么办? A:中控台不会去杀占用端口的其它进程,只会停止自身。请先释放该端口,或修改 server_port 到空闲端口。

Q:WSL / Docker 项目显示异常? A:确认 WSL Ubuntu 已安装(wsl -d Ubuntu 可用)、Docker Desktop 正在运行。不可用时相关卡片只显示「未运行 / 不可用」,不会让页面崩溃。

Q:如何备份 / 迁移配置? A:界面「导出」可下载 projects.json;保存时自动生成 projects.json.bak,主配置损坏会自动从备份恢复。迁移时把 projects.json 复制到新机器同目录即可(注意其中的路径需适配新环境)。

Q:示例项目不想保留? A:在界面上逐个删除,或直接把 projects.json 改成 {"server_port": 8900, "projects": []} 后重启。

Q:能否改成深色默认? A:右上角 🌙/☀️ 切换并自动记忆;当前无独立配置项强制默认主题。

十、许可证与第三方资源

  • 本项目源码采用 MIT 许可证,见 LICENSE。
  • web/tiger.png 为本项目自有头像/Logo,见 NOTICE。
  • 依赖 Flask(BSD 许可证)。

完整版本更新日志见 更新日志.md。 贡献方式见 CONTRIBUTING.md。

About

Tiger 项目中控台:面向 Windows + WSL 的本地项目管理面板(AI Agent/CLI/TUI 工具、Web 服务、Docker、计划任务统一启停与日志)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages