Skip to content

Local Shell

ZestSSH can open a local shell session directly on your Android device, giving you a terminal interface to the device’s own operating system without requiring any remote server.

PlatformStatus
AndroidFull support
iOSNot available (sandboxing restrictions)
WindowsNot available (use Windows Terminal or PowerShell)
macOSNot available (use Terminal.app)
LinuxNot available (use your distribution’s terminal emulator)

Local shell is an Android-only feature. iOS prohibits spawning shell processes due to its strict sandboxing model. On desktop platforms, the native terminal emulator is readily accessible, so ZestSSH does not duplicate that functionality.

  1. On the home screen, create a new connection and select Local Shell as the protocol.
  2. No hostname, port, or credentials are needed.
  3. Tap Connect to open a shell session.

ZestSSH spawns /system/bin/sh as a child process on Android, inheriting the app’s environment variables. The process stdout and stderr are piped to the terminal emulator, and user input is forwarded to the process stdin.

The local shell runs with the same permissions as the ZestSSH app itself. On non-rooted devices, this means you have access to the app’s own sandbox and any commands available in Android’s /system/bin directory (such as ls, cat, ping, ip, netstat, and toybox utilities).

  • Network diagnostics — Run ping, traceroute, ip addr, or netstat from your device.
  • File inspection — Browse the app’s local storage or accessible directories.
  • Script testing — Test shell one-liners or small scripts locally before running them on a remote server.
  • Learning — Practice shell commands in a safe, local environment.
  • Connectivity checks — Test network reachability before establishing SSH connections to remote servers.
  • Android only — Not available on iOS or desktop platforms.
  • Limited permissions — On non-rooted devices, the shell runs in the app’s sandbox. You cannot access system directories or other apps’ data.
  • No PTY resize — Terminal resize is best-effort. The shell process does not receive a true PTY resize signal; ZestSSH sets COLUMNS and LINES environment variables as a workaround.
  • Limited utilities — Only commands available in Android’s /system/bin and the BusyBox/Toybox binaries are accessible. Tools like apt, gcc, or python are not available unless you install a terminal environment like Termux separately.
  • No root access — The shell does not have root privileges unless the device is rooted and grants ZestSSH superuser access.

”Local shell is only available on Android”

Section titled “”Local shell is only available on Android””

You are running ZestSSH on a platform that does not support local shell. On iOS, this is blocked by the operating system. On desktop, use your system’s built-in terminal.

  • Press Enter to trigger the prompt.
  • The shell process may take a moment to initialize on older devices.

Many standard Linux utilities are not included in Android’s minimal system shell. Try prefixing commands with toybox (e.g., toybox whoami) or check available commands with ls /system/bin.

Q: Is this the same as Termux? A: No. The local shell is a basic /system/bin/sh process with limited utilities. Termux provides a full Linux environment with package management. ZestSSH’s local shell is intended for quick diagnostics and simple tasks, not as a replacement for Termux.

Q: Can I install packages in the local shell? A: No. Android’s system shell does not include a package manager. For a full Linux environment on Android, consider Termux.

Q: Does the local shell count toward my session limit? A: Yes. A local shell session counts as one active session for the purposes of the free tier session limit.