Skip to content

Instantly share code, notes, and snippets.

@Opa-
Created December 18, 2024 10:53
Show Gist options
  • Save Opa-/b828995590ca79e653a01c63bbaca64f to your computer and use it in GitHub Desktop.
Save Opa-/b828995590ca79e653a01c63bbaca64f to your computer and use it in GitHub Desktop.
How to use Bitwarden CLI with macOS Touch ID (Fish)
set -x BW_USER '<YOUR-USER>'
function bw
set bw_exec (which bw)
set -x NODE_OPTIONS --no-deprecation
set -g bw_session_file '/var/root/.bitwarden.session'
set -g err_token_not_found "Token not found, please run bw --regenerate-session-key"
function _read_token_from_file
switch $argv[1]
case --force
set -e bw_session
end
if test "$bw_session" = "$err_token_not_found"
set -e bw_session
end
if test -z "$bw_session"
set -g bw_session (sudo cat $bw_session_file 2>/dev/null)
if test "$status" -ne 0
echo "$err_token_not_found"
sudo -k # De-elevate privileges
return 1
end
sudo -k # De-elevate privileges
if test "$bw_session" = "$err_token_not_found"
echo "$err_token_not_found"
return 1
end
end
end
switch $argv[1]
case --regenerate-session-key
echo "Regenerating session key, this has invalidated all existing sessions..."
sudo rm -f $bw_session_file && $bw_exec logout 2>/dev/null
$bw_exec login $BW_USER --raw | sudo tee $bw_session_file 2>/dev/null
_read_token_from_file --force
sudo -k
case login logout config
$bw_exec $argv
case --help -h ''
$bw_exec $argv
echo "To regenerate your session key type:"
echo " bw --regenerate-session-key"
case '*'
_read_token_from_file
$bw_exec $argv --session $bw_session
end
end
@Opa-
Copy link
Author

Opa- commented Jan 14, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment