Raycast has a feature to import/export preferences in a .rayconfig
file format. This isn't ideal for use in a dotfiles-esque Git repository since it would be difficult to compare changes with a compressed file. Also, unfortunately, syncing is only possible on a pro subscription and only through Raycast's cloud service.
To get a more useful JSON file from the .rayconfig
(example shown in example.rayconfig.json), you will have to first have to export a decrypted version. Go to Settings > Extensions > Raycast > Export Settings & Data and under "Export Password," which by default is 12345678, you will want to delete that.
After that, run the "Export Settings & Data" command. You should be able to export all of the preferences (Settings, Extensions, Floating Notes, Script Directories, Snippets) except Quicklinks without setting a password.
Then, in terminal, run gzip --decompress --keep --suffix .rayconfig NAME_OF_FILE.rayconfig and you should get a JSON file similar to example.rayconfig.json.
After that, you can get it back into .rayconfig format using gzip --keep --suffix .rayconfig NAME_OF_FILE and then run "Import Settings & Data" command to get it back.
As for syncing, I am not sure of a way to do it. Deeplinks may be a path but it still requires some input from the user (raycast://extensions/raycast/raycast/export-settings-data and raycast://extensions/raycast/raycast/import-settings-data). Let me know if you have any thoughts
Got it. Thanks for publishing your findings and responding to my feedback. I left this note in the Raycast Slack Channel:
I'd love a way to export all my Raycast Notes so I can edit them in other tools and reimport/round trip.
I've been unable to find a way to access the raw JSON in an encrypted rayconfig file even if I know the password, so I think I'm stuck until Raycast build an explicit bulk export/import feature. 😞