LucidShark
Local code quality and security scanner: lint, types, SAST, SCA, tests, coverage.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Team secrets your AI agent can use but never read: encrypted in the repo, value-blind tools.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"hush": {
"command": "npx",
"args": [
"-y",
"@omarei/hush",
"mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add hush -- npx -y @omarei/hush mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"hush": {
"command": "npx",
"args": [
"-y",
"@omarei/hush",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"hush": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@omarei/hush",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub omarei-omoto ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.13.2) เข้า registry 21 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี LucidShark, Threatist, Draugr
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Local code quality and security scanner: lint, types, SAST, SCA, tests, coverage.
Vulnerability records: CVE, GHSA, CISA KEV, EPSS and vendor fixes in one place. No key needed.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Envelope-encrypted team secrets your AI agent can use but never read.
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.
hush init acme # a vault in .hush/vault.json — commit it
hush add .env --as "Dev" # your existing secrets, now encrypted, as a set called dev hush npm run dev # injected into the process, never onto disk hush team add sam hush_pk_1xM… # commit; sam can decrypt. no invite email. hush team rm sam # re-keys the vault, re-seals every value
[!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](https://github.com/omarei-omoto/hush/security/advisories/new)
rather than opening an issue.
One file, no Node needed — macOS, Linux (glibc and musl), and Windows (beta):
curl -fsSL https://raw.githubusercontent.com/omarei-omoto/hush/main/scripts/install.sh | sh
brew install omarei-omoto/tap/hush
irm https://raw.githubusercontent.com/omarei-omoto/hush/main/scripts/install.ps1 | iex
scoop install https://github.com/omarei-omoto/hush/releases/latest/download/hush.json
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:
npm install -g @omarei/hush
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):
git clone https://github.com/omarei-omoto/hush.git
cd hush && node src/cli.ts --help
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.
cd your-project
hush 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
.env
file 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:
hush init # creates your key + a vault, safe to commit
hush add .env --as "Dev" # what you already have, encrypted, as a set called dev rm .env # you don't need it any more git add .hush && git commit -m "encrypted secrets"
From now on, put hush in front of whatever you run:
hush npm run dev # anything after hush runs with the secrets injected
hush dev # or: find package.json and run its dev script
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:
hush scan --agents # plaintext keys in your agents' config files; --fix moves them into hush
hush scan --transcripts # your keys in agents' saved conversations (read-only)
Agents on other machines (a server, a devcontainer) can use keys that stay on yours: hush on a tailnet.
.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:
| What it gets right | What it costs you | |
|---|---|---|
| SOPS / age | per-recipient crypto, real revocation | no idea agents exist; YAML and key juggling |
| secretctl | the agent story | explicitly single-user |
| dotenvx / nevr-env | encrypted file in git | one key for the whole team, so no real revocation |
| 1Password CLI + MCP | real vault, real hardware, real audit, agent access | an account and a subscription for everyone on the team |
| Doppler / Infisical + MCP | proper secrets management, agent access | a server to run or seats to buy |
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.
Everything else is in the guide — on GitHub under docs/guide, or as a site at [tryhush.dev](https://tryhush.dev/).
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.
Security problems do not go in issues. Open a private advisory instead.
MIT — see LICENSE.