dabaicai001/starhub

star-deepseek-harness-desktop

StarHub 是一款跨平台桌面应用(Tauri 2 + Rust 主进程 + DeepSeek Harness React 工作台 + Go Sidecar),把开发运维日常高频工具整合到同一个窗口 —— 数据库、SSH/SFTP、Docker 面板与 AI 助手。目标是减少在 Navicat、Xshell、Portainer、文件管理器和 AI 对话窗口之间来回切换的成本。 前端架构:基于 DeepSeek Harness 原生 React 工作台(/starhub-react 路由)。资产、设置、SSH 终端、SFTP、数据库

Uncategorizedawesome-dshawesome-dsh-plugindb
StarHub

StarHub

All-in-One DevOps Desktop Command Center

数据库 · 终端 · 文件 · 容器 · 真机 · AI —— 收进同一个窗口

你的桌面上一半是"生产力工具":Navicat 连库、Xshell 开终端、WinSCP 传文件、Portainer 看容器、网页里挂着个 AI 对话框——每天在五六个窗口之间来回切,复制粘贴当"集成"。StarHub 把这些收进同一个窗口:左边是资产,中间是工作台,AI 在侧栏待命——@ 一下把服务器交给它,# 一下把日志贴给它;它每一次动手,都要先弹一张确认卡问你。

不是把五个图标摆进一个启动器,而是让它们共享同一套资产、同一条连接、同一份 AI 上下文。

官网:starthub.waouzzz.cc

为什么是 StarHub

痛点别人的做法StarHub 的做法
工具多Navicat + Xshell + Portainer + 资源管理器同时开一个窗口:数据库 / SSH / SFTP / Docker / Android / AI
连接碎终端连一次、SFTP 再连一次、Docker 又配一套SFTP 与终端共用同一条 SSH 连接;Docker 可经 SSH 通道连远程主机
上下文丢操作 A 时被 B 打断,错误信息靠人肉搬运同屏三栏、命令广播;@ 绑资产、# 绑上下文直接喂给 AI
AI 只会聊天问答归问答,执行归执行Function Calling 直连真实资产,自然语言 → 自动拆解 → 跨工具执行
操作不可追溯出了事翻聊天记录写操作必经确认卡(超时按拒绝),全程落审计日志;真机直播可回放

功能

数据库:MySQL、PostgreSQL、SQLite、Redis、ClickHouse、SQL Server、Elasticsearch。表结构浏览、SQL 编辑器(CodeMirror 6,补全/格式化/历史)、虚拟滚动结果网格(可编辑、按主键批量保存)、DDL 生成、监控 Dashboard、Excel 导入导出、备份恢复、审计与告警。Oracle / MongoDB / 国产库 ODBC 在规划中。

SSH 终端:xterm.js 6,跳板机、端口转发、分屏、命令广播、危险命令拦截、ZMODEM(rz/sz)、Xshell 快捷命令导入、MFA/2FA、cwd 跟踪、断线重连。命令面板(Ctrl/⌘+K)、输出查找、主机监控页签、终端设置浮层一应俱全。

SFTP:与终端共用同一条连接,三栏浏览、拖拽传输、断点续传、暂停/继续、全局传输任务条。

Docker:容器/镜像管理、交互式 Exec TTY、日志查看、Compose、支持经 SSH 通道连远程 Docker 主机。

AI 助手:OpenAI 兼容协议(可接 GPT / Claude / DeepSeek / Ollama 等),Function Calling 直接驱动 SSH / 数据库 / SFTP / Docker / 本地文件 / Android 真机等工具;@ 绑定资产、# 绑定上下文;三级记忆卡 + 会话全文存档;所有 AI 发起的写操作都要经过确认卡审批并落审计日志。

Android 实体机直连(adb):AI 直接操作用户真实的 Android 手机(开发者模式 → USB 调试 / 无线调试)——截屏看画面、点按/滑动/滚动、按键、输入文本、按包名启动 App、设备文件传输、无线配对,共 19 个 android_* 工具;直播画面在壳内直播面板里看(scrcpy-server 的 H.264 实时,不可用自动降级截图轮询),支持围观/接管;任务级授权(60 分钟)、任意 shell 恒确认 hard 档、每次写操作自动截屏留档可回放——真实设备,每一步都有据可查。

