Skip to content

Shell scripts for decoding / encoding QR codes

License

Notifications You must be signed in to change notification settings

mattlubner/qr-decode-encode

Repository files navigation

qr-decode-encode

GitHub Workflow Status npm

Simple shell commands for decoding / encoding QR codes.

Useful for extracting the secret from a 2FA (two factor auth) QR code, so it can be entered into your favorite password manager (such as 1Password).

Quick Start

Install

yarn global add qr-decode-encode
Alternate install methods
git clone https://github.com/mattlubner/qr-decode-encode.git
cd qr-decode-encode
yarn install
yarn link

Decode a QR Code into a string

> qr-decode-encode decode "data:image/png;base64,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"
i am a qr code

Encode a string as a QR Code

> qr-decode-encode encode "i am a qr code"
data:image/png;base64,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