gitmyhub

blink

Swift ★ 6.8k updated 1mo ago

Blink Mobile Shell for iOS (Mosh based)

Blink Shell is an iOS terminal app for iPhone and iPad that keeps SSH connections alive across network changes using Mosh, with built-in shell commands for file operations that work without a server.

SwiftSSHMoshHTermlibssh2OpenSSLXcodesetup: hardcomplexity 4/5

Blink Shell is a terminal application for iPhone and iPad, built for developers and system administrators who need a reliable command-line connection on a mobile device. It is available on the App Store and is written in Swift.

The core of Blink's design is a combination of two protocols: SSH and Mosh. SSH is the standard way to log into remote servers, but it is sensitive to network interruptions. Mosh (Mobile Shell) is an alternative that stays connected even when you switch from Wi-Fi to cellular or lose signal briefly. Blink uses Mosh to keep sessions alive while you move around, so a dropped connection does not force you to start over.

For rendering, Blink uses HTerm, a terminal renderer originally developed for the Chromium project, which handles character encoding and screen updates quickly. The interface removes menus and uses the full screen for the terminal. You navigate between sessions by swiping, close them by sliding down, and zoom with a pinch gesture. Bluetooth keyboards are supported and can be configured to remap keys, for example mapping Caps Lock to Escape or Control.

Blink also includes a set of built-in shell commands that work locally on the device, without needing a server connection. These cover basic file operations (copy, move, delete, list), file transfers via curl, scp, and sftp, and utilities like grep, cat, and tar. Because iOS sandboxes apps from writing to the home directory directly, Blink redirects some standard paths to Documents and Library folders inside the app's allowed space.

The source code is open and can be built through Xcode using a precompiled set of libraries that includes libssh2, OpenSSL, and the Mosh implementation for iOS. Building it yourself requires cloning the repository, running a setup script, and configuring a developer ID before connecting a device.

Where it fits