Claude-skill-registry bitwarden

Manage passwords and credentials via Bitwarden CLI (bw). Use for storing, retrieving, creating, or updating logins, credit cards, secure notes, and identities. Trigger when automating authentication, filling payment forms, or managing secrets programmatically.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/bitwarden-majiayu000-claude-skill-registr" ~/.claude/skills/majiayu000-claude-skill-registry-bitwarden && rm -rf "$T"
manifest: skills/data/bitwarden-majiayu000-claude-skill-registr/SKILL.md
source content

Bitwarden CLI

Full read/write vault access via

bw
command.

Prerequisites

brew install bitwarden-cli
bw login <email>  # one-time, prompts for master password

Session Management

Bitwarden requires an unlocked session. Use the helper script:

source scripts/bw-session.sh <master_password>
# Sets BW_SESSION env var

Or manually:

export BW_SESSION=$(echo '<password>' | bw unlock --raw)
bw sync  # always sync after unlock

Common Operations

Retrieve credentials

bw get password "Site Name"
bw get username "Site Name"
bw get item "Site Name" --pretty | jq '.login'

Create login

bw get template item | jq '
  .type = 1 |
  .name = "Site Name" |
  .login.username = "user@email.com" |
  .login.password = "secret123" |
  .login.uris = [{uri: "https://example.com"}]
' | bw encode | bw create item

Create credit card

bw get template item | jq '
  .type = 3 |
  .name = "Card Name" |
  .card.cardholderName = "John Doe" |
  .card.brand = "Visa" |
  .card.number = "4111111111111111" |
  .card.expMonth = "12" |
  .card.expYear = "2030" |
  .card.code = "123"
' | bw encode | bw create item

Get card for payment automation

bw get item "Card Name" | jq -r '.card | "\(.number) \(.expMonth)/\(.expYear) \(.code)"'

List items

bw list items | jq -r '.[] | "\(.type)|\(.name)"'
# Types: 1=login, 2=note, 3=card, 4=identity

Search

bw list items --search "vilaviniteca" | jq '.[0]'

Item Types

TypeValueUse
Login1Website credentials
Secure Note2Freeform text
Card3Credit/debit cards
Identity4Personal info

References

Tips

  1. Always sync after creating/editing items:
    bw sync
  2. Session expires — re-unlock if you get auth errors
  3. Delete sensitive messages after receiving credentials
  4. Card numbers may not import from other managers (security restriction)