Open-sourced ssh/sftp/telnet/RDP/VNC/Spice/ftp client for Android, built on top of the electerm-web codebase with Capacitor and an on-device Node.js runtime.
Note on local terminal & serial port: electerm for Android currently does not support the local terminal or serial port. These features rely on native libraries (
node-pty,serialport) that can not be built for Android at the moment. There is potential to add them in the future once the native dependencies are ported. SSH, SFTP, Telnet, FTP, RDP, VNC and Spice all work because they are network protocols implemented in pure JS / WASM.
- electerm.org: Homepage, downloads, videos, etc
- electerm-web: Web app version running in browser(including mobile device)
- electerm-web-docker: Docker image for electerm-web
- electerm online: Public free online electerm app
- electerm demo: Online demo of electerm
- electerm AI: Free AI for electerm users
- electerm deb repo: Debian repo of electerm
- electerm rpm repo: RPM repo of electerm
WebView (frontend) ── http://127.0.0.1:5577 ──► Node.js backend (on device)
loads index.html serves UI + SSH/SFTP/...
(local "loading" page) API/WebSocket on same origin
- Capacitor provides the native Android shell + WebView.
@capawesome/capacitor-nodejsembeds a Node.js runtime and auto-starts the electerm backend when the app launches.- The electerm frontend (React) is rendered in a WebView; the electerm backend (the Node.js server that talks SSH/SFTP/Telnet/FTP/RDP/VNC/Spice) runs directly on the device.
- 🖥️ SSH / SSH tunnel (proxy) / SFTP / FTP / FTPS
- 🐚 Telnet
- 🖥️ Remote desktop: RDP / VNC / Spice
- 🔁 Zmodem (rz/sz), trzsz file transfer
- 🌐 Multi-language, themes, bookmarks, sync
- ❌ Local terminal — not available (native
node-ptycan not be built for Android yet) - ❌ Serial port — not available (native
serialportcan not be built for Android yet)
Local terminal and serial port may be added in the future once the required native libraries are ported to Android.
- Download the latest APK from the
Releases page.
Pick the APK that matches your device:
arm64-v8a— most modern Android phones/tablets (64-bit ARM)armeabi-v7a— older 32-bit ARM devicesx86_64— Android emulators / Intel tabletsuniversal— works on all architectures (larger download)
- Install it on your Android device (you may need to allow "Install from unknown sources").
- Open electerm, wait a moment for the engine to start, and connect to your hosts.
Just download the latest APK from the Releases page and reinstall.
- Local terminal and serial port are disabled on Android (see note above).
- The device must allow "Install from unknown sources" for sideloaded APKs.
src/ electerm-web source (frontend + Node.js backend)
build/vite/ web build configuration
build/android/ Android build scripts, Capacitor project, native assets
build.mjs builds www/ (frontend + bundled backend)
capacitor.config.ts
res-overlay/ generated launcher icons + splash (from temp/ logos)
android/ native project (generated by `cap add android`)
.github/workflows/ CI that builds + releases the APK
See build/android/README.md for how to build and test locally.
# needs nodejs/npm 24.x and Java JDK 17+ (21 recommended)
# needs Android SDK (platform-36, build-tools 36.0.0)
npm config set legacy-peer-deps true
npm i
npm --prefix build/android install
# build the web frontend + Node.js backend bundle into build/android/www
npm run build:android
# create the native project + sync assets/plugins (first time only)
cd build/android
npx cap add android
npx cap sync android
# build debug APK
cd android
./gradlew assembleDebugThe debug APK lands at
build/android/android/app/build/outputs/apk/debug/app-debug.apk.
Install on a device:
adb install build/android/android/app/build/outputs/apk/debug/app-debug.apkgithub sponsor
https://github.com/sponsors/electerm
kofi
wechat donate
TRON TRN20
Address: TXk3pQNmQu1vihH76RaEFnK9wg13x4LLCZ
MIT

