表里的大小是 v0.1.0 实际发布产物的值,后续版本体积相近但没有逐版重测。 每一版都标预发布(prerelease),因为安装包没有代码签名(见下面的「未签名包怎么放行」)。 功能是完整的:Linux 上从零安装、升级、回滚、离线导入都真机跑通过; Windows 只在 CI 里编译与打包通过,没有在真机上跑过; macOS 由用户在自己那一台上手工验证(0.1.3 / 0.1.4 / 0.1.5 / 0.1.7 各跑过一次, 每一次都撞出一个只在 macOS 上出现的缺陷,修在随后那一版里)。
| 平台 | 下载 | 大小 | 说明 |
|---|---|---|---|
| Windows 10 21H2+ / 11 · x64 | hunter-launcher_<版本>_x64-setup.exe |
2.64 MiB | NSIS 安装包,推荐 |
hunter-launcher_<版本>_x64_en-US.msi |
3.46 MiB | 要走组策略分发就用这个 | |
| macOS 12+ · Intel / Apple Silicon | hunter-launcher_<版本>_universal.dmg |
6.51 MiB | 通用二进制,一个包通吃两种芯片 |
| Linux Ubuntu 22.04+ / Debian 12+ · x64 | hunter-launcher_<版本>_amd64.deb |
3.82 MiB | 推荐 |
hunter-launcher_<版本>_amd64.AppImage |
78.01 MiB | 免安装;大是因为要自带整套 WebKitGTK,压不下去 |
GitHub 下载:https://github.com/agentpit-io/HunterLauncher/releases
国内下载(腾讯云香港,不用翻墙):https://hunter-dl-hk-1253756459.cos.ap-hongkong.myqcloud.com/launcher/<版本>/
装完打开,按向导走:欢迎 → 填一把 key → 点一下「开始安装」→ 等它装完。
0.1.8 起,从点「开始安装」到装好,你一次都不用点。 检测 Docker、挑下载源、算端口、 拉镜像、起容器全由 AI 连着跑完;出问题它自己查、自己修、自己按最好的办法拿主意, 做了什么决定、为什么这么定,一条条实时写在屏幕上。 界面上永远不会出现「请在终端里执行 …」这种把活儿丢回给你的话。
唯一可能出现的交互是系统自己弹的密码框(macOS 的授权框 / Linux 的 polkit / Windows 的 UAC),而且只在最后一条兜底路线上才会用到。启动器不自绘密码框、 不保存密码、不把密码写进日志。
这台电脑上没有 Docker 时,三条路自动依次走完(前一条失败才走下一条, 排序原则是「同样能解决问题时优先不需要交互的那条」):
| 顺序 | 路线 | 要下多少 | 要密码吗 |
|---|---|---|---|
| ① | 内置运行时(Colima + Lima + docker 客户端 + compose + 虚拟机系统镜像,全装在 ~/.hunter/runtime) |
约 436 MB | 不要 |
| ② | OrbStack 官方安装包(下 dmg → 验苹果签名与公证 → 装 → 打开 → 等就绪) | 约 200 MB | 可能要 |
| ③ | Homebrew —— 没有 brew 就先替你把 brew 装上,再 brew install --cask orbstack |
视情况 | 会要 |
版本与校验和全部写死在程序里、下完逐个核对。本机已经有 OrbStack / Docker Desktop / Colima 的话它一条都不走,一个字节都不下。
之前装过、没装成功也没关系(0.1.9 起):启动器认得出自己上一次留下的东西,
接着上次装,不会重来一遍。已经下好并核过校验和的文件一个字节都不重下,
内容对不上的删掉重下,虚拟机起不来就清掉重建一次。整个过程只动 ~/.hunter/runtime
这一个文件夹 —— 你的 ~/.colima、~/.lima、~/.docker/config.json、
别人的容器与数据卷,一个字节都不碰。这不是一句承诺,是写在执行层的守卫:
任何一条不带隔离参数的 colima 命令在真正执行之前就会被拒掉并记进审计日志。
你自己在系统里配好的网络代理,启动器会沿用(只读出来用,绝不修改), 并且传给它起的每一个子进程与虚拟机 —— 直连不通时自动走它重试。
本机已经有一套 Hunter 在跑时,启动器自动选「两套并存、换一组端口」, 你原来那套一点都不动。想改成直接用已有那套,到「设置 → 已有的 Hunter」里切换。
没有桌面环境的服务器用 hunter-launcher --auto --key-file <路径>,跑的是同一套逻辑。
完整的使用说明在 docs/使用说明.md,出问题先看 docs/常见问题.md。
# deb(推荐)——— apt 会自己补依赖,比 dpkg -i 省事
sudo apt install -y ./hunter-launcher_<版本>_amd64.deb
hunter-launcher
# AppImage ——— 不用装,chmod 一下直接跑
chmod +x hunter-launcher_<版本>_amd64.AppImage
./hunter-launcher_<版本>_amd64.AppImage桌面环境里托盘图标不出现的话,装一下 libayatana-appindicator3-1(deb 已经声明了这个依赖)。
容器日志里的中文显示成方块,是系统缺中文字体:sudo apt install fonts-noto-cjk。
Windows 代码签名证书(OV 约 100–200 美元/年,EV 300–500)与 Apple 开发者账号(99 美元/年) 都要花钱,本项目目前没有购买。CI 里签名与公证的步骤已经写好,等有证书了配上 secrets 就会自动生效; 在那之前产出的是未签名包,系统会拦一下。这不是包有问题,是"没花钱买证书"的必然结果。
双击 .exe 之后会弹一个蓝色的窗口:"Windows 已保护你的电脑"。
┌──────────────────────────────────────────────┐
│ Windows 已保护你的电脑 │
│ │
│ Microsoft Defender SmartScreen 阻止了 │
│ 无法识别的应用启动。运行此应用可能会使你的 │
│ 电脑面临风险。 │
│ │
│ 更多信息 ←── ① 先点这里(是个链接) │
│ │
│ [ 不运行 ] │
└──────────────────────────────────────────────┘
↓ 点完「更多信息」,窗口会多出一行和一个按钮
┌──────────────────────────────────────────────┐
│ Windows 已保护你的电脑 │
│ ... │
│ 应用: hunter-launcher_0.1.0_x64-setup.exe │
│ 发布者: 未知发布者 │
│ │
│ [ 仍要运行 ] ←── ② 再点这里 │
│ [ 不运行 ] │
└──────────────────────────────────────────────┘
两步:① 点左下角的「更多信息」→ ② 点出现的「仍要运行」。 注意不要直接点右下角的「不运行」——那是关掉。
如果 .exe 是从浏览器下载的,右键 →「属性」底部可能还有一个「解除锁定」的勾选框,
勾上再点确定也能一并解决。
双击 .dmg 挂载、把 app 拖进「应用程序」之后,第一次打开会弹:
┌───────────────────────────────────────────────┐
│ ⚠ 无法打开"hunter-launcher",因为 │
│ Apple 无法检查其是否包含恶意软件。 │
│ │
│ [ 移到废纸篓 ] [ 取消 ] │
└───────────────────────────────────────────────┘
不要点「移到废纸篓」。 正确做法二选一:
-
右键打开(最常用):在「应用程序」里找到 hunter-launcher, 按住 Control 点一下(或右键)→ 选**「打开」**→ 弹窗这次会多一个「打开」按钮,点它。 只需要做一次,以后双击就正常了。
┌───────────────────────────────────────────────┐ │ ⚠ macOS 无法验证此 App 的开发者。 │ │ 确定要打开吗? │ │ │ │ [ 移到废纸篓 ] [ 取消 ] [ 打开 ] ←点这个 │ └───────────────────────────────────────────────┘ -
系统设置放行:打开「系统设置 → 隐私与安全性」,往下滚到「安全性」那一段, 会看到一行 "已阻止使用 hunter-launcher,因为来自身份不明的开发者", 点它右边的 「仍要打开」。
macOS 15 (Sequoia) 起右键打开那条路被收紧了,只剩第 2 条。 如果提示的是**「已损坏,无法打开,你应该将它移到废纸篓」**(这是 quarantine 属性导致的, 不是文件真的坏了),在终端里跑一次:
# 注意路径里有空格:.app 的名字来自 productName("Hunter Launcher")
xattr -dr com.apple.quarantine "/Applications/Hunter Launcher.app"上面说的是代码签名(操作系统用来认开发者身份的那种,要花钱)。
启动器的自更新通道是另一套、而且是签名的:更新清单 latest.json 用 minisign 签名,
公钥编译在程序里,签名验不过的更新包不会被安装。这把密钥是本项目自己生成的,不花钱。
HunterCode 开源版是一套跑在你自己机器上的多智能体投研终端,用 docker compose 起 6 个容器。
对愿意敲命令行的人,这没什么难度;但它的目标用户里有相当一部分正是怕命令行的那批人。
Hunter 启动器是一个轻量的跨平台桌面程序,替这批用户做完全部的部署动作(Linux .deb 3.82 MiB、Windows NSIS 2.64 MiB、macOS dmg 6.51 MiB;AppImage 78 MiB —— 它要自带整套 WebKitGTK):
| 启动器替你做的事 | 原来要手动做的 |
|---|---|
| 检测 Docker,没装就按平台给安装引导 | 自己查文档装 Docker Desktop / Engine |
填一把 hunt_tools_ key,当场校验并显示今日额度 |
申请 key、手改 .env 的 4~6 个变量 |
| 拉 6 个镜像,每个镜像一条实时进度条 | docker compose pull 看满屏滚动 |
| 端口被占用时自动改端口并写进覆盖文件 | 自己查谁占了 3100,手改 compose |
| 起容器、轮询 6 个服务健康、自动开浏览器 | up -d 之后自己 ps 看健康 |
| 托盘常驻:启动 / 停止 / 重启 / 日志 / 升级 / 反馈 | 每次都回到终端 |
升级 Hunter:先 pg_dump 备份,失败自动回滚到旧版本 |
自己备份、自己改 tag、出事自己收拾 |
内网没有外网时「从文件导入」一个 docker save 的 tar |
自己 save / scp / load |
| 启动器自己也会检查更新(清单是签名的) | —— |
一把 key 走通全部链路:同一把 hunt_tools_ key 同时用于大模型网关、行情数据网关和工具网关,
不需要再去申请任何厂商的 API key。(这一点 M0 已实测验证,见预研结论第一节。)
| 平台 | 目标版本 | 安装包 | 真机测试 |
|---|---|---|---|
| Windows | 10 21H2+ / 11 · x64 | NSIS .exe + MSI |
CI 编译 + 代码审阅(暂无真机) |
| macOS | 12+ · Intel / Apple Silicon | .dmg(通用二进制) |
CI 编译 + 代码审阅(暂无真机) |
| Linux | Ubuntu 22.04+ / Debian 12+ · x64 | .deb(3.82 MiB,推荐)+ .AppImage(78.01 MiB,免安装) |
✅ 真机测试(Ubuntu 24.04) |
只有 Linux 有真实测试环境。Windows / macOS 以「CI 能编译通过 + 代码路径审阅」为准, 每个里程碑的报告里会写明哪些是未真机验证的。
┌──────────────────── Hunter 启动器(Tauri 2) ─────────────────────┐
│ 前端 React 18 + TypeScript + Vite + Tailwind │
│ ├─ 向导 欢迎 → 输入 key → 一次授权 → 自动安装(实时过程流) │
│ ├─ 运行面板 额度 / 服务健康 / 日志 / 环境 │
│ └─ 托盘菜单 │
│ │
│ Rust 核心 │
│ ├─ runtime::docker 检测运行时 / daemon / 版本 / 安装引导 │
│ ├─ compose pull · up · ps · logs(子进程 + 流式解析) │
│ ├─ config .env 与覆盖文件生成、端口冲突改写 │
│ ├─ gateway key 校验、额度查询、模型列表 │
│ ├─ updater 启动器自更新 + Hunter 版本升级与回滚 │
│ ├─ ports 端口三重确认(socket2 + docker ps + lsof) │
│ ├─ assist::auto 总指挥 / 侦察 / 诊断 / 守卫 / 执行 / 验证 / 讲解 │
│ ├─ assist::guard 路径 · 容器 · 命令三道硬校验 + 审计日志 │
│ ├─ feedback 诊断包收集 → 本地脱敏 → 导出 / 提 issue │
│ └─ tray 托盘菜单与通知 │
└────────────┬───────────────────────────────┬──────────────────────┘
│ docker / docker compose CLI │ HTTPS
▼ ▼
Docker Desktop / Engine / OrbStack hunter.agentpit.io(网关)
└─ hunter 6 个容器 api.github.com(版本检查)
web · api · opencode ghcr.io(镜像)
llm-shim · postgres · redis
启动器不替代 Docker,也不把 Hunter 打包成原生程序 —— 它调的是和你手工部署
一模一样的 docker compose 命令,所以出了问题你可以照着日志自己复现。
| hunter-community | HunterLauncher(本仓库) | |
|---|---|---|
| 是什么 | HunterCode 开源版本体:6 个服务的业务代码与镜像 | 部署层的薄壳,帮你把上面那套跑起来 |
| 许可证 | Apache-2.0 | Apache-2.0 |
| 关系 | 被启动 | 启动别人 |
本仓库对 hunter-community 零改动。 启动器消费的是它已经对外提供的东西:
docker-compose.yml、.env.example、镜像里自带的健康检查、以及 hunter.agentpit.io 的网关接口。
如果确实需要上游配合(例如缺某个接口),会写进当期里程碑报告的「需上游配合」一节,由上游自己决定改不改。
版本对应关系:启动器默认部署 hunter-community 的最新 Release tag(当前 v1.2.0),
并在设置里允许固定到指定 tag。
# 前置:Node 22+ · pnpm · Rust stable · 平台对应的 Tauri 2 系统依赖
# Ubuntu 24.04:
# sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev \
# librsvg2-dev libgtk-3-dev libsoup-3.0-dev \
# libjavascriptcoregtk-4.1-dev build-essential curl file pkg-config
pnpm install
pnpm tauri dev # 开发(热重载)
pnpm tauri build # 出当前平台的安装包
# 只跑前端的检查(不需要 Rust)
pnpm lint && pnpm typecheck && pnpm test && pnpm build
# 演示数据模式:只在开发构建里生效,界面右上角会有「演示数据」角标,
# 用来在没有 Docker 的机器上预览界面、与视觉稿做截图比对
VITE_DEMO=1 pnpm dev设计令牌(颜色 / 字体 / 字号 / 间距 / 圆角)全部量自 docs/design/ 下的三张视觉稿,
逐项列在 docs/design/设计令牌.md,实现在 src/styles/tokens.css。
字体是 Noto Sans SC + JetBrains Mono 的子集,随程序打包(离线可用),均为 SIL OFL 1.1。
Windows / macOS 的安装包只在 GitHub Actions 上构建(.github/workflows/release.yml)。
代码签名证书需要付费,当前 CI 不签名,产出的包在 Windows 会触发 SmartScreen、
在 macOS 需要手动放行(步骤见上面的「未签名包怎么放行」),因此 Release 一律标 prerelease。
签名与公证的步骤在流水线里已经写好,配上对应的 secrets 就会自动生效。
发版:scripts/set-version.sh <版本> 把三个文件里的版本号一起改掉 → 提交 →
打 launcher-v<版本> 的 tag 并推上去 → release.yml 出三平台产物、建 Release、
生成 updater 清单、同步到腾讯云香港。更多细节见 docs/开发指南.md。
所有文档、提交信息、注释、界面文案一律中文(代码标识符照常用英文)。 提交信息用 Conventional Commits。
hunt_tools_key 只存在~/.hunter/app/.env(权限 600)与内存里 —— 不写日志、不进诊断包、不进仓库- 六个服务的端口一律只绑
127.0.0.1(web / api / opencode / postgres / redis 全部;llm-shim 本来就不发布端口)。 局域网访问是付费版功能,免费版不提供切换开关;launcher.toml里手写0.0.0.0也不生效,会按127.0.0.1生成并在日志里记一条 - 子进程调用一律用参数数组,不拼 shell 字符串
- 不做假数据:额度、镜像大小、进度、服务状态全部来自真实调用;拿不到就显示
—并给原因 - 遥测默认关闭;当前没有上报服务端,反馈走「本地诊断包导出 + 去 GitHub 提 issue」
Apache License 2.0 © 2026 agentpit.io(见 NOTICE)。
启动器会在运行时下载并调用若干第三方程序(Colima、Lima、docker CLI、compose、 以及兜底链上的 OrbStack 与 Homebrew)——它们不随安装包分发,各自保留各自的许可证, 清单见 THIRD_PARTY_NOTICES.md。
被启动的 hunter-community 同为 Apache-2.0,两者独立授权。
A small cross-platform desktop app (Tauri 2 + React) that turns deploying
HunterCode Community Edition
from "clone the repo, edit .env, run docker compose" into
"download, paste one key, wait a few minutes."
Status: v0.1.9, prerelease. Installers for all three platforms are published on the
Releases page; they are unsigned,
so every release is marked as a prerelease and your OS will warn you the first time you open it
(see the Chinese section above for how to allow it). Linux is tested on real hardware;
Windows is CI-built only; macOS is verified by hand on the maintainer's own machine.
See docs/开发文档/总进度表.md for milestone progress.
It never asks you to open a terminal. From the single "Start installing" click onward you
do not touch anything: it detects the problem, works out the cause, and takes the best course of
action on its own, narrating every decision on screen. If this machine has no container runtime it
installs one for you — trying the least intrusive route first (a fully user-space runtime inside
~/.hunter/runtime), then the official OrbStack installer, and only last Homebrew (installing
Homebrew itself first if needed). When administrator rights are genuinely required, your operating
system shows its own password dialog — the launcher never draws a password box, never stores a
password, and never writes one to a log. It also reuses the network proxy you already configured
(read-only; it never modifies your network settings) and passes it to every subprocess and to the VM.
A half-finished previous install is not a problem (since 0.1.9). The launcher recognises what
its own earlier run left behind and continues that install rather than starting over: files that
still match their pinned checksums are reused byte for byte, corrupted ones are re-fetched, and a VM
that refuses to start is torn down and rebuilt. All of this happens strictly inside
~/.hunter/runtime — your ~/.colima, ~/.lima, ~/.docker/config.json, and anyone else's
containers and volumes are never touched. That is not a promise in prose: every colima command the
launcher emits is checked immediately before spawn, and one without the right COLIMA_HOME and
--profile is refused and written to the audit log.
What it does. Detects (or installs) a container runtime; validates a single
hunt_tools_ key against the Hunter gateway and shows your daily model quota; pulls the six
container images with real per-image progress; rewrites ports when they collide; starts the stack
and waits for all six services to report healthy; then lives in your system tray for
start / stop / restart / logs / upgrade / feedback.
One key for everything. The same hunt_tools_ key authenticates the LLM gateway, the market-data
gateway and the tools gateway — no third-party provider keys required. (Verified by measurement in M0.)
Platforms. Windows 10 21H2+/11 x64, macOS 12+ (Intel & Apple Silicon), Ubuntu 22.04+/Debian 12+ x64. Only Linux has a real test machine; Windows and macOS are validated by CI compilation and code review, and each milestone report says explicitly what was not tested on real hardware.
Relationship to hunter-community. This repo makes zero changes to hunter-community. The launcher is
a deployment-layer shell that consumes what upstream already publishes: docker-compose.yml,
.env.example, the healthchecks baked into the images, and the hunter.agentpit.io gateway API.
It shells out to the very same docker compose commands you would run by hand, so any failure is
reproducible without the launcher.
Privacy. Your key is stored only in ~/.hunter/app/.env (mode 600) and in memory — never logged,
never bundled into a diagnostic export, never committed. Telemetry is off and currently has no server
endpoint at all; feedback works by exporting a locally-redacted diagnostic bundle and opening a
pre-filled GitHub issue. Nothing in this app fabricates a number it could not measure.
Development. pnpm install && pnpm tauri dev. Requires Node 22+, Rust stable, and your platform's
Tauri 2 system dependencies. Documentation, commit messages, comments and UI copy are in Chinese
(code identifiers stay in English).
License. Apache License 2.0 © 2026 agentpit.io (see NOTICE). Third-party programs the launcher downloads and runs at install time — Colima, Lima, the docker CLI, compose, and the OrbStack / Homebrew fallbacks — are not redistributed with the installers and keep their own licenses; see THIRD_PARTY_NOTICES.md. hunter-community is Apache-2.0 and independently licensed.