mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-08 21:34:25 +00:00
3.9 KiB
3.9 KiB
Bitwarden Password Manager CLI
CLI to access and manage Bitwarden Password Managers' vaults.
TL;DR
# Install on OS X.
brew install 'bitwarden-cli'
# Generate shell completion.
# Only ZSH is supported at the time of writing.
bw completion --shell 'zsh'
# Get help on a command.
bw --help
bw 'command' --help
bw help 'command'
# Check you are logged in.
bw login --check
# Return the session key.
bw login --raw
# Login.
bw login
bw login 'user_email' 'master_password' --method '1' --code '249213'
bw login 'user_email' --passwordenv 'BW_MASTER_PASSWORD'
bw login --passwordfile 'path/to/file.txt'
BW_CLIENTID="API key's client_id" BW_CLIENTSECRET="API key's client_secret" bw login --apikey
bw login --sso
# Unlock the vault.
export BW_SESSION='session_key'
bw unlock 'master_password'
bw unlock --passwordenv 'BW_PASSWORD'
bw unlock --passwordfile 'path/to/mater/password.txt'
# Lock the vault.
bw lock
# Sync.
bw sync
bw sync -f
# Get last sync's timestamp.
bw sync --last
# List entries.
bw list items
bw list items --session 'session_key'
# Display a specific entry.
bw get item 'item_name_or_id'
# Search and display entries.
bw list items --search 'github'
# Get only an attribute of an entry.
bw get password 'https://google.com'
bw get totp 'google.com'
bw get notes 'google.com'
bw get exposed 'yahoo.com'
bw get attachment 'b857igwl1dzrs2' --itemid 'entry_id' --output './photo.jpg'
bw get attachment 'photo.jpg' --itemid 'entry_id' --raw
bw get folder 'email'
bw get template 'folder'
# Create an entry.
# Must be a base64-encoded valid JSON object.
bw create item 'eyJuYW1lIjogIkl0ZW0gTmFtZSJ9Cg=='
echo '{"name": "Item Name"}' | bw encode | bw create item
echo -n '{"name": "Item Name"}' | base64 | bw create item
bw get template item \
| jq --argjson 'LOGIN' "$(bw get template item.login | jq '.username="jdoe" | .password="myp@ssword123"')" \
'.name="New Login Item" | .login=$LOGIN' \
| bw encode | bw create item
# Attach a file to an existing entry.
bw create attachment --file './myfile.csv' --itemid 'entry_id'
# Edit an entry.
echo '{"name": "New Item Name"}' | bw encode | bw edit folder
bw edit folder 'folder_id' 'eyJuYW1lIjogIk5ldyBJdGVtIE5hbWUifQo='
# Delete an entry.
bw delete item 'entry_id'
# Create a folder.
bw create folder 'eyJuYW1lIjoiTXkgRm9sZGVyMiJ9Cg=='
echo '{"name": "Folder Name"}' | bw encode | bw create folder
echo -n '{"name": "Folder Name"}' | base64 | bw create folder
# Edit a folder.
echo '{"name": "New Name"}' | bw encode | bw edit folder
bw edit folder 'folder_id' 'eyJuYW1lIjogIk5ldyBOYW1lIn0K'
# Import data from a file.
bw import 'bitwardencsv' './from/source.csv'
bw import 'keepass2xml' 'keepass_backup.xml'
bw import --organizationid 'organization_id' 'keepass2xml' 'keepass_backup.xml'
# List import files' formats.
bw import --formats
# Export data to a CSV or JSON file.
bw export
bw export 'master_password'
bw export 'master_password' --format 'json'
bw export --output './exp/bw.csv'
bw export 'master_password' --output 'bw.json' --format 'json'
bw export 'master_password' --organizationid 'organization_id'
# Export data to STDOUT.
bw --raw export
# Send something.
bw send -f './file.ext'
bw send 'text_to_send'
echo 'text to send' | bw send
# Receive something sent.
bw receive 'https://vault.bitwarden.com/#/send/rg3iuoS_Akm2gqy6ADRHmg/Ht7dYjsqjmgqUM3rjzZDSQ'
# Configure the server to use.
bw config server
bw config server 'https://bw.company.com'
bw config server 'bitwarden.com'
bw config server --api 'http://localhost:4000' --identity 'http://localhost:33656'
# Generate a password or passphrase.
bw generate
bw generate -u -l --length '18'
bw generate -ulns --length '25'
bw generate -ul
bw generate -p --separator '_'
bw generate -p --words '5' --separator 'space'
# Logout.
bw logout