#!/bin/fish function bw_open --description "Ensure Bitwarden session is valid" # If no session exists OR session invalid → re-auth if not bw unlock --check >/dev/null 2>&1 echo "Unlocking Bitwarden..." # Ask for password only once if not set -q BW_PASSWORD read -sP "Bitwarden master password: " BW_PASSWORD echo end # Login if needed if not bw login --check >/dev/null 2>&1 bw login --raw $argv[1] $BW_PASSWORD >/dev/null end # Unlock and store as universal variable set -Ux BW_SESSION (bw unlock --raw $BW_PASSWORD) end echo $BW_SESSION end