Export Authy Desktop Data

Here's how to get your Authy seeds exported so you can use a new time-based one-time password (TOTP) generator.

Props to gboudreau, who has done the heavy lifting, figuring out how this is possible, in his gist. For my own sake, what follows is the subset, slightly-modified instructions that worked for me.

Download Older Authy Version

It has been reported that the last version of the Authy Desktop that this works on is 2.2.3. But others have reported that later versions work. I downloaded 2.2.3 as follows:

mkdir -p ~/Downloads/authy
cd ~/Downloads/authy
curl -L -o authy.snap https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_18.snap
unsquashfs -q -f -d authy-2.2.3 authy.snap
cd authy-2.2.3/

Run Authy With Debug Port

Authy's running some sweet, sweet JavaScripts, so we'll get access to run JavaScript in the same environment by opening the debugger. Start local 2.2.3 version of authy with:

./authy --remote-debugging-port=5858

Unlock Your Entries

If you open Authy and you still have a blue padlock icon next to your entries, it means that you first need to enter your Backup Password.

Run a Script in the Debugger

Once you're unlocked, it's time to get your data. Open the debugger:

xdg-open localhost:5858

On the web page that opens, click the "Twilio Authy link". You will now see Authy Desktop in your browser. And devtools will be open. In Chromium, open: Sources tab -> Snippets -> New snippet. In this new snippet, paste:

appManager.getModel().forEach(i => {
   console.log("{");
   console.log("    createdDate: " + i.createdDate);
   console.log("    accountType: " + i.accountType);
   console.log("    name: " + i.name);
   console.log("    originalName: " + i.originalName);
   console.log("    decryptedSeed: " + i.decryptedSeed);
   console.log("}");
})

To run this code, save it with Ctrl-S, then in the file tree on the left, right-click on the snippet, and select "Run".

Now, if you switch to the Console tab, you will see a read out of all your entries. The gold you want is the decryptedSeed. If it's undefined, you didn't unlock with your backup password and need to geo back to that point.

Now you are free to use these seeds in another TOTP tool, migrating forever away from Authy Desktop. RIP.