其他:Kafka/NSQ 元数据、深浅双主题、自动更新。

架构

三层进程模型:

  • 上游 Electron 桌面壳 — DeepSeek Harness 自家的 Electron 壳,零改动原样使用;品牌、签名、自动更新都是它的。StarHub 不做自己的桌面项目。
  • dsh Host + starhub-bridge 插件 — Host(Node)进程里的 bridge 插件 spawn 两个 sidecar,把 sidecar 的方法面暴露成模型工具与工作台命令面。
  • 两个 sidecar — Rust sidecar(sidecar-rust/)承载 SSH/SFTP、Android 真机与直播帧枢纽;Go Sidecar(sidecar/)承载 MySQL / PostgreSQL / SQLite / Redis / ClickHouse / SQL Server / Elasticsearch / Docker / Kafka 等适配器和连接池。均经 stdio 换行分帧 JSON-RPC 通信。
  • 前端 — DeepSeek Harness(dsh)主壳,StarHub 的工作台和插件住在 vendor/deepseek-harness 里:apps/starhub-window 是资产工作台构建入口,packages/starhub/* 是 10 个内置插件(导航、工具桥、直播、审批、领域事件等),经 dsh 的槽位系统接入,不改上游内核。

当前版本

v0.140.3 (2026-10-23)

  • 🔧 🔧 SSH AI 命令一律走 exec 通道:堡垒机「选机器」pty 分支与 bastionMode 勾选框整体退役:v0.140.0~v0.140.2 对堡垒机类资产(kb-interactive MFA)把 AI 命令写入用户终端 pty 并经 tap 哨兵回采,配资产级「堡垒机(登录后需选择目标机器)」勾选框。在阿里云 BastionHost 上实测(不断线,复用终端页「监控」面板的 exec 采集做探针,三页三数据集对账):用户选完目标机后 exec 通道可用,且落在该连接所选的机器上;历史那条「Channel send error」是旧模型 AI 自建连接停在选机器菜单时开 exec 所致,不是 exec 不被支持。现在 ssh_exec_core 去掉 bastion_interactive 参数与整条 pty 分支(AI 与 UI 路径共用同一执行体),删除 SshSession::is_bastion()、SshConfig.bastion_mode、asset_config 的 bastionMode 解析、随之死亡的 pty tap 机器(pty_tap/pty_alive/exec_on_terminal_pty/collect_terminal_command/clean_pty_stdout/strip_ansi 等)与 ssh_session_status 的堡垒机文案分支;前端连接表单删勾选框/状态/配置字段,ui.ssh_connect 不再下发 bastion_mode;ssh_exec/ssh_session_status 工具描述与助手 persona 改述为「同一连接的 exec 通道,不打扰用户终端」。存量资产 config 里残留的 bastionMode 键被两端忽略,零回归。
  • 🔧 🔧 live-context 注入改会话级收敛:AI 只看见自己会话产生的执行:此前 starhub-live-context 的 pre-step 注入是全局级——[Recent AI execs] 按资产缓存「最近一次 AI 工具执行 + ≤2KB 输出尾」,不区分是哪个 agent 会话发起的,主壳会话因此能看见 SSH 终端页助手刚跑过的命令(命令级,非对话原文)。现在 sidecar 的 after_tool_success 把发起会话 id(starhub/tool.execute 信封里的 sessionId,桥摊平后注入工具参数)写进领域事件(DomainEvent.sessionId)与 recentExecs(RecentExec.sessionId),live-context 注入时只放行当前 agent 会话自己产生的执行与 AI 起源事件;用户起源事件(终端连接/断开)是资产事实,无会话归属,全局保留;工具直调形态(无 sessionId)的执行无法归属,按「非本会话」不注入。主壳与 SSH 助手两个方向的「上下文串味」同时消除。

历史版本见 CHANGELOG.md。

下载

GitHub Releases 提供:

平台产物
WindowsNSIS .exe(未签名)

Linux / macOS 暫不发版(2026-10-09 决策 A:等上游)。桌面壳是上游 DeepSeek Harness 的 Electron 壳,它的 SUPPORTED_TARGETS 目前只有 mac-arm64 / mac-x64 / win-x64,没有 Linux target;原来的 deb/rpm 能力随 Tauri 壳一起退役。等上游出了 Linux target,加一个 CI job 即可,StarHub 不自己维护第二条打包路径。macOS 同理(缺签名/公证证书,证书就位后照抄 Windows job 改 target 名)。

开发

前置:Node 20 LTS、Rust 1.96+、Go 1.25+、pnpm 11+。Windows 需要 MSVC 构建环境。

git clone https://github.com/dabaicai001/starhub.git
cd starhub
npm install
pnpm --dir vendor/deepseek-harness install

npm run build:window && npm run sidecar:build && npm run sidecar-rust:build
npm run smoke:dsh-desktop   # provisioning + 宿主进程冒烟(五条断言)

常用命令:

命令作用
npm run build:window构建 React 工作台(输出 dist-starhub-react/)
npm run sidecar:build / :release构建 Go Sidecar
npm run sidecar-rust:build / :testRust sidecar 构建 / 测试(Windows 自动加载 MSVC)
npm run test:utils 等Node node --test 纯逻辑测试(见 package.json)
npm run test:provisionprovisioning 合并逻辑单测
npm run smoke:dsh-desktopprovisioning + 宿主进程冒烟
npm run package:dsh-runtime打包 dsh 运行时(输出 dsh-runtime/)
npm run provision:dsh把 StarHub 组合装进一个 dsh profile
npm run version版本号同步(四处)

上游 Electron 壳打包(发布链):

pnpm --dir vendor/deepseek-harness/apps/desktop run package:win:x64:unsigned

文档

安全

  • 密码、私钥、API Key 存 sidecar 的密钥存储(文件或内存;系统 Keyring 迁移见技术方案 §六)
  • AI 执行写操作(SSH 写、SQL 写、文件删除、传输等)一律弹确认卡,超时按拒绝处理
  • hostkey 自动接受不持久化,MFA 验证码不回写
  • 直播/接管的帧通道只绑 127.0.0.1,一次性令牌握手后即弃

关于(About)

StarHub — All-in-One DevOps Desktop Command Center。把开发运维每天要用到的工具收进同一个窗口:数据库客户端 · SSH 终端 · SFTP · Docker · Android 真机 · AI 助手。

三条产品原则:

  1. 一个窗口,而不是一个启动器。 工具切换是纯损耗。StarHub 让数据库、终端、SFTP、Docker、Android 真机共享同一套资产、同一条连接,AI 共享同一份上下文——不是把五个图标摆进一个格子。
  2. AI 是操作面,不是聊天框。 助手通过 Function Calling 直接驱动真实资产;每一次写操作(SSH 命令、SQL、文件删除、传输)都弹确认卡,超时按拒绝处理,全程落审计日志。
  3. 每一步都有据可查。 密码与私钥只进 sidecar 密钥存储,hostkey 自动接受不持久化,直播/接管的帧通道只绑 127.0.0.1——真实设备上的每个动作都自动截屏留档、可回放。
项值
当前版本v0.136.1
官网starthub.waouzzz.cc
仓库github.com/dabaicai001/starhub
问题反馈GitHub Issues
协议MIT · Copyright © 2026 StarHub Authors

致谢与依赖:

  • AI 主壳基于 DeepSeek Harness(插件化 agent harness,vendor/deepseek-harness 整树 vendored);
  • Android 直播的 H.264 通道使用 scrcpy server(Apache-2.0);
  • 终端 xterm.js,数据库/中间件适配由内置 Go sidecar 承载。

License

MIT · Copyright © 2026 StarHub Authors