handy tools for migrating your bluesky account to a new DID!
Find a file
2025-06-23 12:58:15 +01:00
.gitignore fix possible nil pointer deref on empty avatar/banners 2025-06-23 12:58:15 +01:00
atproto.go tidy-up refactor, add readme 2025-06-22 20:49:19 +01:00
funcs.go fix possible nil pointer deref on empty avatar/banners 2025-06-23 12:58:15 +01:00
go.mod tidy-up refactor, add readme 2025-06-22 20:49:19 +01:00
main.go minor spelling mistake 🚨 2025-06-22 21:37:25 +01:00
README.md minor spelling mistake 🚨 2025-06-22 21:37:25 +01:00

migratesky 🦋

handy tools for migrating your bluesky account to a new DID!

if you're not handy with go, you can download release builds in the releases tab.

build

go build -o migratesky .

usage

migratesky <-from <identifier>> <-frompass <password>> <-to <identifier>> <-topass <password>> <-pds <pds-url>> [collections...]

example

# migrate the profile, follows, and preferences from @old.example.org to @new.example.org:
migratesky -from old.example.org -frompass $SRC_PASSWORD \
    -to new.example.org -topass $DEST_PASSWORD \
    -pds https://my.awesome.pds.example.org \
    profile follows preferences

required arguments:

  • -from <identifier>: the source account handle or DID.
  • -frompass <password>: the source account password.
  • -to <identifier>: the destination account handle or DID.
  • -topass <password>: the destination account password.
  • -pds <pds-url>: the full https:// url of the destination account's PDS.

collections:

  • profile: imports account profile, including avatar, banner, display name, and description.
  • follows: imports all following accounts.
  • preferences: imports account preferences; including feeds, labeller settings, and content filters.

optional arguments:

  • -frompds <pds-url>: the source account's PDS url (defaults to the value of -pds).
  • -dryrun: does not import follow records; good for sanity testing!
  • -v: verbose output
  • -help: shows this help message.