Skip to content

工具推薦|KRU — 讓 Agent 用密碼,但看不到密碼本身

2026年9月5日 1 分鐘
TL;DR KRU 是一個本地優先的 MCP 憑證管理器,讓 Codex、Claude Code、Cursor 這類 Agent 能用你存好的密碼、API key、SSH 金鑰、TOTP 完成登入或連線,但密碼明文不會回傳進對話。下載安裝:GitHub Releases 的免安裝執行檔。解決了『Agent 卡在登入頁或 SSH 密碼提示,你只能中斷任務手動輸入或把密碼貼進對話』的問題。
目錄
  1. 工具資訊
  2. 解決什麼問題
  3. 快速上手
    1. 安裝
    2. 基本用法
    3. 進階用法
  4. 與現有工具的比較
  5. 注意事項
  6. 今日收穫
  7. 參考資料

🌏 English version

工具資訊

項目
名稱KRU
類型本地 MCP server + 憑證保險箱(桌面 App)
GitHubomaekumiko2-create/kru
Stars126
語言Rust(Tauri)
授權MIT
安裝GitHub Releases 下載對應平台的免安裝執行檔

解決什麼問題

你是否讓 Agent 跑一個部署或爬蟲任務,跑到一半它撞上登入頁、SSH 密碼提示,或需要帶 API key 的呼叫,然後就卡住了?這時候通常只有兩個選項:自己接手打密碼打斷心流,或是把密碼明文貼進對話讓 Agent 接著做——後者等於把一個真實密碼寫進 model context,如果用的是第三方 client 或 model endpoint,這串明文可能就這樣進了對方的日誌或訓練資料池。

KRU 是一個跑在本機的 stdio MCP server,先把密碼、API key、SSH 私鑰、TOTP 種子存進本機加密的保險箱(XChaCha20-Poly1305),再讓 Agent 用「項目名稱」而不是密碼本身去操作。Agent 呼叫 credential_fill 之類的工具說「幫我用 Production Server 這個項目登入」,KRU 在本地把值填進瀏覽器欄位、跑 SSH 指令、或組出帶認證的 HTTP request,密碼本身預設是「Hidden」——工具能用它,但它不出現在回傳給 model 的內容裡。每個欄位(帳號、密碼、金鑰、TOTP、自訂欄位)的可見性是分開開關的,不是整個項目一刀切。

適合場景:部署腳本需要 SSH 到正式機、Agent 要呼叫需要 API key 的服務、瀏覽器自動化撞到登入表單、任何你不想把明文密碼餵進對話歷史的重複性認證步驟。

快速上手

安裝

# 直接下載免安裝版本(推薦)
# Windows / macOS / Linux 分別對應 .zip / .app / .tar.gz
# https://github.com/omaekumiko2-create/kru/releases/latest

# 或從原始碼建置(需要 Rust 1.88+、Node.js 22+、Tauri 2 前置需求)
git clone https://github.com/omaekumiko2-create/kru
cd kru
npm install
npm run build
npm run portable

基本用法

打開 KRU 桌面 App 後,在 Settings → Agent connection 選你用的 client(Codex / Claude Code / Cursor / OpenCode / OpenClaw 可自動偵測並寫入設定),存一個項目(例如取名「Production Server」),接著在對話裡直接說:

Use "Production Server" in KRU MCP to deploy the current build and verify the service.

Agent 背後實際呼叫的 MCP 工具:

items_search(query?)   → 找出可用的項目、欄位與可執行的動作
credential_fill        → 把某個欄位的值填進目前聚焦的輸入框
ssh_run / ssh_upload / ssh_download → 用存好的密碼或私鑰跑指令、傳檔案
http_send              → 帶著存好的認證送出 HTTP request
terminal_run           → 跑一次性本機指令,可用 {{kru:欄位名稱}} 帶入隱藏值

進階用法

// 手動設定 stdio MCP(如果 client 沒被自動偵測到)
{
  "mcpServers": {
    "kru": {
      "command": "/absolute/path/to/kru",
      "args": ["mcp", "stdio"]
    }
  }
}

也可以直接印出設定範本:

kru config stdio-json
kru config stdio-toml

與現有工具的比較

KRU密碼直接貼進對話系統/瀏覽器密碼管理器(1Password CLI 等)環境變數 / .env
密碼明文不進入 model context部分(op run 仍會把值注入 process env)
Agent 能自主決定何時用哪個憑證✅(依項目名稱與動作自動比對)❌(需你先手動注入)❌(需你先手動注入)
支援 SSH / SFTP / HTTP 認證等多種動作部分
需要雲端帳號或訂閱視方案而定
欄位級(而非整項)可見性控制

注意事項

  • 不是沙箱:README 自己講得很清楚,KRU 不判斷 Agent 下達的指令安不安全,也不防禦惡意 Agent 或已經被入侵的機器/瀏覽器——它只保證密碼明文不回傳進對話,不保證 Agent 用密碼做的事是你想要的事。
  • SSH 不驗證主機指紋:KRU 支援密碼與私鑰認證,但不會 pin 或比對 SSH host fingerprint,中間人風險要自己另外處理。
  • Visible 開關會真的洩漏明文:欄位預設 Hidden,但你可以手動切成 Visible 讓值回傳給 model——切了之後跟直接貼密碼沒兩樣,只是變成一個要記得關掉的開關。
  • 專案還很新:2026-08-24 才建立,126 stars、6 forks,作者自己在發佈文裡也講「只用了自己一兩週」,介面和 MCP 工具介面可能還會變動。

今日收穫

一般對「Agent 不能碰密碼」的直覺解法是整條線切斷——不讓 Agent 碰任何憑證,全部人工介入。KRU 的做法是把「能不能用」跟「看不看得到明文」拆成兩個獨立開關:Agent 可以觸發登入、SSH、API 呼叫這些真實動作,但明文只在 KRU 本地那一步短暫存在,對 model 來說整個過程是「幫我做了這件事」而不是「這是密碼」。這個欄位級可見性設計,比起單純「全有或全無」的憑證存取模型,更貼近真實工作流程裡「我要你能用,但我不要你看到」的需求。

參考資料