Support

Common questions, bug reporting, and known limitations.

Frequently asked questions

How do I install KeyJawn?
Android APKs are available from GitHub releases. KeyJawn Lite also has limited Google Play test tracks, but Google Play production is not active. As of August 28, 2026, the public iOS beta invitation is not accepting new testers. A revised App Store submission has not been sent.
Does the iOS app run commands or browse files on my device?
No. The built-in terminal sends input through SSH to a remote server that you configure. The server runs the commands and KeyJawn displays the returned output. KeyJawn has no local shell or local file browser.
Does the iOS keyboard require Full Access?
Basic typing and built-in shortcuts work without Full Access. Full Access is optional for remote image upload and for reading shared keyboard settings, user-created shortcuts, and clipboard history. KeyJawn cannot grant this system permission.
How does image upload work on iOS?
Copy one image, tap the SCP key to open Upload copied image, and select a host configured for SSH key authentication. KeyJawn prepares the image in memory, writes it by SFTP to the configured remote directory, and inserts the remote path. Password authentication remains available for terminal connections. The upload feature does not request Photos or Files access or browse local or remote files.
Where do iOS terminal keys work?
Basic text and slash shortcuts work in normal text fields. The extension inserts control text through the field that has focus, so Esc, Ctrl, and arrow sequences depend on the receiving terminal app. The built-in SSH terminal sends terminal bytes directly.
Why do some Android keys fail in a browser terminal?
Some browser terminals capture JavaScript keyboard events differently from Android input methods. Native Android terminal apps usually handle the terminal key events more reliably.
How are SSH credentials stored?
Android full encrypts saved SSH data with AndroidX EncryptedSharedPreferences. On iOS, SSH identity data is stored in the Keychain and host settings are stored in the app container or shared App Group when the keyboard needs them.
Is this open source?
Yes. KeyJawn uses the MIT license, and the source is available at github.com/jamditis/keyjawn.

Report a bug

Found a problem? File an issue on GitHub with the following info:

  • Your device model, platform, and operating system version
  • The app you were typing in (Termux, Chrome, Slack, etc.)
  • What happened vs. what you expected
  • Steps to reproduce, if possible
Open an issue on GitHub

Known limitations

No Android swipe-to-type

The Android keyboard does not include a gesture decoder. Its swipe gestures run actions such as delete word, space, and layer changes. They do not enter words.

Basic Android autocorrect only

The Android keyboard handles simple corrections. It does not include word prediction, next-word suggestions, or a suggestions bar.

Android SCP upload is full only

Android gallery upload requires the JSch library and network permissions, so it is limited to the Android full APK.

WebView terminal compatibility

Some browser-based terminals do not handle Android key events like native terminal apps. Esc, Tab, and other terminal keys can behave differently in each receiving app.

iOS extension key limits

The iOS extension cannot send hardware key events. It inserts text and control sequences through the focused field. The receiving app decides whether to forward those sequences to a terminal.

iOS copied-image upload only

The iOS app and keyboard read one image that you copy first and upload it only to a host configured for SSH key authentication. They do not open Photos or Files, browse remote files, or download files from the server.

Contact

GitHub Issues is the best way to report bugs or request features. All issues are tracked publicly.