Privacy Tools Guide

Your keyboard sees everything you type: passwords, private messages, medical searches, financial information. Gboard sends your typing data to Google. SwiftKey sends it to Microsoft. Samsung Keyboard sends it to Samsung. Every keystroke is used to train AI models and build behavioral profiles. This guide covers keyboards that process input entirely on-device with no network access.

Why Keyboard Privacy Matters

A keyboard with network access is a keylogger by design. The justification is autocorrect and next-word prediction improvement — but the data collected includes:

Microsoft’s SwiftKey privacy policy permits using typed content to improve language models. Google’s Gboard sends data to Google’s servers when cloud autocorrect is enabled. In both cases, you can disable cloud features — but you are trusting the app developer to honor that setting, and you cannot verify it.

Best Privacy-Respecting Keyboard Apps

AnySoftKeyboard (Android — Open Source)

AnySoftKeyboard is fully open-source, available on F-Droid, and has no network permissions. It cannot send data anywhere — there is no permission to request.

Setup on Android:

  1. Install from F-Droid (not Google Play — the F-Droid version has fewer tracking dependencies)
  2. Settings > System > Language & Input > On-screen keyboard > Manage keyboards
  3. Enable AnySoftKeyboard
  4. Select it as the default keyboard

Verify no network access:

# On Android with ADB:
adb shell dumpsys package com.menny.android.anysoftkeyboard | grep permission
# Should show NO android.permission.INTERNET

OpenBoard (Android — Open Source)

OpenBoard is a fork of AOSP Keyboard with no telemetry added and no network permissions. It supports gesture typing and emoji.

HeliBoard (Android — Open Source)

HeliBoard is a maintained fork of OpenBoard with additional features including better language support and gesture typing improvements.

Trime (Android — Open Source)

Trime is a customizable keyboard based on RIME input engine, primarily used for CJK input but supports all languages. Fully on-device.

iOS Options

iOS is more restrictive — third-party keyboards can be sandboxed to deny network access. Check the “Allow Full Access” setting:

Do not grant Full Access to keyboards that don’t need it. Full Access allows a keyboard to communicate over the network.

Check your keyboard’s network permission on iOS:

Blocking Keyboard Network Access on Android

Even if you install a privacy keyboard, verify your previous keyboard (Gboard, SwiftKey) is blocked:

# Using ADB shell
adb shell

# List keyboard packages
pm list packages | grep -i "keyboard\|input"

# Revoke internet permission from a specific keyboard
pm revoke com.google.android.inputmethod.latin android.permission.INTERNET

# Or disable Gboard entirely
pm disable-user com.google.android.inputmethod.latin

Without root, you can use NetGuard (firewall app for Android) to block internet access for specific keyboard apps:

  1. Install NetGuard from F-Droid
  2. Enable “Show system apps”
  3. Find Gboard in the list
  4. Toggle off both WiFi and mobile data icons

Verifying No Data Exfiltration

# On a rooted device or using a network monitoring app:
# tcpdump while typing sensitive text

adb shell tcpdump -i wlan0 -n | grep -v "ARP\|ICMP\|DNS"
# Then type "password123" in any app
# If you see outbound connections matching the timing, the keyboard is leaking

On Android, use the “Network Monitor” feature in NetGuard’s log view to see which app made each DNS query. If your keyboard app appears in the log, revoke its internet permission immediately.

Swipe/Gesture Typing Without Cloud Processing

All the F-Droid keyboards listed above support swipe/gesture typing on-device using local language models. The gesture recognition runs locally — no data leaves the device.

After installing HeliBoard or OpenBoard:

  1. Enable gesture typing in keyboard settings
  2. Download the language model file (stored locally)
  3. Gesture typing works identically to Gboard without any data transmission

Keyboard App Feature Comparison

Feature AnySoftKeyboard OpenBoard HeliBoard Gboard
Network Access No No No Yes
E2EE Autocorrect On-device On-device On-device Server-side
Language Packs 50+ Minimal 80+ Unlimited
Gesture Typing Yes Yes Yes Yes
Emoji Support Yes Yes Yes Yes
F-Droid Available Yes Yes Yes No
Clipboard Access No No No Yes (optional)
Search Integration No No No Yes

The tradeoff: Third-party keyboards have fewer language options and emoji than Gboard, but the privacy gain is massive.

Detecting Keyboard Spyware

If you’re unsure whether your keyboard is sending data:

# On Android with ADB, enable packet capture
adb shell tcpdump -i wlan0 -n 2>/dev/null | grep -v "192.168\|127.0" &

# Type in a messaging app: "This is a test message with private info"
# Stop tcpdump with Ctrl+C

# Check if keyboard domain appears:
adb shell tcpdump -i wlan0 -n -r /tmp/capture.pcap 2>/dev/null | \
  grep -E "google|microsoft|samsung|swiftkey|gboard" | head -10

If you see your keyboard vendor’s domain in the packet capture, it’s sending data. Even if cloud features are “disabled,” the app may still transmit.

Using NetGuard (F-Droid firewall) is easier:

  1. Install NetGuard from F-Droid
  2. Enable VPN mode (provides network monitoring)
  3. Find your keyboard app in the list
  4. Toggle WiFi and mobile data OFF for that app
  5. If the keyboard works without network access, it’s genuinely on-device
  6. If it stops working, it requires network access — uninstall immediately

Language Models: Where Keyboard Intelligence Comes From

Modern keyboards use statistical language models to predict next words. These models can be:

Cloud-based (Gboard, SwiftKey):

On-device (HeliBoard, OpenBoard):

The difference in accuracy is noticeable for autocorrect, but most casual typing is unaffected. Advanced prediction (emoji selection, domain names) works worse.

Tradeoff: Slightly less intelligent autocorrect vs. no surveillance.

Disabling Clipboard Access on Android 12+

Android 12 introduced clipboard access notifications — apps are flagged when they read your clipboard. Check this regularly:

Settings > Notifications > Look for "Clipboard access" alerts

If your keyboard app appears, it’s reading clipboard content (which it shouldn’t need to). Grant only when explicitly pasting.

For older Android versions (before notifications):

# Check clipboard access via dumpsys
adb shell dumpsys clipboard | grep "Clip"
# If your keyboard appears, it has access

Autocorrect vs. Privacy: Finding Balance

The keyboard you choose depends on your use case:

Choose Gboard if:

Choose HeliBoard if:

Choose AnySoftKeyboard if:

Choose OpenBoard if:

Setting Up Multiple Keyboards and Switching

On Android, install multiple keyboards and switch between them contextually:

Settings > System > Languages and Input > Virtual keyboard

You can:

  1. Use Gboard for English, HeliBoard for privacy-sensitive messages
  2. Use OpenBoard as default, switch to AnySoftKeyboard for passwords
  3. Disable Gboard if you want to prevent accidental use

Context-switching requires discipline but allows you to use the best tool per situation.

Clipboard Privacy

The keyboard sees clipboard content whenever you paste. On Android 12+, apps are notified when they access the clipboard — but older Android versions give no notification.

Best practice: