DEV Community

Weather Clock Dash
Weather Clock Dash

Posted on

Firefox Profiles: Running Multiple Identities and Isolated Test Environments

Firefox profiles let you run completely separate browser instances — each with its own history, bookmarks, cookies, extensions, and settings. Here's how to use them effectively.

What Profiles Are For

A profile is a complete, isolated Firefox user configuration. Each profile maintains:

  • Bookmarks and history
  • Saved passwords
  • Cookies and site data
  • Extensions
  • Settings (about:config, preferences)
  • Themes

Common use cases:

  • Work vs. personal: separate Google accounts, separate browsing history
  • Testing: a clean profile for testing websites without your normal extensions interfering
  • Developer testing: reproduce user issues in a fresh profile
  • Privacy-focused profile: hardened settings, no history, separate from daily use
  • Shared computers: each person gets their own profile

Creating and Managing Profiles

Via the Profile Manager

about:profiles
Enter fullscreen mode Exit fullscreen mode

Or launch Firefox with --ProfileManager flag:

firefox --ProfileManager
Enter fullscreen mode Exit fullscreen mode

The Profile Manager lets you:

  • Create new profiles (with name and optional directory)
  • Rename profiles
  • Delete profiles
  • Set the default profile
  • Launch a specific profile

Running Multiple Profiles Simultaneously

By default, Firefox prevents running two instances of the same Firefox install. To run two profiles simultaneously, you need --no-remote:

# Start second profile
firefox -P "work-profile" --no-remote
Enter fullscreen mode Exit fullscreen mode

Or use the profile manager to set up different Firefox installations pointing at different profiles.

On macOS: Multiple Firefox.app instances can run simultaneously if they use different profiles.

Alternative: Firefox Developer Edition has its own separate profile and can run alongside regular Firefox without conflict.

Profile Directory Structure

Each profile directory contains:

[profile-name]/
├── prefs.js          # User preferences (modified from about:config)
├── user.js           # Custom startup preferences (manually created)
├── places.sqlite     # Bookmarks and history database
├── key4.db           # Saved passwords (encrypted)
├── cookies.sqlite    # Cookies
├── extensions/       # Installed extension files
├── chrome/           # userChrome.css, userContent.css
├── cache2/           # HTTP cache (large, can be moved)
├── sessionstore*.js  # Session/tab state
└── ...
Enter fullscreen mode Exit fullscreen mode

The profile directory is portable — you can copy it to another machine and Firefox will have the same state (minus cached content).

Using Profiles for Development

Clean test profile: Keep a "test" profile with no extensions, default settings, and cleared history. Use it to test:

  • How your website looks without uBlock Origin
  • How your site performs for a new user (no cached content)
  • Whether a bug is extension-related (extensions are isolated per profile)

Extension testing: Test extensions in an isolated profile to prevent your normal extensions from interfering.

Multiple Firefox versions: You can have Firefox Stable and Firefox Nightly each use different profiles for completely separate testing environments.

Backing Up Profiles

Backup the profile folder — copy the entire directory. This preserves everything.

Key files to back up specifically:

  • places.sqlite — bookmarks and history
  • key4.db + logins.json — saved passwords
  • prefs.js — preferences
  • chrome/ folder — userChrome.css customizations

Firefox Sync is another backup mechanism — when enabled, bookmarks, passwords, and history sync to Mozilla's servers. But it's partial (doesn't sync extensions or about:config preferences).

Profile-Specific user.js

Each profile can have its own user.js file for startup preferences. This lets you maintain different privacy/performance profiles:

Production profile (user.js):

user_pref("browser.tabs.tabMinWidth", 50);
user_pref("privacy.resistFingerprinting", false); // Keep compatibility
Enter fullscreen mode Exit fullscreen mode

Hardened profile (user.js):

user_pref("privacy.firstparty.isolate", true);
user_pref("privacy.resistFingerprinting", true);
user_pref("media.peerconnection.enabled", false);
Enter fullscreen mode Exit fullscreen mode

Profile Cleanup

Old profiles accumulate:

  • Cache data (can be several GB)
  • History (can be millions of entries)

If a profile is old and unused:

  1. Launch Profile Manager (about:profiles)
  2. Click "Open Folder" on the profile to check its size
  3. Delete if no longer needed

Note: deleting a profile from the Profile Manager removes it from Firefox's list but may not delete the actual files — you may need to manually delete the profile folder from disk.


For most users, one profile for personal and one for work is a meaningful improvement over mixing contexts. The about:profiles page is a much better interface than most people expect — worth visiting once to see your current profiles and clean up any old ones.

Top comments (0)