Skip to content

Instantly share code, notes, and snippets.

@mdaniel
Created February 15, 2026 19:11
Show Gist options
  • Select an option

  • Save mdaniel/df88b2c4392eede8f7fe59c296c05e37 to your computer and use it in GitHub Desktop.

Select an option

Save mdaniel/df88b2c4392eede8f7fe59c296c05e37 to your computer and use it in GitHub Desktop.
adopting a legacy (about:profiles) Firefox profile into the new Profile Groups system

What?

You have an existing Firefox profile from back in the firefox -P days but it does not show up under the fancy new "Manage profiles" item in the hamburger menu, and you'd like to fix that

How?

  1. Create a new stub Profile using the "Manage profiles" mechanism; you can name it whatever you'd like since we only need Firefox to enregister it and create the new Profiles directory

  2. You can quit Firefox in that new Profile now

  3. ENSURE you do not have the old Profile in a running Firefox

    A lot of the advice online claims you need to quit all of Firefox to do profile manitance but that was not my experience

  4. Navigate to the Firefox profiles directory (I did this trickery on macOS, and thus it was $HOME/Library/Application Support/Firefox)

    You will observe the Profiles directory containing the goods, but also Profile Groups containing a bunch of .sqlite files

  5. Discover where Firefox put your newly created Profile; in some sense, this may be obvious by looking for the newest directory under Profiles but it is so cheap to confirm and costly to be wrong

    for i in 'Profile Groups'/*.sqlite; do
      sqlite3 -readonly "$i" 'select * from Profiles'
    done

    and you can then either look for your name, or you are welcome to be more selective

    for i in 'Profile Groups'/*.sqlite; do
      sqlite3 -readonly "$i" "select path from Profiles where name = 'whatever-you-named-it'"
    done
  6. Discover the Path for the old style Profile from profiles.ini:

    [Profile1]
    Name=my-awesome-profile
    IsRelative=1
    Path=Profiles/deadbeef.my-awesome-profile
  7. Replace the contents of the new Profile with your legacy Profile. There are a bunch of ways of doing this, and you will have to pick the one that you are comfortable with and understand how to recover from if things don't go your way:

    • rm -rf Profiles/${new} && mv Profiles/${old} Profiles/${new}
    • rsync -Pav --delete ./Profiles/${old}/ ./Profiles/${new}/
    • a lot of tar, etc

    In transparency, this guide was executed using the rsync flavor because rsync solves many problems and also has the very pleasing --dry-run to talk about it first

  8. Now you can go back to the hamburger menu, Profiles, your-profile-from-step-1 and see how things went

    It was my experience that for some reason uBlock Origin was correctly listed as installed, but its icon was missing and it did not block anything, so I had to reinstall it. Because I didn't have any customizations, I didn't investigate further, but those kind of outcomes are a fine reason why one would want to ensure they have a 2-way door for trying this stunt

In theory, there's nothing that hurts leaving the old Profile declared in profiles.ini for use with firefox -P but it would require discipline to remember which one is which because, as we have shown, they live in separate directories

Good luck! 🍀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment