Skip to content

guilamu/SwiftKey2HeliBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 

Repository files navigation

SwiftKey → HeliBoard Migration Guide

⚠️ 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.


Table of Contents

Why HeliBoard?

  1. Export Your SwiftKey Data
  2. Convert the Dictionary
  3. Install HeliBoard
  4. Import Your Dictionary
  5. Configure HeliBoard like SwiftKey
  6. Back Up HeliBoard Settings
  7. Uninstalling UDM
  8. What Doesn't Transfer

Why HeliBoard?

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.

🔒 Zero Network Access — By Design

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.

🆓 Free, Open Source, No Ads

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.

⚙️ More Customizable Than Gboard or SwiftKey

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

🌍 Solid Multilingual Support

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.

🛠️ Actively Maintained

HeliBoard is based on AOSP/OpenBoard and actively maintained by the community on GitHub. Bug reports and feature requests are handled publicly and transparently.

⚖️ Honest Limitations

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.

📊 Comparison: HeliBoard vs FUTO Keyboard

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 ⚠️ Limited, less mature reddit
Customization ⭐⭐⭐⭐⭐ Very advanced — height, themes, toolbar, layouts discuss.privacyguides ⭐⭐ Basic — themes in development lemmy.dbzer0
Maturity / Stability ✅ Stable, v2.x+ ⚠️ Still in alpha/beta forum.f-droid
Availability F-Droid, GitHub F-Droid, Play Store, Direct APK cybersecuritythreatai
Migration from SwiftKey ✅ Via this guide ❌ No documented procedure

1. Export Your SwiftKey Data

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:

  1. Create a temporary Microsoft account at account.microsoft.com
  2. In SwiftKey → Settings → Account → Sign In with that account
  3. Wait a few seconds for the sync to complete

Export steps (all users):

  1. On a PC, go to data.swiftkey.com and sign in
  2. Click View Data → Export All
  3. Download the ZIP file — it will be named userdata-{your-id}-{date}.zip
  4. Extract the ZIP — you will find:
    • demographics.json ← ignore this
    • services/sync_words.jsonthis is your dictionary
  5. Copy sync_words.json to the folder where you will run the converter script

You may delete the temporary Microsoft account afterwards if you created one for this purpose.


2. Convert the Dictionary

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.py

This produces heliboard_wordlist.txt — a plain text word list ready for import.


3. Install HeliBoard

Install HeliBoard from one of these sources:

Then enable it as your default keyboard:

  1. Android Settings → System → Language & Input → On-screen keyboard → Manage keyboards → enable HeliBoard
  2. Tap Select keyboard in any text field → choose HeliBoard

4. Import Your Dictionary

UDM (User Dictionary Manager) is required as a bridge to inject words into Android's system dictionary, which HeliBoard reads.

  1. Install UDM from F-Droid or the Play Store
  2. Copy heliboard_wordlist.txt to your phone
  3. Open UDM → Import
  4. Select format: Plain Text / Word List (not Gboard/CSV)
  5. Select your file
  6. Assign language: fr_FR, en_US, or All languages depending on your use case
  7. Tap Start

Verify the import:

Go to HeliBoard Settings → Dictionary → Personal Dictionary — you should see your words listed there.


5. Configure HeliBoard like SwiftKey

5.1 Multilingual Typing (e.g. French + English simultaneously)

⚠️ You must tap the language name — not the toggle switch — to access multilingual options.

  1. Settings → Languages & Layouts → tap + Add Language → select French (fr_FR)
  2. Tap the French language name → tap + next to Multilingual typing → add English (en_US)
  3. Settings → Dictionary → Add dictionary → download dictionaries for both fr_FR and en_US

5.2 Suggestion Strip (3-word bar with space = validate middle word)

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.

5.3 Swipe/Glide Typing (optional)

HeliBoard does not bundle the gesture library due to licensing restrictions. To enable it:

  1. Download gesture_typing_library.zip from the HeliBoard GitHub releases page
  2. Extract the .so file matching your CPU architecture (usually arm64-v8a)
  3. In HeliBoard: Settings → Advanced → Load Gesture Typing Library → select the .so file

5.4 Comfort & Layout Settings

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

5.5 Toolbar Customization

Settings → Appearance → Customize toolbar icons — recommended icons to add:

  • Clipboard
  • Undo / Redo
  • Select word
  • Voice input (optional)

5.6 Fix for Reddit and Google Keep (No Suggestions Bug)

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.


6. Back Up HeliBoard Settings

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.


7. Uninstalling UDM

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.


8. What Doesn't Transfer

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

Credits & References


Guide written in March 2026. Tested on Android 13/14. SwiftKey account retirement deadline: May 31, 2026.

About

SwiftKey → HeliBoard Migration Guide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors