首页/新闻资讯/正文详情

Hunk 安装指南:install script、npm、Homebrew、mise 与 Nix 五种方式的完整实践

发布时间:2026/9/25 17:32:25 来源:云帆数科 栏目:资讯中心
Hunk 安装指南:install script、npm、Homebrew、mise 与 Nix 五种方式的完整实践
开发工具代码评审CLIAI 应用【免费下载链接】hunkReview-first terminal diff viewer for agentic coders项目地址https://gitcode.com/gh_mirrors/hu/hunk点击查看免费下载Hunk 是一款面向 Agent 编码工作流的 review-first 终端 diff 查看器支持在 macOS、Linux 与 Windows 上运行。本文以官方安装文档为核心系统讲解五种安装途径的适用场景、参数用法、版本更新机制与安装验证方法并结合仓库源码说明校验、冲突检测与更新分发背后的实现原理帮助读者在任何平台上快速、安全地完成 Hunk 的部署与日常升级。平台支持与安装方式总览Hunk 官方支持 macOS、Linux 与 Windows 三种操作系统。不同平台的推荐安装方式如下安装方式适用平台是否自带运行时最低要求官方 install scriptmacOS、Linux是独立二进制无需 Node.js系统自带curl或wgetnpmhunkdiff包macOS、Linux、Windows否Node.js 22 及以上HomebrewmacOS、Linux是独立二进制Homebrew 环境misemacOS、Linux、Windows是独立二进制mise 2026.8.6WindowsNixflakeLinux、macOS是源码构建Nix 环境其中 install script 是 macOS 与 Linux 上的默认安装方式Windows 用户则需要通过 npm 或 mise 安装。从源码结构看这些方式大体可分为两类install script、Homebrew、mise 与 Nix 提供的都是自包含二进制不依赖 Node.js而 npm 安装则必须满足 Node.js 22 的运行时要求见 packages/hunk/package.json 中engines: { node: 22 }声明。无论选择哪种方式Git 都是推荐具备的前置条件因为最常见的 review 工作流都基于 Git 工作树展开。使用官方 install script 安装默认方式在 macOS 与 Linux 上默认安装脚本会为当前机器下载预编译二进制curl -fsSL https://hunk.dev/install.sh | sh hunk --version脚本执行后将二进制安装到~/.hunk/bin/hunk并把仓库内置的 agent skills 放在二进制同侧~/.hunk/skills这也是hunk skill path命令查找的位置同时将~/.hunk/bin追加到 shell 启动文件中以加入PATH。安装完成后需要重启 shell或在新终端中运行export PATH$HOME/.hunk/bin:$PATH才能直接使用hunk命令。校验机制SHA256SUMS 与条件性跳过当某个 release 发布时附带SHA256SUMS文件且机器上存在sha256sumLinux/macOS 常用或shasummacOS 自带时脚本会在安装前校验下载归档的校验和若校验工具缺失或该 release 未发布校验文件脚本会给出警告后继续安装。这一逻辑在 install.sh 中有明确实现脚本先尝试下载SHA256SUMS随后按sha256sum→shasum -a 256的顺序选择校验工具并仅在找到对应归档条目时执行-c校验否则警告 the archive checksum was not verified 而不会中断安装。安装脚本支持的配置项脚本接受以下设置来自官方文档表格并补充了 install.sh 中的解析细节设置效果HUNK_VERSION安装指定 release 而非最新版也可作为位置参数传入HUNK_INSTALL_DIR将二进制安装到该目录替代默认的~/.hunk/bin--no-modify-path或HUNK_NO_MODIFY_PATH1不修改 shell 启动文件--force或HUNK_ALLOW_CONFLICTING_INSTALLS1即使 PATH 或已知版本管理器目录中存在其他 Hunk 也继续安装HUNK_DISABLE_ANALYTICS1或DO_NOT_TRACK1让 release 发现直连 GitHub而不使用 Hunk 的聚合 release 端点常见用法组合# 安装指定版本0.19.0位置参数写法 curl -fsSL https://hunk.dev/install.sh | sh -s -- 0.19.0 # 不修改 shell 启动文件 curl -fsSL https://hunk.dev/install.sh | sh -s -- --no-modify-path # 允许与已有安装共存 curl -fsSL https://hunk.dev/install.sh | sh -s -- --force # 通过环境变量指定版本 curl -fsSL https://hunk.dev/install.sh | HUNK_VERSION0.19.0 sh冲突安装检测默认拒绝多副本默认情况下安装器会拒绝创建第二个 Hunk 安装它会逐一列出发现的冲突路径、版本与 PATH 优先级以及移除该安装的对应命令随后提示用户先移除这些安装只有在你确实需要管理多个副本时才应使用--force。从 install.sh 源码可以看到check_competing_installs会扫描 PATH 上的每一个hunk可执行文件还会额外 glob~/.nvm/versions/node/*/bin/hunk与 mise 的~/.local/share/mise/installs/hunk/*/hunk处理 nvm 全局安装与未激活版本并通过 install.sh 的competing_install_channel识别归属方——npm、Homebrew、mise、Bun、pnpm 等——再给出精确的卸载命令如npm uninstall -g hunkdiff、mise uninstall hunk、bun remove --global hunkdiff。自定义目录与后续更新在 Hunk 0.20 及更新版本上hunk update可以原地刷新默认安装。但使用HUNK_INSTALL_DIR重定向的安装无法在后续被自动识别该环境变量在 shell 退出后即消失因此这类安装的升级方式是带着相同的HUNK_INSTALL_DIR重新运行脚本——安装器在自定义目录安装结束时也会打印此提醒。对应逻辑可见 install.sh 中的 hunk update cannot auto-detect this custom install directory 提示。release 发现的隐私边界对于 curl 管理的安装默认的 install script 版本解析、启动时的自动更新检查、hunk update --check与hunk update都会经由 Hunk 的 release 端点https://updates.hunk.dev/v1/curl/latest。自动检查每个用户配置文件每 4 小时最多执行一次多进程并发时可能出现偶发重复而显式 update 命令与安装器执行始终立即生效。端点仅记录聚合的请求来源与当前版本字段Hunk 不发送安装 ID、仓库、主机名、cookie 或请求体HUNK_DISABLE_ANALYTICS1与DO_NOT_TRACK1会使 release 发现直连 GitHub任何端点故障也会回退到 GitHub。这一机制在 install.sh 的fetch_release_proxy中实现请求会携带X-Hunk-Request-Source: install与可选的X-Hunk-Current-Version头并用 5 秒超时保证代理故障时快速让位于 GitHub 直连回退。通过 npm 安装发布到 npm 的包名为hunkdiff全局安装即可npm install --global hunkdiff hunk --version该包同时暴露hunk与hunkdiff两个命令见 packages/hunk/package.json 中bin: { hunk: ./bin/hunk.cjs, hunkdiff: ./bin/hunk.cjs }文档统一使用hunk。npm 安装需要 Node.js 22 或更新版本bun与pnpm的全局安装同样受支持hunk update会通过 installSource.ts 的detectNpmClient自动识别实际写入全局安装的客户端避免用错误客户端重装导致旧二进制仍抢占 PATH。通过 Homebrew 安装macOS 与 Linux 用户可以直接从 Homebrew core 安装brew install hunk hunk --version如果此前使用过旧的modem-dev/tapformula请先卸载再安装brew uninstall modem-dev/tap/hunk brew install hunk通过 mise 安装mise 以短名hunk别名hunkdiff识别 Hunk并在 macOS、Linux、Windows 上安装预编译二进制mise use -g hunk hunk --versionWindows 上需使用 mise 2026.8.6 或更新版本更早版本会报unsupported env: windows/amd64。另外Hunk 也作为 Omarchy 的默认工具随其发行由 Omarchy 通过 mise 完成安装。通过 Nix 安装仓库从flake.nix导出default包。在 Hunk 的克隆目录中nix build ./result/bin/hunk --versionNix 安装属于源码构建其升级由 Nix 自身工具链管理详见下文更新章节。关于 Home Manager 模块与开发 shell 的细节可参考仓库的 nix/README.md——该文档提供了 flake input 引入、environment.systemPackages/home.packages用法、programs.hunk模块配置含enableGitIntegration将 Hunk 设为默认 Git pager以及nix run github:modem-dev/hunk -- --help直跑方式。验证安装安装完成后通过帮助命令验证hunk --help预期输出以Usage: hunk command [options]开头。如果 shell 无法找到 Hunk请确认全局 npm、Homebrew、mise 或~/.hunk/bin目录已在PATH中然后打开一个新 shell 重试。更新 Hunkhunk update 的完整语义自 Hunk 0.20 起hunk update是让 npm、Homebrew 与默认 install-script 安装升级到最新版的规范方式它会调用当初安装 Hunk 的包管理器hunk update # 安装最新 release hunk update --check # 仅检查不安装 hunk update 0.20.0 # 安装指定的 npm 或默认 install-script release若 Hunk 误判了安装方式可用--method显式指定--method npm、--method brew或--method curl。各安装方式的更新归属npm含 bun/pnpm 全局安装原地更新实际执行的命令取决于检测到的客户端npm install --global、bun add --global或pnpm add --global见 selfUpdate.ts。Homebrew原地执行brew upgrade hunkHomebrew 安装无法指定精确版本见 selfUpdate.ts 的报错逻辑。默认 install-script 安装重新运行安装器并带上目标版本通过子进程环境变量HUNK_VERSION传递见 selfUpdate.ts并沿用与前述一致的条件性校验和验证。mise、Nix 与本地源码构建不属于 Hunk 自己管理的范围分别改用mise up hunk、Nix 配置或bun run install:binhunk update会打印对应指引并退出非--check时返回非零码。自定义HUNK_INSTALL_DIR同样需要带着相同目录重新运行安装器。安装来源的自动识别原理hunk update与启动时的更新提示共用同一套来源判定逻辑见 installSource.ts先读取显式声明的HUNK_INSTALL_SOURCE环境变量再按最强信号依次匹配/nix/store/路径前缀、mise 的mise/installs目录结构、Homebrew 的Cellar/homebrew/linuxbrew路径段并排除node_modules以避免把 Homebrew 前缀下由 npm 拥有的全局包误判、install script 的.hunk/bin相邻路径段本地源码构建则通过~/.local/bin或 Windows 的 Programs 目录及未打标签的版本号识别最终兜底判定为 npm。更新检查的节流与静默来源启动时的自动更新检查对每个用户配置文件每 4 小时最多执行一次STARTUP_RELEASE_CHECK_INTERVAL_MS 4 * 60 * 60 * 1000见 updateNotice.ts检查结果会持久化到应用状态文件以避免重复请求。同时mise、pacman 与本地源码构建SILENT_INSTALL_SOURCES不会弹出更新提示——mise 安装由 omarchy 在启动前已通过mise use -g aqua:modem-dev/hunk完成升级源码构建则由开发者自己的重建流程管理见 updateNotice.ts。若需在 CI 等确定性场景中彻底关闭启动提示可设置HUNK_DISABLE_UPDATE_NOTICE1updateNotice.ts。版本渠道查询各渠道各查各的源版本查询严格遵循哪个渠道安装、就查哪个渠道的源见 latestRelease.tsnpm 安装读取hunkdiff包的 dist-tagslatest与betaHomebrew 安装读取 Homebrew formula APIcurl 安装读取 Hunk release 端点默认或 GitHub releases API直连回退。Nix、mise 与源码构建则不会借用其他渠道的版本号因此 Homebrew 用户不会再看到brew尚无法安装的 release。各安装方式的更新速查表安装方式更新命令说明npm / bun / pnpm 全局安装hunk update原地更新支持指定版本Homebrewhunk update原地brew upgrade hunk不支持指定版本install script默认目录hunk update重跑安装器并沿用校验install script自定义HUNK_INSTALL_DIR带相同目录重跑安装器无法被自动识别misemise up hunk由 mise 管理Nix更新 flake input / Nix 配置由 Nix 管理本地源码构建bun run install:bin重建 checkout小结Hunk 的安装体系围绕平台适配与安装归属清晰两个原则设计macOS/Linux 默认走自包含二进制的 install scriptWindows 走 npm 或 mise安装脚本内置 SHA256SUMS 校验、冲突安装检测与匿名 release 发现机制hunk update则严格按安装来源委派给对应的包管理器确保无论哪种方式安装都能找到正确的升级路径。完成安装后可继续阅读官方快速上手文档开始你的首次工作树 reviewreview your first working tree。赞分享开发工具代码评审CLIAI 应用【免费下载链接】hunkReview-first terminal diff viewer for agentic coders项目地址https://gitcode.com/gh_mirrors/hu/hunk点击查看免费下载相关推荐templ 安装完全指南五种官方安装方式详解与验证go install / 工具指令 / Nix / Dockertempl 安装完全指南五种官方安装方式详解与验证go install / 工具指令 / Nix / Docker templ 是一门用于在 Go 中编写开发工具代码生成后端ik_llama.cpp 预编译安装指南Homebrew、Nix 与 Flox 三种方式详解ik_llama.cpp 预编译安装指南Homebrew、Nix 与 Flox 三种方式详解 本篇技术指南围绕仓库 docs/install.md https人工智能大模型推理引擎本地部署模型量化为什么 HIVM 要引入 custom_macro? 跨 Pipe 宏操作完整入门指南为什么 HIVM 要引入 custom_macro? 跨 Pipe 宏操作完整入门指南 custom_macro 是 HIVM 方言里专门描述跨 Pipe 协后端任务调度工作流自动化上一篇OpenSEO 创始人 SEO 手册从市场研究到早期排名的完整实战路径下一篇Cilium 与 Oracle OKE VCN-Native Pod Networking 的 CNI Chaining 接入指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Win10安装IE11全攻略:离线安装、Edge IE模式与报错排查
Win10安装IE11全攻略:离线安装、Edge IE模式与报错排查

2024年了,还在认真研究 Win10 装 IE11 的人,十个里有八个是被老系统逼的,剩下两个是被领导、财务或客户逼的。我这两年做企业IT维护,每个月都要碰见几台必须跑IE的电脑——银行U盾登录、旧OA审批、老版本ERP、监控平台&#xff0c… · 2026/9/25 17:32:06

5000元预算DIY装机:高性价比配置单与避坑指南
5000元预算DIY装机:高性价比配置单与避坑指南

5000块钱装一台电脑,现在到底能配到什么水平?这个问题我这两年被人问了不下上百回——有大学生想赶在开学前配一台能带去宿舍的台式机,有刚工作的年轻人想换台既能打游戏又能干活的主机,还有替孩子过来打听行情的家长。我的回答一… · 2026/9/25 17:32:00

BlockNote 表格混合列宽的 Markdown 导出:从 columnWidths 到 GFM 快照的完整链路解析
BlockNote 表格混合列宽的 Markdown 导出:从 columnWidths 到 GFM 快照的完整链路解析

前端富文本UI组件AI 应用 【免费下载链接】BlockNote A React Rich Text Editor thats block-based (Notion style) and extensible. Built on top of Prosemirror and Tiptap. 项目地址: https://gitcode.com/gh_mirrors/bl/BlockNote 点击查看 免费下载 本文以 B… · 2026/9/25 17:31:42

Unity自研轻量级Frame框架:模块化架构与事件驱动实战
Unity自研轻量级Frame框架:模块化架构与事件驱动实战

1. 为什么自研Frame而不是直接抄一个现成框架大概三年前,我的Unity3d项目到了一个让我自己都看不下去的状态:UI界面之间互相new、逻辑散落在各个MonoBehaviour的Update里、想改一个弹窗的显示顺序要翻遍七八个文件。代码量不过十几万行,可每次… · 2026/9/25 18:02:11

快马AI:用中文一句话生成ayx·爱游戏风格交互网页
快马AI:用中文一句话生成ayx·爱游戏风格交互网页

1. 这不是“写网页”,而是用快马AI启动你的第一个可交互数字作品快马AI、ayx爱游戏式网页互动程序、HTML、CSS、JavaScript——这几个词最近在新手技术圈里高频出现,但很多人点开教程后发现:要么是教你怎么手敲500行代码从零搭骨架&#xff0… · 2026/9/25 18:02:11

R3nzSkin原理揭秘:内存钩子与LOL皮肤实时替换技术
R3nzSkin原理揭秘:内存钩子与LOL皮肤实时替换技术

1. 这不是“外挂”,而是一次对游戏客户端底层机制的深度理解实践R3nzSkin这个名字在英雄联盟玩家社区里,尤其是那些喜欢自定义角色外观、研究客户端技术边界的群体中,已经流传了多年。它不是一个点击即用的傻瓜式皮肤切换器,而是一… · 2026/9/25 18:02:05

Atlas 300V Pro 24GB部署YOLO全流程:从ONNX转换到NPU推理实战
Atlas 300V Pro 24GB部署YOLO全流程:从ONNX转换到NPU推理实战

Atlas 300V 24G是不是运算加速卡,很多人一上来就问错了。它确实是用来做运算加速的,但不是你脑子里想的那种通用GPU加速卡。搞清楚这个问题,是部署YOLO之前最值钱的一步,因为这会直接决定你后面整个技术路线的选择。我过去一年用A… · 2026/9/25 18:02:05

甜品经营模拟游戏《Sugar Service Game》的服务机制设计全记录
甜品经营模拟游戏《Sugar Service Game》的服务机制设计全记录

把“Sugar Service Game”当项目标题看了很久,最终做成了一款PC端的甜品经营模拟游戏:玩家扮演街角甜品店的店员兼店长,接待形形色色的顾客,通过观察、对话、制作甜品和交付服务来推进经营与故事。这个项目名字拆开看很直白——Su… · 2026/9/25 18:02:05

palera1n 越狱完整指南:旧 iPhone 这样越狱最稳
palera1n 越狱完整指南:旧 iPhone 这样越狱最稳

palera1n 越狱完整指南:旧 iPhone 这样越狱最稳 【免费下载链接】palera1n Jailbreak for A8 through A11, T2 devices, on iOS/iPadOS/tvOS 15.0, bridgeOS 5.0 and higher. 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n palera1n 是一款基于… · 2026/9/25 18:02:05

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码