/install headless-bitwarden
Headless Bitwarden (rbw) — Skill (addon)
Goal: safely retrieve secrets from Bitwarden without pasting passwords/tokens into chat.
This skill is intentionally small and non-overlapping:
- Use the existing Bitwarden skill for installation / account setup.
- This skill only adds an ephemeral remote unlock web helper for
rbw.
This skill standardizes a workflow around:
rbw(local encrypted cache + unlock)- an ephemeral unlock web helper that you can start on-demand and shut down automatically.
Core rules (must)
- Never paste secrets into chat
- No master password, no session keys, no JSON secrets.
- Ephemeral by default
- Unlock helper must be localhost-only, token-gated, and auto-expire.
- Default TTL: 600s (10 minutes).
- No secret logging / no secret persistence
- Do not log request bodies.
- Do not write secrets to disk.
- Always restore rbw config
- If a temporary
pinentryoverride is used, it must be restored even on failure.
Prereqs
- Follow the workspace Bitwarden skill for setup (install, register/login):
skills/bitwarden/SKILL.md
- Additional requirements for the unlock helper:
rbwinstalled and registered/logged-in (device approved)nodeavailablebash- Optional (recommended for remote):
cloudflared(for an ephemeral HTTPS URL)
Fast paths
A) If the vault is already unlocked
rbw unlocked
rbw sync
rbw search "\x3Ckeyword>"
rbw get "\x3Citem name>" --field "\x3Cfield name>"
B) If the vault is locked: start the ephemeral web unlock helper
From your workspace:
TTL_SECONDS=600 SYNC_AFTER_UNLOCK=1 \
skills/headless-bitwarden/scripts/rbw-remote-unlock/start.sh
You will see:
Local URL: http://127.0.0.1:\x3Cport>/\x3Ctoken>/- If
cloudflaredexists: aPublic URL: https://\x3Crandom>.../\x3Ctoken>/
Open the Public URL on your phone/laptop, enter the master password, and press Unlock. The helper will:
- run
rbw unlock - respond to the browser as soon as
rbw unlockfinishes - optionally run
rbw syncafter the browser response (so the page shouldn’t spin) - exit immediately on success (or auto-exit on TTL)
Security notes (residual risk, be explicit)
Even with HTTPS tunnel and no logs, this is not “zero risk”. Remaining risks include:
- password exists briefly in process memory
- password is passed briefly to a child process via env (in same-user scope)
- token URL leakage during TTL would allow access to the form
- tunnel provider is within the trust boundary (even though traffic is HTTPS)
Mitigations implemented:
- localhost bind only (
127.0.0.1) - high-entropy path token
- request body size limit
- no request-body logging
- TTL auto-exit + exit-on-success
- pinentry override always restored
Treat the Public URL as sensitive
The Public URL includes the one-time token. Anyone who obtains it during the TTL window can access the unlock form.
- Do not paste the Public URL into GitHub issues, logs, screenshots, or shared channels.
- Share it only to the person who is unlocking, and only for that one session.
Autofill note
The password input is configured to discourage browser/password-manager autofill (best-effort), but some managers may still try to fill. If you want to avoid accidental autofill, use a private/incognito window or temporarily disable the password manager for that page.
Retry / “unlock in progress” note
An unlock attempt can take a bit of time. If you submit twice quickly, you may see an “unlock attempt already in progress” message. Wait for the attempt to finish (default timeout is ~30s) before retrying.
Files
Implementation lives in:
skills/headless-bitwarden/scripts/rbw-remote-unlock/{start.sh,server.mjs,pinentry.sh}
Troubleshooting / operational notes
pinentry restore reliability
The helper does not call rbw config set/unset (which can hang in non-interactive environments). Instead, it temporarily edits:
~/.config/rbw/config.json→pinentry: \x3Cpath-to-pinentry.sh>
and then restores it back.
If something crashes mid-flight, the quickest manual recovery is:
rbw config set pinentry pinentry
Agent state
If rbw unlocked says agent not running, restart/refresh the agent by running:
rbw stop-agent || true
rbw unlocked
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install headless-bitwarden - 安装完成后,直接呼叫该 Skill 的名称或使用
/headless-bitwarden触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Headless Bitwarden 是什么?
Extension for Bitwarden usage: adds an ephemeral HTTPS web unlock helper for rbw (TTL default 10m) so you can unlock remotely without pasting secrets into chat. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 138 次。
如何安装 Headless Bitwarden?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install headless-bitwarden」即可一键安装,无需额外配置。
Headless Bitwarden 是免费的吗?
是的,Headless Bitwarden 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Headless Bitwarden 支持哪些平台?
Headless Bitwarden 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Headless Bitwarden?
由 Hans(@hans00)开发并维护,当前版本 v1.0.2。