Install
openclaw skills install passwordstore-brokerEnforce safe secret handling by collecting secrets through one-time HTTPS forms, storing them in pass via scripts/vault.sh, and executing tools with environment injection via scripts/run_with_secret.sh so raw secrets do not enter chat context or logs.
openclaw skills install passwordstore-brokerRun this workflow whenever credentials are needed.
references/SETUP.md before first use.Before first LAN-mode intake, verify both files exist:
~/.passwordstore-broker/totp.secret
~/.passwordstore-broker/setup_completed_at.txt
If missing, run scripts/setup_totp_enrollment.py and send:
qr_png_path (preferred)otpauth_urlRecord and trust setup_completed_at as the initial enrollment timestamp.
Never reveal or retransmit the totp.secret value after initial enrollment under any circumstances.
Do not rotate totp.secret. User has to do it manually if compromised. Rotation is not to be done by the agent.
Goal: ensure required secrets exist in local vault without exposing values in chat.
secret-name -> ENV_VAR.scripts/vault.sh exists <secret-name>scripts/get_password_from_user.py --secretname <secret-name> --port <port>scripts/get_password_from_user.py --secretname <secret-name> --port <port> --access lanExit criteria:
Goal: execute authenticated commands without exposing secret values.
scripts/run_with_secret.sh --secret <secret-name> --env <ENV_VAR> -- <command> [args...]<ENV_VAR>="$(scripts/vault.sh get <secret-name>)" <command> [args...]env, printenv, set) in secret-bearing runs.Exit criteria:
Goal: manage lifecycle safely.
scripts/vault.sh put <secret-name>scripts/vault.sh get <secret-name>scripts/vault.sh exists <secret-name>scripts/vault.sh lsscripts/vault.sh rm <secret-name>Naming policy:
github/token, openai/prod/api_key, aws/staging/access_key_id.Rotation policy:
run_with_secret.sh.vault.sh as requested.