
hush
io.github.omarei-omoto由 GitHub 账号 omarei-omoto 发布v0.13.2更新于 Oct 24, 2026
Team secrets your AI agent can use but never read: encrypted in the repo, value-blind tools.
概览
一个本地 MCP 服务器,让 AI 编程助手以“看不到值”的方式使用加密存放在仓库内的团队密钥,可用而不可读。
- 可以做什么
- 提供工具,让助手使用仓库保险库中的加密密钥执行需要密钥的命令和流程,而不暴露密钥值。管理保险库:初始化、把现有 .env 密钥导入为命名集合,并提交到仓库。管理团队访问:添加或移除成员,移除时会重新加密保险库并重新封装所有值。运行进程时仅向该进程注入密钥,不写入磁盘或 shell。扫描助手配置文件和已保存对话中的明文密钥,并可将发现的密钥移入保险库。
- 适用场景
- 适合把 API 密钥放在 .env 文件里的个人开发者或小团队,希望编程助手能使用这些密钥,而密钥值不进入其上下文或对话记录。也适合希望把加密密钥提交到 git、按人授权且无需账号、服务器或订阅的场景。不适合需要动态凭证、租约、过期或不可篡改审计日志的场景。
- 运行要求
- 作为本地进程在用户桌面运行;Windows 支持处于测试阶段。可从 npm 安装(需 Node 22.6 或更高版本),或使用 macOS、Linux、Windows 的单文件二进制。无需账号、服务器或共享密码,以 git 仓库作为后端。
安装
在 SourceWeft 中
- 打开 控制台中的 hush,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Envelope-encrypted team secrets your AI agent can use but never read.
[CI] [npm] [node] [license] [runtime deps] [OpenSSF Best Practices]
You keep your API keys in a .env file. It is plaintext, every process you
launch can read it, and the day you pointed an AI coding agent at the repo it
went into the agent's context window — and from there, wherever transcripts go.
hush fixes that without a server, an account, or a shared password. Your
secrets live encrypted inside the repo itself. hush npm run dev puts them
in that one process and nowhere else. Your coding agent gets tools that can
use a key but never read one. A teammate gets access with one command, and
removing them re-encrypts everything. Zero dependencies; one npm install.
[!IMPORTANT] Status: early. This works and is heavily tested, but it is pre-1.0, it has one author, and it has not had an external security review. The crypto is a standard construction (age's, rebuilt on
node:crypto) rather than anything invented here, and there is a differential test suite against an independent reimplementation — but that is not the same as someone qualified having looked at it. docs/REVIEW-SCOPE.md is the brief for the review it needs.Development happens on macOS; Linux is covered by CI. Windows is in beta: your key is kept with DPAPI, approvals are a native Windows dialog,
hush run npm …works throughnpm.cmd, secret files get owner-only ACLs, and there is a PowerShell hook — a Windows CI job checks those paths, but it has not had much real use yet. Fingerprint approval (Windows Hello) is not there yet. Tell me what broke if you try it somewhere unusual.Found a way to read a vault you should not? Please report it privately rather than opening an issue.
Install
One file, no Node needed — macOS, Linux (glibc and musl), and Windows (beta):
The installer refuses a binary whose sha256 is not the one in the release's
SHA256SUMS, checks its build-provenance attestation too when the GitHub CLI is
signed in, and installs to ~/.local/bin without sudo. To check a download by
hand: gh attestation verify hush-darwin-arm64 --repo omarei-omoto/hush.
Or from npm, with Node ≥ 22.6:
From a clone there is no build step — Node ≥ 22.18 runs the TypeScript directly
(on 22.6–22.17, run npm run build first):
Why the published package ships compiled output
Node will not strip TypeScript types for anything under node_modules, so an
installed copy cannot run src/. The tarball ships JavaScript in dist/ (built
by npm run build, run automatically by prepack). The hush command decides
by where it lives, not by what exists: under node_modules it runs dist/; in
a checkout (including one npm linked) it runs src/, so a stale build can
never shadow your edits. Still zero runtime dependencies.
Quick start
That is the whole thing. It looks for your keys, gets them in, asks whether an
AI assistant will be near them, and offers to run your project. A few questions,
nothing you have to know already. Run it again any time: it picks up whatever
is left, and hush setup shows where you are.
Or let your coding agent set it up. Paste this into Claude Code, Codex or Cursor:
Set up hush in this project. Run
hush setup --jsonand follow it: run each step's command as written, ask me in the chat for anything marked "choice", and for anything marked "person", run it and wait for me. Never open a.envfile or ask me for a key in the chat.
Anything that needs you, such as a new key or deleting a .env, asks you on
your own screen, not in the chat. More in
Setting up.
Prefer to see every step yourself? The same thing, by hand:
From now on, put hush in front of whatever you run:
Secrets exist in that process's environment and nowhere else. Not on disk, not in your shell, not in your scrollback.
Then a quick checkup of what is already out there:
Agents on other machines (a server, a devcontainer) can use keys that stay on yours: hush on a tailnet.
Why this exists
.env files have quietly become the worst artifact in your repo. They are
plaintext, they are readable by every process you launch, and they are now
routinely slurped into an LLM's context — researchers caught a coding agent
uploading whole repos with .env credentials verbatim and
unredacted.
The existing tools each cover part of this:
hush is the local, free, no-account option, not a replacement for the last two. If your team already pays for 1Password or Doppler, their MCP servers do what hush does with better hardware and a real audit trail — use them. hush is for the solo developer and the small team who want age's security model and an agent that cannot read a value, with nothing to sign up for and nothing to deploy: the git repo is the backend.
Where the line is: the moment you need dynamic credentials, leasing, expiry, or an audit log someone else cannot edit, you have outgrown a file in git. hush will not get you there and does not pretend to. Full comparison in RESEARCH.md.
Documentation
Everything else is in the guide — on GitHub under docs/guide, or as a site at tryhush.dev.
- Using it — Sets · Coming from another tool · Several keys for one service · Running things · Credentials that are a file · The app · The shell hook (including Nushell)
- Checking config — What a value should look like · Finding what a codebase needs
- Agents — Connecting your agent · What your agent gets · Adding a key off-transcript · Approvals · Policy
- Your team — Adding someone · Only some sets · Removing someone · Membership changes · Merging · CI · After someone leaves
- Hardening — The security ladder · Touch ID · Hardware keys
- Reference — Commands · How the crypto works · What hush does not do · The approval relay · Architecture · Hardware unlock
- Trust — SECURITY.md (threat model, reporting) · Review scope · Red team · Every defect found · RESEARCH.md
Contributing
Very welcome, especially: running it somewhere I cannot (Linux, Windows, a YubiKey I do not own), finding a way to get a value out that should not come out, or telling me where it confused you.
- CONTRIBUTING.md — how to set up, and the bar for a change
- docs/ARCHITECTURE.md — how it fits together, and the tests that hold it
- Development — running the suite, the fuzzers and the binary
- CODE_OF_CONDUCT.md — Contributor Covenant 2.1
- SECURITY.md — threat model, and how to report a vulnerability
- docs/AUDIT.md — every defect found so far, and what changed
Security problems do not go in issues. Open a private advisory instead.
License
MIT — see LICENSE.
来源:README.md,提交 47b1c22
工具
0版本历史
6- v0.13.2最新Oct 18, 2026
- v0.13.1Oct 14, 2026
- v0.12.0Oct 5, 2026
- v0.11.1Oct 4, 2026
- v0.10.0Oct 1, 2026
- v0.9.0Sep 30, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分