English · 简体中文
Moke is a native SSH / mosh terminal for Android. It connects to remote servers directly inside the app — run a shell, tmux, vim, or a full-screen TUI such as Claude Code — and reuses termux's terminal-view / terminal-emulator (Apache-2.0) for terminal rendering instead of writing its own ANSI parser.
- SSH: password / private-key (PEM) auth; TOFU host-key verification; jump host (ProxyJump); run-on-login command; window resize; keep-alive heartbeat.
- mosh: bundled native
mosh-clientrunning as a separate subprocess over a PTY; UDP roaming (reconnect on screen-off / network switch). - Sessions & hosts: multiple sessions stay resident and switch across screens, with a foreground service keeping connections alive in the background; group / sort (including manual drag-to-reorder); duplicate; per-session titles; protocol badges; copy connect command.
- Terminal: two-row extra keys + text-block input; copy & paste; pinch-to-zoom; a top status bar (protocol / host / latency); a tmux panel to attach / create / rename / kill remote sessions.
- Appearance: live preview; multiple dark color schemes; adjustable font size / line spacing / letter spacing; cursor style; font management (primary + CJK fallback — a bundled Noto Sans SC subset, plus downloadable Fira Code / Maple Mono / Hack and more).
- Security & languages: connection credentials are encrypted with the Android Keystore (AES-GCM) before being stored; bilingual English / 中文 (i18n), following the system language by default and switchable in Settings.
Download moke-vX.Y.Z.apk from Releases, allow "install from unknown sources", and install. Release builds use a stable signature, so upgrades install over the top.
| Module | Description | License |
|---|---|---|
app |
Product layer (Compose UI / session orchestration / transport implementations) | see LICENSE |
terminal-emulator |
Terminal parsing / state core (vendored; TerminalSession made transport-agnostic) |
Apache-2.0 |
terminal-view |
Terminal rendering View (vendored; only small backward-compatible tweaks for line / letter spacing) | Apache-2.0 |
Requires JDK 17 + Android SDK (compileSdk 35 / build-tools 35). Create local.properties at the project root pointing to the SDK: sdk.dir=/path/to/Android/sdk.
./gradlew assembleDebug # debug APK
./gradlew testDebugUnitTest # unit testsThe mosh native artifacts are reproducibly built by scripts/build-mosh-native.sh from public sources (mosh 1.4.0 + rjyo/mosh-android prebuilt libs); NDK r29 is required, and the GPLv3 binaries are not checked in.
Only issue-based reports are accepted; pull requests are not accepted for now (see CONTRIBUTING).
The terminal core reuses terminal-emulator / terminal-view from termux/termux-app (Apache-2.0, originally from Android Terminal Emulator). SSH transport uses sshj. The mosh native component is based on mobile-shell/mosh (GPLv3) and rjyo/mosh-android. The bundled Chinese font is a subset of Noto Sans SC (OFL). See THIRD_PARTY_NOTICES.md for the full list.
See LICENSE. The vendored terminal-* modules are Apache-2.0; the mosh native component is GPLv3 (a standalone executable, isolated at the boundary).



