⚠️ Deadline: May 31, 2026 — SwiftKey account data will be permanently deleted after this date. Export your data before then.
A complete, ADB-free guide to migrate your SwiftKey learned vocabulary and settings to HeliBoard, a privacy-focused, open-source Android keyboard.
- Export Your SwiftKey Data
- Convert the Dictionary
- Install HeliBoard
- Import Your Dictionary
- Configure HeliBoard like SwiftKey
- Back Up HeliBoard Settings
- Uninstalling UDM
- What Doesn't Transfer
SwiftKey's forced migration to Microsoft accounts is a good opportunity to rethink which keyboard you trust with everything you type. Here's why HeliBoard is a strong choice.
HeliBoard does not request internet permission at all. This means everything you type stays on your device — no keystrokes, learned words, or personal data ever leave your phone. SwiftKey and Gboard both send typing data to cloud servers for prediction improvements. HeliBoard's predictions run entirely offline.
HeliBoard is fully open source (Apache 2.0 license), has no ads, no subscriptions, and no telemetry. The source code is publicly auditable on GitHub, which means the privacy claims can actually be verified — unlike closed-source alternatives.
HeliBoard matches or exceeds both Gboard and SwiftKey in features:
- Unlimited clipboard history (Gboard caps at 5 items and resets hourly)
- Fully customizable toolbar icons
- Custom key height, padding, and layout
- Material You dynamic theming + custom background images
- Forced incognito mode (disables learning for sensitive contexts)
- Custom layouts and key overrides per language
You can type in multiple languages simultaneously without manually switching — HeliBoard detects the language mid-sentence. Dictionaries are downloaded locally per language and work fully offline.
HeliBoard is based on AOSP/OpenBoard and actively maintained by the community on GitHub. Bug reports and feature requests are handled publicly and transparently.
HeliBoard is not perfect:
- Predictive text is good but not yet on par with SwiftKey's neural model — it will improve as it learns your patterns
- Swipe/gesture typing requires a separate library download (closed-source, optional)
- Setup takes a few minutes — it doesn't come pre-configured out of the box like Gboard
- Updates are less frequent than commercial keyboards
For most users coming from SwiftKey, the trade-off is clear: you lose a slightly smarter autocorrect cloud model, and you gain complete privacy, no account requirements, and no risk of future forced migrations.
| Criterion | HeliBoard | FUTO Keyboard |
|---|---|---|
| License | Open source — Apache 2.0 github | Open source — public code on GitHub cybersecuritythreatai |
| Internet Access | ❌ None discuss.privacyguides | ❌ None cybersecuritythreatai |
| Swipe Typing | ✅ Via external downloadable library forum.f-droid | ✅ Natively integrated (alpha) thecadmasters |
| Offline Voice Input | ❌ Not included | ✅ Natively included, downloadable models windowsforum |
| Autocorrect Quality | ⭐⭐⭐ Good, improves with usage reddit | ⭐⭐⭐⭐ Superior according to user feedback lemmy.dbzer0 |
| Multilingual Support | ✅ Excellent — automatic mid-sentence detection github | |
| Customization | ⭐⭐⭐⭐⭐ Very advanced — height, themes, toolbar, layouts discuss.privacyguides | ⭐⭐ Basic — themes in development lemmy.dbzer0 |
| Maturity / Stability | ✅ Stable, v2.x+ | |
| Availability | F-Droid, GitHub | F-Droid, Play Store, Direct APK cybersecuritythreatai |
| Migration from SwiftKey | ✅ Via this guide | ❌ No documented procedure |
SwiftKey does not allow a local export — you must go through its web portal, which requires a Microsoft account.
If you already have a Microsoft account, skip to step 4 below.
If you don't have a Microsoft account:
- Create a temporary Microsoft account at account.microsoft.com
- You can use a disposable email address (e.g. temp-mail.org)
- In SwiftKey → Settings → Account → Sign In with that account
- Wait a few seconds for the sync to complete
Export steps (all users):
- On a PC, go to data.swiftkey.com and sign in
- Click View Data → Export All
- Download the ZIP file — it will be named
userdata-{your-id}-{date}.zip - Extract the ZIP — you will find:
demographics.json← ignore thisservices/sync_words.json← this is your dictionary
- Copy
sync_words.jsonto the folder where you will run the converter script
You may delete the temporary Microsoft account afterwards if you created one for this purpose.
HeliBoard cannot directly import SwiftKey's JSON format. The raw data also contains noise (URLs, email addresses, numbers, timestamps) that would pollute your dictionary. The script below cleans and converts it.
Requirements: Python 3 installed on your PC (python.org)
Save the following as convert.py in the same folder as sync_words.json:
import json, re
with open("sync_words.json", encoding="utf-8") as f:
data = json.load(f)
terms = data.get("terms", [])
def is_valid_word(w):
if len(w) < 2 or len(w) > 50:
return False
if re.search(r'\d', w): # remove anything with digits
return False
if re.search(r'[@/:\.\\]', w): # remove emails, URLs, paths
return False
if not re.search(r'[a-zA-ZÀ-ÿ]', w): # must contain at least one letter
return False
return True
cleaned = sorted(set(filter(is_valid_word, terms)))
with open("heliboard_wordlist.txt", "w", encoding="utf-8") as f:
f.write("\n".join(cleaned))
print(f"Done: {len(cleaned)} words exported out of {len(terms)} total terms.")Run it:
python convert.pyThis produces heliboard_wordlist.txt — a plain text word list ready for import.
Install HeliBoard from one of these sources:
- F-Droid (recommended — no Google)
- GitHub Releases
Then enable it as your default keyboard:
- Android Settings → System → Language & Input → On-screen keyboard → Manage keyboards → enable HeliBoard
- Tap Select keyboard in any text field → choose HeliBoard
UDM (User Dictionary Manager) is required as a bridge to inject words into Android's system dictionary, which HeliBoard reads.
- Install UDM from F-Droid or the Play Store
- Copy
heliboard_wordlist.txtto your phone - Open UDM → Import
- Select format: Plain Text / Word List (not Gboard/CSV)
- Select your file
- Assign language:
fr_FR,en_US, or All languages depending on your use case - Tap Start
Verify the import:
Go to HeliBoard Settings → Dictionary → Personal Dictionary — you should see your words listed there.
⚠️ You must tap the language name — not the toggle switch — to access multilingual options.
- Settings → Languages & Layouts → tap + Add Language → select
French (fr_FR) - Tap the French language name → tap + next to Multilingual typing → add
English (en_US) - Settings → Dictionary → Add dictionary → download dictionaries for both
fr_FRanden_US
In Settings → Text Correction, enable the following:
| Setting | Value |
|---|---|
| Show suggestions | ✅ Enabled |
| Always show middle suggestion | ✅ Enabled |
| Automatically replace with middle suggestion | ✅ Enabled |
| Auto-correction | Modest (adjust to taste) |
| Next-word suggestions | ✅ Enabled |
The middle word appears bold when it differs from what you typed (i.e. autocorrect will trigger on space). If not bold, pressing space keeps your typed word as-is.
HeliBoard does not bundle the gesture library due to licensing restrictions. To enable it:
- Download
gesture_typing_library.zipfrom the HeliBoard GitHub releases page - Extract the
.sofile matching your CPU architecture (usuallyarm64-v8a) - In HeliBoard: Settings → Advanced → Load Gesture Typing Library → select the
.sofile
| Feature | Path |
|---|---|
| Number row | Settings → Preferences → Number row ✅ |
| Double-space adds period | Settings → Typing → Double-space period ✅ |
| Swipe spacebar to switch language | Settings → Advanced → Horizontal spacebar swipe → Switch language |
| Key height / padding | Settings → Appearance → Custom key height |
| Theme (Material You) | Settings → Appearance → Theme → Material You |
Settings → Appearance → Customize toolbar icons — recommended icons to add:
- Clipboard
- Undo / Redo
- Select word
- Voice input (optional)
This bug is well known and has a specific cause: the Reddit app (and some others) sets a TYPE_TEXT_FLAG_NO_SUGGESTIONS flag on its text fields. HeliBoard respects this flag by default — unlike SwiftKey or Gboard which ignore it.
The fix in a single step:
HeliBoard Settings → Text Correction → Always show suggestions → ✅ Enable
Also verify that this option is disabled:
Text Correction → Don't show suggestions for web edit fields → ❌ Disable
That's it. Suggestions will now appear in Reddit, Google Keep, and all other fields using this flag.
Once everything is configured, back up your settings so you never have to redo this:
HeliBoard Settings → Advanced → Back up settings → save the file in a safe location.
To restore on a new device: Settings → Advanced → Restore settings → select the backup file.
You can uninstall UDM immediately after the import. UDM is only a transfer tool. Once words are injected into Android's system personal dictionary, they belong to HeliBoard and UDM plays no further role.
| SwiftKey Feature | Status |
|---|---|
| Learned autocorrect model / AI predictions | ❌ HeliBoard will re-learn from scratch |
| Themes | ❌ Must be reconfigured manually |
| Clipboard history | ❌ Not exported by SwiftKey |
| Personal dictionary (manually added words) | ✅ Transferred via this guide |
| Learned vocabulary (typed words) | ✅ Transferred via this guide |
- SwiftKey Data Portal
- HeliBoard GitHub
- User Dictionary Manager (UDM)
- Original dictionary converter concept: AiCurv/SwiftKey-to-HeliBoard (GitHub Gist)
Guide written in March 2026. Tested on Android 13/14. SwiftKey account retirement deadline: May 31, 2026.