explaingit

blinksh/blink

6,738SwiftAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

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.

Mindmap

mindmap
  root((blink))
    What it does
      SSH on iOS
      Mosh reconnection
      Built-in shell
    Tech Stack
      Swift
      libssh2 OpenSSL
      Mosh HTerm
    Features
      Swipe navigation
      Bluetooth keyboard
      File transfer scp sftp
    Use Cases
      Remote server access
      Mobile DevOps
      iOS terminal work
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Connect to remote servers from an iPad and stay connected even when switching between Wi-Fi and cellular using Mosh.

USE CASE 2

Run built-in shell commands like grep, curl, and sftp on iOS without needing any server connection.

USE CASE 3

Transfer files between your iPhone and remote servers using scp or sftp directly from the terminal.

USE CASE 4

Build your own custom Blink Shell from source using Xcode to modify terminal behavior or add features.

Tech stack

SwiftSSHMoshHTermlibssh2OpenSSLXcode

Getting it running

Difficulty · hard Time to first run · 5min

Downloading from the App Store takes seconds, building from source requires Xcode, a developer ID, and running a precompile setup script.

In plain English

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.

Copy-paste prompts

Prompt 1
Show me the server-side setup steps to install Mosh on Ubuntu so I can connect to it from Blink Shell on my iPad.
Prompt 2
I want to remap Caps Lock to Control and add a custom Escape key in Blink Shell. Walk me through the Bluetooth keyboard configuration.
Prompt 3
Write a Blink Shell sftp script that downloads all .log files from a remote /var/log directory into my iOS Documents folder.
Prompt 4
How do I generate an SSH key pair inside Blink Shell and add the public key to GitHub so I can push commits from my iPhone?
Open on GitHub → Explain another repo

← blinksh on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.