A turnkey migration toolkit for leaving Google services behind. Interactive wizard, desktop data processor, and browser automation — everything a normal person needs to fully degoogle.
https://sysadmindoc.github.io/DeGoogler/
DeGoogler is a three-part toolkit that walks anyone through the process of migrating away from Google services:
- DeGoogler Web App (
degoogler.jsx) — Interactive React wizard that guides you through service inventory, alternative selection, and generates a phased migration plan - DeGoogler Toolkit (
DeGoogler-Toolkit.ps1+DeGoogler-Toolkit.Core.ps1) — PowerShell WPF desktop app that handles the heavy data processing: extracting Takeout archives, fixing photo metadata, converting passwords, processing emails, and more - DeGoogler Browser Assistant (
DeGoogler-BrowserAssistant.user.js) — Tampermonkey userscript that adds automation overlays on Google Takeout, YouTube, Gmail, and Google Account pages
Open degoogler.jsx as a React artifact or deploy to any static hosting.
# Download the two-file toolkit and run (auto-elevates, auto-installs dependencies)$degooglerDir=Join-Path$env:LOCALAPPDATA'DeGoogler'New-Item-ItemType Directory -Path $degooglerDir-Force |Out-NullInvoke-WebRequest https://raw.githubusercontent.com/SysAdminDoc/DeGoogler/main/DeGoogler-Toolkit.ps1 -OutFile (Join-Path$degooglerDir'DeGoogler-Toolkit.ps1')
Invoke-WebRequest https://raw.githubusercontent.com/SysAdminDoc/DeGoogler/main/DeGoogler-Toolkit.Core.ps1 -OutFile (Join-Path$degooglerDir'DeGoogler-Toolkit.Core.ps1')
& (Join-Path$degooglerDir'DeGoogler-Toolkit.ps1')Or download the toolkit files from the repository/release bundle, keep DeGoogler-Toolkit.Core.ps1 beside DeGoogler-Toolkit.ps1, and right-click the main script → Run with PowerShell.
- Install Tampermonkey or Violentmonkey
- Click here to install
- Visit any Google service page — the assistant panel appears automatically
GitHub Pages deploys the static Web App automatically on every push to main through .github/workflows/pages.yml. To build the distributable bundle locally:
pwsh -NoProfile -File .\build-release.ps1The command creates dist\DeGoogler-v<version>.zip, containing the Web App, userscript, two-file toolkit, bundled ExifTool runtime, documentation, and a generated SHA256SUMS manifest. The toolkit remains unsigned; the manifest provides release-artifact integrity checking.
The toolkit's Check for updates button queries the public GitHub Releases API. It only offers a download when the release contains both the expected bundle and a SHA-256 manifest; the downloaded archive is verified before it is saved. The same flow is available without opening the WPF window with -CheckForUpdate, or with an explicit verified download using -DownloadUpdate.
For self-hosting, build the lightweight static container from the repository root:
docker build -t degoogler:local .
docker run --rm -p 8080:80 degoogler:local| Feature | Description |
|---|---|
| Service Inventory | 16 Google products across 7 categories with difficulty ratings |
| Alternative Database | 50+ curated privacy-respecting alternatives with ratings, cost, and platform info |
| Migration Plan Generator | Personalized 5-phase plan based on your selections |
| Progress Tracking | Persistent checklist across sessions with per-phase completion |
| Progress Dashboard | Offline CSS charts for weekly migrated-service snapshots and cleared priority categories |
| Reverse Mode | Starts from a new email and tracks confirmation, email updates, and Gmail retirement for every candidate service |
| Localization | Web App shell, tracker, dashboard, and migration navigation in EN/ES/DE/FR |
| Plan Export | Download full migration plan as Markdown |
| Shared Plan Sync | Keeps the Web App and Browser Assistant migration checklist in the versioned plan.json shape |
| Toolkit Deep Links | Open a selected PowerShell tool with a local path or plan file preselected via degoogler:// |
| Direct Links | One-click links to Google Takeout, signup pages, and import guides |
| Tool | Description |
|---|---|
| Takeout Extractor | Extracts and organizes Google Takeout ZIP archives into labeled folders per service |
| Photos Metadata Fix | Restores metadata with an EXIF → JSON → Picasa → filename → filesystem-time cascade, robust Takeout sidecar matching, XMP fallback, and bundled ExifTool 13.59. |
| Password Converter | Converts Chrome password CSV to Bitwarden, KeePass, 1Password, or Proton Pass format. Optional secure-delete of source. |
| Email (MBOX) Processor | Splits Gmail MBOX files into individual EML files with label-based folder organization |
| Thunderbird Archive Path | Wizard checklist for local Gmail-to-new-mailbox migration when direct MBOX import is unavailable |
| Bookmark Converter | Converts Chrome JSON bookmarks to Netscape HTML for Firefox/Brave/LibreWolf. Auto-detects Chrome installation. |
| Contacts Processor | Cleans Google Contacts VCF exports: deduplication, phone number standardization, encoding fixes |
| Takeout Export Converters | Converts Keep notes to labeled Markdown, Fit data to Apple Health XML/TCX, saved places to GeoJSON/GPX/KML, and Chat/Hangouts MBOX to Matrix/Signal-shaped JSON |
| Module | Google Site | What It Does |
|---|---|---|
| Takeout Helper | takeout.google.com | Select All / Deselect All services, export priority guide, recommended settings checklist |
| YouTube Exporter | youtube.com | Exports subscriptions as OPML for import into NewPipe, FreeTube, or Invidious |
| Account Audit | myaccount.google.com | 8-step audit checklist: app permissions, security, devices, activity, ads, privacy, takeout, forwarding |
| Connected Services Auditor | myaccount.google.com/permissions | Scans OAuth-connected apps, lets you add email-registered services manually, tracks per-service migration steps (Set Password → Update Email → Revoke Google → Verified), categorizes by priority (Critical/Important/Optional), exports full audit as CSV |
| Gmail Migration | mail.google.com | Step-by-step forwarding setup, auto-reply configuration, contact update checklist |
Connected-service audit state is encrypted with AES-GCM before it is stored in userscript storage. The generated key is kept separately in the same browser profile; this protects the stored payload from casual inspection but is not a substitute for a password-manager vault.
To register the local toolkit protocol handler once, run:
& .\DeGoogler-Toolkit.ps1 -RegisterProtocolThe Web App's tracker can then open degoogler://toolkit?... links, and exported plan.json files can be loaded by the toolkit with -PlanPath.
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Web App (React) │ │ Browser Assistant │ │ PS Toolkit (WPF) │
│ │ │ (Userscript) │ │ │
│ 1. Select services │ │ Automates Google │ │ Processes exported │
│ 2. Pick alternatives│────>│ Takeout, exports │────>│ data: photos, email │
│ 3. Generate plan │ │ YouTube subs, audits │ │ passwords, contacts │
│ 4. Track progress │ │ account, helps Gmail │ │ bookmarks, archives │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
PLAN EXPORT PROCESS
Typical workflow:
- Use the Web App to audit your Google usage and pick alternatives
- Install the Browser Assistant userscript
- Visit Google Takeout — the assistant helps you select and export everything
- Download your Takeout archives
- Run the PowerShell Toolkit to extract, fix, and convert your data
- Import processed data into your new services
- Visit myaccount.google.com/permissions — the Connected Services Auditor scans your OAuth apps and guides you through migrating every linked account
- Work through the connected services checklist: set passwords, update emails, revoke Google access, verify each one
- Follow the migration plan checklist to complete the transition
| Google Service | Top Alternatives |
|---|---|
| Gmail | Proton Mail, Tuta Mail, Fastmail, Mailbox.org |
| Google Drive | Proton Drive, Nextcloud, Tresorit, Filen |
| Google Search | DuckDuckGo, Brave Search, Startpage, Kagi |
| Chrome | Firefox, Brave, LibreWolf, Vivaldi |
| Google Calendar | Proton Calendar, Tuta Calendar, EteSync |
| Google Photos | Immich, Ente Photos, PhotoPrism |
| Google Maps | OsmAnd, Organic Maps, Magic Earth |
| YouTube | NewPipe, FreeTube, Invidious, Odysee |
| Google Docs/Sheets | LibreOffice, CryptPad, ONLYOFFICE |
| Google Meet | Jitsi Meet, Signal, Element (Matrix) |
| Google Keep | Standard Notes, Joplin, Obsidian |
| Google Authenticator | Aegis, Ente Auth, Bitwarden TOTP |
| Google Password Manager | Bitwarden, KeePassXC, Proton Pass |
| Google Translate | DeepL, LibreTranslate |
| Google Play Store | F-Droid, Aurora Store |
| Android OS (Stock) | GrapheneOS, LineageOS, CalyxOS |
PowerShell Toolkit:
- Windows 10/11
- PowerShell 5.1+
- Admin rights (auto-elevates)
- ExifTool (auto-downloaded for Photos Metadata Fix)
DeGoogler-Toolkit.Core.ps1beside the main script (included in the repository/release bundle)- Bundled
tools\exiftool.exeplustools\exiftool_files\(ExifTool 13.59, used offline)
Browser Assistant:
- Tampermonkey or Violentmonkey browser extension
- Any Chromium or Firefox-based browser
Web App:
- Any modern browser
- All data processing happens locally on your machine
- No data is sent to any external server
- The web app stores progress in browser storage only
- The userscript only runs on Google domains
- Password converter includes optional secure-delete (cryptographic overwrite) of source CSV
- No tracking, no analytics, no telemetry
- Long-running archive, photo, and MBOX operations checkpoint completed units in
%LOCALAPPDATA%\DeGoogler\logs\*.progress.jsonso interrupted runs can resume.
Q: Google Takeout export is failing or incomplete. A: Takeout exports for large accounts can take hours or days. Try reducing the archive size setting to 2GB and export in multiple batches. Use the Takeout Helper userscript to ensure all services are selected.
Q: Photos Metadata Fix says ExifTool not found.
A: The toolkit auto-downloads ExifTool on first run. If that fails, manually download from exiftool.org and place exiftool.exe in %LOCALAPPDATA%\DeGoogler\.
Q: Chrome passwords CSV is empty.
A: Chrome requires biometric/PIN verification before exporting. Go to chrome://password-manager/settings and click Export. The CSV is saved to your Downloads folder.
Q: YouTube subscription export found 0 channels.
A: YouTube's page structure changes frequently. As a fallback, use Google Takeout to export YouTube data — the subscriptions.csv file works with most import tools.
Q: Can I do this gradually? A: Absolutely. The migration plan is designed to be completed over weeks or months. Run old and new services in parallel during the transition phase.
Q: How do I find all the services tied to my Google account? A: Start with the OAuth scan at myaccount.google.com/permissions — the Browser Assistant automates this. But that only shows apps using "Sign in with Google." You also need to think through every service where your Gmail is the registered email: banking, insurance, government, medical, work HR, shopping, social media, hosting, utilities. The Connected Services Auditor has a quick-add list of 24 commonly-forgotten services to jog your memory.
Q: What happens if I delete my Google account before migrating connected services? A: You lose access to every service that relied on Google OAuth for login (unless you set a standalone password first) and every service that sends password resets or 2FA codes to your Gmail. This is the #1 mistake people make. The migration plan's Connected Services phase must be completed BEFORE account deletion.
MIT License — see LICENSE for details.
Issues and PRs welcome. If you know of a better alternative or have a migration tip, open an issue.