Skip to main content

chrome-profile-check

Find out what is actually inside your Chrome profiles — and what a plain copy will lose — before you copy anything.

Copying a profile folder to another computer looks like it works. The size matches, every file is there. Then you open it and you are logged out of everything, the passwords are blank, and nothing explains why.

This script explains why in advance. It is a diagnostic, not a transfer tool.

pip install chrome-profile-check
chrome-profile-check

Python 3.7+, standard library only, no dependencies. Windows, macOS and Linux paths are detected; the interesting failure is a Windows one.

What it tells you

========================================================================
C:\Users\you\AppData\Local\Google\Chrome\User Data
  cookie key:      App-Bound (v20) present - cookies are tied to this Windows account
========================================================================

  Work   (Default)
    size          3.3 GB total, of which 2.1 GB is cache you never need to move
    worth moving  1.1 GB
    cookies       412
    saved logins  69
    bookmarks     229
    extensions    30
      v20 (App-Bound, tied to this Windows account) 412 cookies

  Shop   (Profile 2)
    size          379 MB total, of which 217 MB is cache you never need to move
    worth moving  162 MB
    cookies       22
    saved logins  1
    bookmarks     3
    extensions    4
      v20 (App-Bound, tied to this Windows account) 22 cookies

------------------------------------------------------------------------
WHAT A PLAIN FOLDER COPY LOSES
------------------------------------------------------------------------
  434 cookies use App-Bound encryption (v20). They are bound to this
  Windows account: copied to another machine - or to another account on
  this one - they decrypt to nothing, and every site asks you to log in
  again. This is Chrome's own protection, not a bug in your copy.
  ...

Four things worth knowing come out of that:

  • how much of the folder is cache. Usually more than half. People copy gigabytes of cache across a network and wonder why it takes all evening;
  • how many cookies, logins, bookmarks and extensions each profile really holds — useful when you are deciding which profiles are worth keeping;
  • which key protects the cookies. v10/v11 means the older machine key; v20 means App-Bound Encryption, introduced in Chrome 127, which ties the value to one Windows account;
  • what survives a copy and what does not, stated plainly at the end.

What it never does

This matters more than the feature list, because the file it reads is the most sensitive one on your disk:

  • it never decrypts anything. Not cookies, not passwords, not the key;
  • it never prints a value. Only counts, sizes and the three-byte version tag in front of each cookie — the tag says which scheme encrypted the rest, and it is not content;
  • it never writes. Databases are opened mode=ro&immutable=1, so sqlite takes no locks and a running Chrome is not disturbed. Worst case is a slightly stale count;
  • it sends nothing anywhere. No network code in the file at all — read it, it is under 300 lines.

If a profile is in active use, some counts come back as unreadable (Chrome running?). That is the honest answer, not a workaround to be found.

Usage

chrome-profile-check                    # every Chrome profile found
chrome-profile-check --json             # machine-readable
chrome-profile-check --dir "D:\Profiles"  # a User Data directory elsewhere

Or without installing: python chrome_profile_check.py.

The short version of the problem

Since Chrome 127 on Windows, cookie values are encrypted with a key that is itself protected by App-Bound Encryption — bound to the Windows account that created it. Copy the folder to a different machine, or to a different account on the same machine, and the cookies decrypt to nothing. Sessions are gone; you log in again everywhere.

What does survive: bookmarks, history, extensions, settings, autofill. Passwords are stored under the same account-bound protection — Chrome's own export to CSV is the supported way to move those.

So the honest summary: a folder copy moves your settings, not your sessions. Anyone promising otherwise is describing an older Chrome, or something you should not run on your machine.

Why this exists

We build Morfiade, a Chrome profile manager for Windows, and this question comes up constantly: why did my copied profile lose everything? The answer is the same whether or not you ever use our program, so the answer is a separate, open tool.

License

MIT — see LICENSE. Русская версия — README.ru.md.

Release files for chrome-profile-check 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chrome-profile-check 0.1.0
File Size Uploaded
chrome_profile_check-0.1.0.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chrome-profile-check 0.1.0
File Interpreter ABI Platform
chrome_profile_check-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.7 kB

Release files / chrome_profile_check-0.1.0.tar.gz

Download URL chrome_profile_check-0.1.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a000c4978ff5fd85d985e58ed49332dcb8755a02d2735d62957f8a1abb4d195b
BLAKE2b-256 checksum
How to use checksums
cf6b4b8f9c7dd95232b189c91cc3f25cd9b385116c438adef805cd34dfff552c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / chrome_profile_check-0.1.0-py3-none-any.whl

Download URL chrome_profile_check-0.1.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3124f56cad9f5a261f808194591c2dc1c87c7bbf11f65c6ec735fadf5b25144
BLAKE2b-256 checksum
How to use checksums
11fc7a0909585d3aa1ed5d38d29a38365ae813765bc3182e1612f1d7cb36d39c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page