Metadata-Version: 2.4
Name: chromium-search-migrator
Version: 0.1.0
Summary: Migrate Chromium search engines between Web Data databases.
Project-URL: Homepage, https://github.com/undefined443/chromium-search-migrator
Project-URL: Repository, https://github.com/undefined443/chromium-search-migrator
Project-URL: Issues, https://github.com/undefined443/chromium-search-migrator/issues
Author: undefined443
License-Expression: MIT
License-File: LICENSE
Keywords: browser,chrome,chromium,cli,migration,search-engine,sqlite
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# chromium-search-migrator

Migrate active Chromium search engines from one `Web Data` database into another.

This is useful for moving custom search engines from Arc Browser to Google Chrome.

## Usage

Dry run:

```sh
uv run chromium-search-migrator \
  "$HOME/Library/Application Support/Arc/User Data/Default/Web Data" \
  "$HOME/Library/Application Support/Google/Chrome/Default/Web Data"
```

Apply changes:

```sh
uv run chromium-search-migrator \
  "$HOME/Library/Application Support/Arc/User Data/Default/Web Data" \
  "$HOME/Library/Application Support/Google/Chrome/Default/Web Data" \
  --apply
```

List entries that would be imported:

```sh
uv run chromium-search-migrator source-web-data target-web-data --list
```

## Safety

- Only imports source rows with `is_active = 1`.
- Skips rows when the target already has the same `keyword`.
- Skips rows when the target already has the same `url`.
- Regenerates `sync_guid` for imported rows.
- Creates a backup in `/tmp` before writing, unless `--no-backup` is set.
- Runs `PRAGMA integrity_check` after writing.

Close the target browser before applying changes, otherwise the database may be locked.
