How to Migrate Chrome Profile Data to Ego Lite on First Launch
Ego Lite automatically detects existing Chrome profiles on first launch and offers a one-click migration that copies your logins, cookies, extensions, and bookmarks into its local storage.
When you start Ego Lite for the first time, the application scans your system for existing Chrome user data. If found, it displays a single migration prompt. This guide explains exactly how this process works, where your data goes, and how to handle migration in automated scenarios.
What Happens During Chrome Profile Migration
The migration flow in Ego Lite follows a strict five-step sequence designed to run exactly once. According to the Ego Lite source code, here's what occurs under the hood:
1. Chrome Profile Detection
Ego Lite checks platform-specific default Chrome data locations:
- Windows:
%LOCALAPPDATA%\Google\Chrome\User Data - macOS:
~/Library/Application Support/Google/Chrome - Linux:
~/.config/google-chrome
2. User Prompt
A modal dialog appears asking: "Do you want to migrate your Chrome data (logins, cookies, extensions, bookmarks) to Ego Lite?"
3. File Copy Operation
If you select Yes, Ego Lite recursively copies Chrome's Default folder (or your selected profile) into its internal directory:
- macOS/Linux:
$HOME/.ego-lite/profile - Windows:
%APPDATA%\ego-lite\profile
This preserves all cookies, extensions, bookmarks, and saved passwords.
4. Migration Flag
The binary writes migratedChrome=true to Ego Lite's configuration to prevent future prompts.
5. Future Runs
Ego Lite loads the migrated data automatically. AI agents access this state through the ego-browser skill.
Using Ego Browser After Migration
Once migration completes, no additional configuration is needed. The ego-browser skill in package/ego-browser/src/helpers.ts exposes JavaScript helpers that agents use to interact with the migrated browser state.
// Example: invoking ego-browser from a CLI-based agent
// First invocation automatically triggers migration if not yet done
await egoBrowser(`
// Your agent now works with your full Chrome state
await go('https://example.com');
await click('text=Login');
`);
The runtime state management in package/ego-browser/src/state.ts tracks whether migration has completed, ensuring consistent behavior across agent sessions.
Automating Migration in Non-Interactive Environments
For CI/CD pipelines or headless deployments, you can bypass the interactive prompt entirely.
# Run Ego Lite with automatic Chrome migration (non-interactive)
ego-lite --migrate-chrome
This flag is handled directly by the native Ego Lite binary—not the JavaScript harness—making it suitable for scripted installations.
Where Your Data Lives
| Location | Purpose |
|---|---|
| Native Chrome paths | Source data detected but never modified |
~/.ego-lite/profile or %APPDATA%\ego-lite\profile |
Migrated copy used by Ego Lite |
| Ego Lite configuration file | Stores migratedChrome=true flag |
As documented in the README data locality section, all migrated data remains in local storage under your control. The original Chrome profile is left untouched.
Key Files and References
| File | Role |
|---|---|
README.md (lines 63-75) |
Documents the first-launch migration experience |
skills/ego-browser/references/install.md |
Installation guide mentioning migration |
package/ego-browser/src/helpers.ts |
JavaScript API for agent browser control |
package/ego-browser/src/state.ts |
Runtime state including migration status |
The actual file-system copy operation resides in the native Ego Lite binary outside this repository. The open-source harness forwards migration requests to this binary.
Summary
- Ego Lite detects Chrome profiles automatically on first launch by scanning platform-default paths
- A single prompt controls migration—select Yes to copy logins, cookies, extensions, and bookmarks
- Migration runs once only, marked by a configuration flag in Ego Lite's state
- Use
--migrate-chromefor automated, non-interactive deployments - All data stays local in
~/.ego-lite/profileor%APPDATA%\ego-lite\profile
Frequently Asked Questions
Can I migrate data from profiles other than "Default"?
Yes. When multiple Chrome profiles exist, Ego Lite detects all available profiles and allows selection during the migration prompt. The chosen profile's folder is copied wholesale into Ego Lite's storage. If you need a different profile later, manual copying of the specific Chrome profile folder to Ego Lite's profile directory is required—there is no re-migration workflow.
Does Ego Lite modify my original Chrome installation?
No. The migration process performs a recursive copy operation only. Your original Chrome data at %LOCALAPPDATA%\Google\Chrome\User Data, ~/Library/Application Support/Google/Chrome, or ~/.config/google-chrome remains completely untouched. Ego Lite creates an independent snapshot for its own use.
What happens if I decline the migration prompt?
If you select No, Ego Lite starts with a fresh, empty profile. The migratedChrome flag is still set (to false or equivalent), so the prompt will not appear again. You would need to manually copy desired Chrome data to ~/.ego-lite/profile or %APPDATA%\ego-lite\profile if you change your mind later.
Can AI agents access my saved passwords after migration?
Yes. Once migrated, the ego-browser skill operates with full access to cookies, saved logins, and extensions exactly as Chrome would. Agents can navigate authenticated sessions and interact with extensions through the standard API in package/ego-browser/src/helpers.ts. This shared state enables seamless human-AI collaboration without credential re-entry.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →