Same site, separate logins.
SplitSession is an open-source Manifest V3 extension that brings Firefox-style containers to Chrome. Keep several accounts of the same site open side by side, in different tabs of one Chrome profile: two Reddit accounts, a work and a personal Supabase, all logged in at the same moment, with no second profile and no second browser. Each container has its own cookies and page storage; a tab belongs to one container, and everything that tab does happens inside it.
It also works with Chrome's split view: two accounts of one site, literally side by side. Two tabs of different containers in one split view are taken out of their groups and keep their own accounts (marked ⧉). (The picture composes two real container tabs; a split view cannot be scripted.)
- Containers: a name, a colour and a cookie jar per container.
- Cookie and storage isolation per tab: network cookies,
localStorage, IndexedDB and more; popups stay in their container. - Tab groups named after containers, kept in sync both ways.
- Restore after restart: container tabs come back in their containers.
- Saved tabs: close a container's tab group and one click on the container brings all its tabs back.
- Domain rules ("always open this site in X") and an optional strict mode against service workers.
- Export / import, light and dark themes, keyboard-accessible UI.
More detail: docs/features.md.
| Lite | Full | |
|---|---|---|
| Containers, isolation, tab groups, rules, restore, export / import | yes | yes |
| Local AI agent bridge (MCP), off by default | no | yes |
| Extra permissions | none | nativeMessaging, debugger (unpacked Full). In the Chrome Web Store build nativeMessaging is optional, and debugger depends on the version: a version without it runs the agent bridge in a basic mode (no run_js, key presses, console or network; script-sent clicks), a version with it has the full tool list including run_js. The extension's details page in chrome://extensions shows whether it has the debugger |
| Where | build from source | Chrome Web Store, GitHub Releases |
The Chrome Web Store item carried Lite up to 0.1.x and carries Full from the update that adds the agent bridge (one item,
updated in place: containers and settings carry over). That update adds no required permission and disables nobody:
containers keep working. The one optional permission, nativeMessaging, is asked only when you switch the agent bridge on
(Chrome's own prompt; SplitSession then restarts itself once to finish turning it on). The bridge stays off until you switch
it on and accept what it allows. Lite remains in the code base (its agent code is not compiled in) but is no longer
uploaded.
Full has one of two extension IDs: hhodioekcdmhpocjbkjnblmbmchddphf from the store, hapfikidacgfgnnajkgnaednpgnhmffk
loaded unpacked (pinned by the manifest key). The bridge program (npx splitsession-bridge install, 0.4 or newer) accepts
both.
Chrome Web Store, the easy way: SplitSession: Multiple Logins per Site. One click, updates automatically.
From GitHub Releases (Full, loaded unpacked; it never updates by itself):
- Download
splitsession-full-<version>.zipfrom Releases and unzip it. (splitsession-store-<version>.zipis the package uploaded to the Chrome Web Store, without the manifest key;splitsession-lite-<version>.zipis Lite.) - Open
chrome://extensionsand turn on Developer mode. - Choose Load unpacked.
- Select the unzipped folder.
Keep one copy of SplitSession per Chrome profile (Store or GitHub, Lite or Full): two enabled copies fight over cookies, and SplitSession warns when it finds the other one (with its edition, version and where it came from). The store install and an unpacked Full are two copies too: their containers are separate (storage belongs to the extension ID), so moving from one to the other is Export, then Import.
To build from source, see Development below.
- Click the SplitSession toolbar button and press + to create a container, say "Work". Its first tab opens in it.
- Log in to a site there. Create a second container, open the same site, and log in as someone else. Both stay logged in.
- Use the popup's swap button to reopen any tab in another container, or add a domain rule in Settings so a site always opens in the right one.
AI agents (Full edition) — let Claude Code, Codex or Cursor see and use your tabs
The Full edition has an optional local MCP server that lets your own agent (Claude Code, Codex, Cursor and others) list your Chrome tabs with their containers and operate them: snapshots, trusted clicks and typing, screenshots, console and network, opening pages in a container. It is off by default and one all-or-nothing switch in Settings. Several Chrome profiles can have it on at once; one MCP server sees them all, each tab tagged with its profile. Several agent sessions can work at once: a tab belongs to the session that opened or last changed it, so they do not trip over each other. Tabs an agent opens itself go to a separate window (a setting), and actions that hit a site are spaced out per site.
npx splitsession-bridge install # then switch on "Agent bridge" in Settings > "For AI agents"Tools, security model and client options: docs/agents.md.
Security and limits — what is and isn't isolated
SplitSession separates accounts on the same site; it is not a privacy tool and not a sandbox. It sends nothing anywhere (privacy policy).
- The HTTP cache, HTTP auth, fingerprint, saved passwords and history are not isolated.
- One documented residual hole (same-origin frames and popups during navigation): docs/commit-gap.md.
- Not verified on many real sites yet. Full list: docs/limits.md. How it works: docs/how-it-works.md.
Development — build, test, editions
Node 22+ and pnpm 10.
pnpm install
pnpm dev # WXT dev mode with a throwaway Chrome profile (pnpm dev:lite for Lite)
pnpm build # Full -> .output/chrome-mv3
pnpm build:lite # Lite -> .output/lite/chrome-mv3, plus the bundle check
pnpm test # unit tests; pnpm e2e runs Playwright in real Chromium
pnpm lint && pnpm format:check && pnpm typecheckLayout, editions, the end-to-end stand and releases: docs/development.md. All documents: docs/README.md.
SplitSession is free and MIT-licensed. If it saves you a second browser profile, you can buy me a coffee on Ko-fi.
MIT.



