ShellFish for Business
SFTP in the Finder
$39.99
Lightning fast SSH terminal with remote file access. No other app fuses your SSH servers and iOS devices as well as Secure ShellFish. Tap Get and see for yourself.
Terminal supports standard text editing gestures for selection, scrolling and copy/paste as well as custom gestures to send arrow keys and tabulator making shell entry and full screen editing with vim or emacs delightful. Bar above the keyboard makes it easy to type special keys and insert snippets.
Select and drag filenames out of the terminal as actual files and drag files from other apps into the terminal to upload. Use built-in tmux support to persist terminal sessions if you lose Internet access, pick existing sessions with thumbnails and Handoff sessions between devices.
Server file system is available in the Files app and recently accessed files and directories are cached to make them available when offline. Use apps like Textastic and iA Writer for a native editing experience working on your remote server files.
Upload files or entire directories from the share sheet with minimal friction as the last destination directory for each kind of file is remembered or automate file transfers in the Shortcuts app.
Connect to your Mac, Synology NAS and any other SSH server or create new Digital Ocean droplets right from the app.
more Suggest Command turns a plain-language description such as "make a compressed archive of src without the log files" into a shell command, using Apple's Private Cloud Compute model. Long-press the paste button on the keyboard bar or press Cmd-I. The model reads the manual pages on the server you are connected to, so it suggests options that exist there, and the command is only inserted at the prompt when you choose Insert. Requires the latest version of iOS with Apple Intelligence enabled.
Shortcuts actions no longer have to finish within a few seconds. On the latest version of iOS an upload, a download or the listing of a large folder keeps running in the background for as long as it needs, showing how far it has come and offering a stop button if you want to end it early.
A new Control Cloud Server action creates, starts, stops, checks and destroys cloud servers. You pick the region, the plan and the system image the same way you do in the app, and a server that takes minutes to come up reports what it is doing while you wait. The server it gives you back drops straight into the next action, even before you have saved it as a server of your own.
A new Run Command action then runs a command on that server, or on any saved server, without opening the app. Output appears line by line while the command works and the full output is handed back to the rest of your shortcut, so a single shortcut can bring up a server, run a build or a backup on it that takes minutes, and shut it down again.
Inside tmux, lines that had been cleared could stay on screen, so a prompt appeared twice or clear left the old screen in place. The flicker reduction behind this has been undone until it is sorted out.
2026.31 Sep 11
Server icon can now be a picture of your own. The icon in server settings opens a menu where you pick one of the drawn styles, choose an image file or edit the initials, which can also be emoji. A chosen image syncs to your other devices through iCloud and is used in the Files app as well.
A tunnel can be configured for use only when needed. The button next to the tunnel in server settings lets you pick Always or As needed, where the server is reached directly when possible and the tunnel is only used when that fails, so a server on your local network no longer needs a second entry for when the tunnel host is out of reach.
Terminal apps can ask which colors the terminal draws with to determine whether they are running in light or dark mode.
Much less flickering from terminal apps that redraw their screen many times a second. The brief moment where such an app has erased its display but not yet repainted it no longer reaches the screen.
Pressing Esc followed quickly by another key in Neovim is no longer mistaken for holding Alt with that key, which could move lines around in the editor. The terminal now supports the Kitty keyboard protocol that editors ask for when starting, so Esc reaches the server in a form that cannot blur together with the next keystroke.
Improved text rendering when typing Korean, which previously added extra spacing around characters.
Terminal apps that support the mouse can receive a real right-click or a click and drag. Hold Option while you click or drag with a mouse or trackpad, and the press, movement and release reach the app as they happen, so a menu like tmux's stays open long enough to use and you can drag to select.
2026.30 Sep 11
The keyboard bar now has a three-way visibility setting: Never, Automatically, or Always, remembered separately for the on-screen and external keyboards. The Always setting keeps the bar on screen for the whole session, even when the terminal is not focused.
Export servers as a CSV file from the (...) button above the server list.
Fixed a bug from a recent update where an already-authenticated connection would wait for re-authentication, causing delays with tmux.
New 'settitle' shell command sets the terminal, tab, and window title and works in bash, zsh, and fish. An empty argument restores the default title. This requires updating the Shell Integration.
Fixed a crash when a port forward was configured with a port number above 65535.
2026.24 Jul 8
New 'download' shell command that saves a file from the server to anywhere in Files app. This requires updating the Shell Integration.
On iPad, the manual page viewer can be docked to the left or right of the terminal instead of floating, so a man page stays open beside a live session. A button in its navigation bar switches between Floating, Left Side and Right Side, and your choice is remembered.
Browser re-authentication works with any server that withholds login behind a browser link, not just Tailscale. When a login banner carries an informational link it is surfaced in the connection status and stays tappable.
Images pasted into the terminal upload with a generated name like pasted-from-shellfish-20260701-143012.png
Fix for pinyin and other multistage input methods where picking a candidate could delete the typed letters instead of sending the composed text.
2026.23 Jul 4
New manual page viewer. Select a command in the terminal and choose Manual to read its man page without leaving the app, or browse all of a server's manual pages from the View menu. Pages are downloaded and rendered on device, so they are searchable and selectable, with a section navigator and tappable cross references like fork(2) that jump to the referenced page.
Fixed the paste button in the keyboard bar sometimes appearing blank. As a result, iOS may now prompt you when pasting from other apps. You can turn these prompts off under Settings → ShellFish → Paste from Other Apps → Allow.
Type Sentence mode no longer ends when you press enter. You can still toggle from the paste button's context menu.
Open Terminal action now works correctly on iPhone.
When creating Digital Ocean droplets, plans are now correctly sorted by price.
Improved importing of iTerm2 terminal themes.
2026.21 Jun 22
Tap "Scan clipboard" when configuring a new server to pull connection details out of a screenshot or text. Processing happens entirely on device making it exclusive to newer iPads, iPhones & Macs.
2026.18 Jun 3
Improved how right-to-left text is rendered in terminal.
Useful control combinations added to snippet gallery.
2026.13 Apr 11
Support for post-quantum key exchange algorithms: mlkem768x25519-sha256, mlkem768nistp256-sha256, mlkem1024nistp384-sha384.
Enable Live Activity from Settings > Advanced or by long-pressing settings button in terminal to follow the active terminal on the lock screen and in the Dynamic Island on supported devices.
2026.9 Feb 28
Improved handling of .ts.net hostnames for better compatibility with Tailscale VPN.
This is especially useful with multi-address hostnames like
MyMac.local, my-mac.tail2faa9.ts.net
which first attempts a local network connection before falling back to Tailscale.
Context menu for the Paste key in the middle of the keyboard bar includes a Type Sentence mode, where you can compose text using autocomplete and other standard iOS editing features. Nothing is sent to the server until you press Return and leave the mode, making it particularly useful for typing natural language while editing in Emacs or Vim, or when writing instructions for Claude Code.
Running servers listed for Digital Ocean or Hetzner have button to start terminal whether or not a ShellFish configuration exists for each server.
Fixed issue where control sequences like ^X in snippets would be confused with literal caret followed by a letter.
Support for synchronized terminal output mode where server can ask for terminal updates to be deferred until all updates have been sent. This makes Claude Code updates nicer.
Certificate Authority feature uses in-app browser for authentication such that no browser tab is left
Error message is shown when Hetzner API key is wrong during Sign In.
Fix issue where terminal word wrap was disabled when restore-cursor sequence was used before save-cursor which would often happen for Claude Code.
Improve Certificate Authority with keyId/principals in signing request and PKCE for OAuth.
2026.5 Feb 6
Hetzner servers can be created and managed from Cloud Servers screen.
Drag enbries in server list to customize their order instead of the default alphabetical sorting. Previously, drag and drop could only move servers between groups.
Initial support for short-lived SSH certificates generated on-demand by a Certificate Authority with authentication through OpenID. Configure your CA from the key-plus button above the list of SSH Keys, enter the URL + root certificate fingerprint and authenticate through the browser.
You will then able to pick this CA instead of a SSH key when configuring the server and during authentication your existing unexpired certificate will be used or a new one will be issued and used requiring you to repeat browser-based approval. This browser-based approval isn't possible for connections coming from Files app that will fail if the current certificate has expired.
Includes changes from 2025.36
When approving the use of agent keys, you can configure the approval to last 5 minutes, 60 minutes, or while the connection is active.
Import of servers from CSV files started from the + button above the server list has been improved. When the ID field is assigned, existing servers are matched and updated rather than duplicated. A confirmation screen shows which servers will be added, updated, or left unchanged, along with which fields will change. There's a toggle to delete previously imported servers missing from the import file.
CSV server import has a field for public key, which can contain either the name of the public key, the full public key with or without comment, or the SHA256 fingerprint.
Improvements to terminal when using emoji and side-by-side sessions in tmux.
2025.38 12/19/2025
Playback from other apps resume when iOS 26 dictation stops.
Includes changes from 2025.33
Assign dismiss, paste, fn, esc, tab, ctrl, alt, shift or arrow keys to custom positions on keyboard bar.
Help screen has button to show list of page titles making it easier to find specific topics.
Improved documentation when calling 'widget' command without arguments. This change requires you to update Shell Integration script from Settings.
Fix when pasting from 1Password.
2025.34 11/14/2025
Context menu when long-pressing the paste button on the keyboard bar now features integrated dictation on iOS 26. Speak naturally while the context menu is displayed and select the transcribed text once you're satisfied with the result. When keyboard bar isn't show this feature can be activated from the microphone button in the tab bar, such that you can dictate without the keyboard taking up terminal space.
Dictation language is configured in Settings or via the context menu of the settings button in the terminal tab bar. When using a new language for the first time, you may need to wait briefly for the language model to download, as all transcription occurs on-device.
Similar to dictation from the on-screen keyboard, this feature works best for natural language when editing in Emacs/Vim or composing instructions for Claude Code, and is less suited for issuing shell commands. However, this new context menu dictation delivers faster transcription with higher accuracy compared to the standard keyboard dictation method.
Long tap terminal minimize button and enter picture-in-picture mode without having to open terminal settings fully.
2025.29 10/14/2025
Enable SSH agent forwarding for server configurations. Agent contains keys from the app with "Included in Agent" enabled which is supported for regular keys and Secure Enclave keys.
SSH agent supports adding/removing keys through the ssh-add command on your server as well as locking.
All authentication with keys on this agent requires approval, either existing biometric authentication or a simple confirmation.
2025.20 07/29/2025
Fix possible battery drain on Vision Pro.
2025.2 01/22/2025
Toggle whether new window should be created in Quick Terminal on iPad.
Configure terminal key repeat rate in advanced settings.
2024.19 10/10/2024
Tapping terminal sends mouse events if supported by server and arrow keys to move cursor otherwise. Option tapping now always sends arrow keys.
Startup Command is sent with carriage return instead of line feed.
Better error messages on connection failure with Multipath TCP enabled.
2023.14 03/24/2023
Support for AES-GCM ciphers.
2023.11 03/09/2023
Never confuse terminals with server-specific color themes. Pro users can toggle whether color theme changes for all or the current server above the list of themes.
It can be especially useful to have unique toolbar colors for different servers. Assign the toolbar color for a theme by long-tapping one of the 16 ANSI colors.
2023.6 02/02/2023
Improved widget layout to better handle large amounts of text.
Support for exporting private parts of keys imported in OpenSSH format as well as for exporting sk-ecdsa private keys. As always you need to tap and hold "Share Public Key..." to export private keys. This is to make sure only people that read release notes can go against best practices.
Typing ^J using ^ on the keyboard bar now correctly sends ascii 10 instead of ascii 13.
2023.3 01/23/2023
New SOCKS proxy to forward http requests through SSH terminal when configured as system proxy server. This is enabled as part of port forwarding on a server-by-server basis.
While the available Proxy Auto-Configuration is read from secureshellfish.app the proxy itself runs on device at localhost:2080 but having this auto-configuration URL makes it easier to configure proxy in system settings.
Port forwarding activity is shown with a sparkline above terminal. This is a total of port forwarding activity for any terminal and includes http proxy.
Terminal widgets and notifications supports opening URL or running Shortcut when tapped with arguments such as
widget Tap here 'https://workingcopy.app/'
notify 'Run Shortcut' --shortcut "My Shortcut"
Run 'widget' and 'notify' without arguments for more information.
Configure whether a server or subdirectory uses Exif data for thumbnails on not-yet-downloaded files from the Manage screen. This is perfect for photo collections on NAS. Long tap directories in the Files app to show the Manage screen.
Your image files need to contain Exif thumbnails and Shell Integration includes a new 'thumbnail' command for adding this. Run something like
thumbnail *.jpeg *.png
after updating Shell Integration.
2023.1 01/13/2023
Assign keyboard shortcuts to snippets when external keyboard is attached.
Improved iCloud sync of snippets.
2022.63 12/12/2022
Suggest Command turns a plain-language description such as "make a compressed archive of src without the log files" into a shell command, using Apple's Private Cloud Compute model. Long-press the paste button on the keyboard bar or press Cmd-I. The model reads the manual pages on the server you are connected to, so it suggests options that exist there, and the command is only inserted at the prompt when you choose Insert. Requires the latest version of iOS with Apple Intelligence enabled.
Shortcuts actions no longer have to finish within a few seconds. On the latest version of iOS an upload, a download or the listing of a large folder keeps running in the background for as long as it needs, showing how far it has come and offering a stop button if you want to end it early.
A new Control Cloud Server action creates, starts, stops, checks and destroys cloud servers. You pick the region, the plan and the system image the same way you do in the app, and a server that takes minutes to come up reports what it is doing while you wait. The server it gives you back drops straight into the next action, even before you have saved it as a server of your own.
A new Run Command action then runs a command on that server, or on any saved server, without opening the app. Output appears line by line while the command works and the full output is handed back to the rest of your shortcut, so a single shortcut can bring up a server, run a build or a backup on it that takes minutes, and shut it down again.
Inside tmux, lines that had been cleared could stay on screen, so a prompt appeared twice or clear left the old screen in place. The flicker reduction behind this has been undone until it is sorted out.
more Version 2026.31 Sep 11
Data Not Linked to You The following data may be collected but it is not linked to your identity: