Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

TooonyChen/finallyshell

Developer Tools

A Go-based SSH/SFTP desktop client with FinalShell-style layout, server monitoring and vertical session tabs.

132
13
Go
NOASSERTION
1 day old

Overview

Finallyshell is a cross-platform desktop SSH client that reproduces FinalShell's working layout: server stats in the top-left panel, session list below it, a terminal on the right and remote files beneath. The session tabs form a vertical, scrollable list that can be dragged to reorder. It is a native Go application built on the MyGo UI toolkit, using libghostty-vt (Ghostty's terminal engine), so no Java runtime is needed README.

Key capabilities:

  • Connections: hosts in a folder tree with search, duplicate and soft-delete; direct, SOCKS5/HTTP proxy or jump-host connections (nested jump hosts allowed); local, remote and dynamic SOCKS5 port forwarding. Imports from FinalShell, Xshell, SecureCRT, MobaXterm, ~/.ssh/config and CSV/Excel server lists.
  • Server monitor: uptime, load, CPU, memory, swap, top-memory processes, network speed, latency and disk, refreshed every two seconds. Reads /proc, so it only works on Linux servers.
  • Files: SFTP browsing with a remote file editor (syntax highlighting, find/replace, atomic saves, encoding and line-ending preservation), concurrent transfers with progress, and VS Code icon-theme support.
  • Terminal: font, color scheme and background customization, find, full screen, and non-UTF-8 locale conversion (GBK, GB18030, Big5, Shift_JIS, EUC-JP, EUC-KR, ISO-8859-1, Windows-1252).
  • Platform extras: English/Simplified Chinese UI, light/dark themes, remappable shortcuts, tray minimize, single-instance behavior and built-in updates.

It targets users migrating from FinalShell or similar clients and users who prefer a native app without a Java dependency. Passwords and key passphrases are stored in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service), never in hosts.json.

Getting started

  1. Download the build for your platform from Releases:

    • macOS (Apple silicon): finallyshell-<version>-arm64.dmg
    • Windows (x64): finallyshell-setup-<version>-amd64.exe or the portable .zip
    • Debian/Ubuntu (x64): finallyshell_<version>_amd64.deb
    • Other Linux (x64): finallyshell-<version>-linux-amd64.tar.gz, then sh install.sh (installs under ~/.local)
  2. First launch on macOS: the app is not notarized, so after dragging it to Applications run

    xattr -dr com.apple.quarantine /Applications/Finallyshell.app
    

    or use System Settings › Privacy & Security › "Open Anyway". On Windows, SmartScreen may warn about the unsigned installer; choose "More info" then "Run anyway".

  3. On Linux, install libayatana-appindicator3 for the tray icon and a Secret Service keyring (GNOME Keyring, KWallet, KeePassXC) to remember passwords. Without them the app runs but keeps passwords in memory only.

  4. Open the connection manager with Cmd+O (macOS) or Ctrl+Shift+O (Windows/Linux), create or import hosts, and connect. Hosts can be grouped into folders; each host can specify a proxy, jump host or tunnels.

To build from source you need Go 1.27.3 or newer:

git clone https://github.com/TooonyChen/finallyshell.git
cd finallyshell && go tool mygo dev

go tool mygo build packages the app under build/<platform>/; the first run downloads libghostty-vt into the user cache directory. Tests, releases and code layout are described in the development docs.

Constraints

  • Only SSH and SFTP are supported; there is no Telnet, RDP or serial support.
  • The server monitor relies on /proc and therefore works only with Linux servers. Some jump hosts reject the extra channel it opens; turn off "Enable exec channel (server monitor)" for those hosts.
  • Encrypted passwords from other clients are not imported; you are prompted for each password on first connect.
  • The .deb package does not self-update; install a newer package manually. Versions up to 0.2.0 also cannot update in place.
  • The license is source-available, not OSI open source: PolyForm Noncommercial 1.0.0 covers noncommercial use, and PolyForm Internal Use 1.0.0 covers internal company use without distribution. Selling, bundling in a paid product or distributing modified versions commercially requires a separate license; full text is in LICENSE.

HotRepo's take

The project entered HotRepo's new list for the Go language on 2026-11-08 with 119 stars and 11 forks, showing 15 stars and 3 forks gained in the recorded growth window from 12:15 to 13:45 UTC; the hourly star samples moved from 111 to 119 over the following hour. There is no best overall GitHub daily rank on record and no Hacker News discussion, so the available data covers only one day's snapshot and does not establish a longer trend. The README's feature depth, multi-platform release matrices and versioned documentation suggest a mature distribution effort rather than a stub repository, but the absence of an independent verification trail for the prebuilt binaries means users should weigh the source-available license and unsigned installers before adopting it for production work.

Written by AI from the project's README, updated . The project's own docs are the source of truth.