Skip to content
项目

TooonyChen/finallyshell has 471 GitHub stars and 47 forks. Star changes are not measured yet. Last checked 2026-11-14 00:57 UTC. Last push 2026-11-11.

这些数字如何统计

实测星标增长

24小时
正在收集历史
7天
正在收集历史
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

关于

类finalshell的ssh客户端 // An source-available finalshell copy, with go runtime and mygo UI

开发工具

README.zh-CN.md

原文

 Finallyshell

布局和 FinalShell 一样、会话标签竖着排的 SSH 客户端,用 Go 编写。

最新版本 CI macOS、Windows、Linux 许可证
已收录于 Awesome MyGo

English · 简体中文
安装 · 功能 · 快捷键 · 完整文档

Finallyshell 主窗口:服务器监控、会话列表、终端和文件面板

用过 FinalShell 的话,打开就会用:左上是服务器状态,下面是会话,右边是终端,终端下面是服务器上的文件。Finallyshell 保留了这个布局,把会话标签放进左下角的竖向列表,可以滚动,也可以拖动排序。

它是用 Go 和 MyGo 界面库写的原生程序,不需要装 Java。终端用的是 Ghostty 的终端引擎 libghostty-vt。密码存在系统的钥匙串里,不写进文件。

[!IMPORTANT] 本项目的官方渠道只有本仓库和它的网站 tooonychen.github.io/finallyshell,这里的 Releases 是唯一的官方下载来源。其他以 Finallyshell 名义提供下载的网站都与本项目无关。

安装

在 Releases 下载最新版本:

系统 文件
macOS(Apple 芯片) finallyshell-<版本>-arm64.dmg
macOS(Intel 芯片) finallyshell-<版本>-amd64.dmg
Windows(x64) 安装程序 finallyshell-setup-<版本>-amd64.exe,或免安装的 .zip
Debian、Ubuntu(x64) finallyshell_<版本>_amd64.deb
其他 Linux(x64) finallyshell-<版本>-linux-amd64.tar.gz,运行 sh install.sh 装到 ~/.local
Debian、Ubuntu(ARM64) finallyshell_<版本>_arm64.deb
其他 Linux(ARM64) finallyshell-<版本>-linux-arm64.tar.gz,运行 sh install.sh 装到 ~/.local

想在发布之前试用 main 上的改动:每次合并都会在 Releases 页面发布一个预览版,标为 Pre-release。已安装的应用不会更新到预览版,需要手动下载。

macOS 版还没有经过 Apple 公证,第一次打开会被拦下。拖进“应用程序”后运行:

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

或者在“系统设置 › 隐私与安全性”里点“仍要打开”。Windows 的 SmartScreen 可能会提示安装程序没有签名,点“更多信息”,再点“仍要运行”。

Linux 上托盘图标需要 libayatana-appindicator3,记住密码需要 Secret Service 密钥环(GNOME Keyring、KWallet、KeePassXC 等)。没有的话程序照样能用,只是密码只留在内存里。

之后 Finallyshell 会自行更新;.deb 除外,装新的 .deb 就是更新。0.2.0 及更早的版本不能自行更新:手动安装一次新版本。

功能

连接

macOS 上按 Cmd+O,其他系统按 Ctrl+Shift+O 打开连接管理器。和 FinalShell 一样,主机按文件夹组织成树:可以拖到别的文件夹,按名称、地址、用户名、备注搜索,复制连接;删除的连接先进“显示已删除”,还能恢复。

同一棵树也一直留在主窗口里:服务器状态下面的面板可以在会话和“连接”之间切换,在“连接”页双击就打开会话,已经打开的主机后面有绿点。Cmd+Shift+E(Ctrl+Shift+E)在两页之间切换。

主窗口左侧面板的“连接”页:按文件夹排列的主机,打开了会话的主机后面有一个点

连接管理器,主机按文件夹排列

每个主机可以直接连接,也可以经过 SOCKS5、HTTP 代理或跳板机(相当于 ssh -J)连接,跳板机自己也可以再走代理或跳板机。端口转发支持本地(-L)、远程(-R)和动态 SOCKS5(-D)隧道,随会话启动,在“隧道”页显示状态、连接数和流量。

经过跳板机连接 本地、远程和动态隧道

每个新标签页都是快速连接:先列最近连接过的主机,再列其他主机,新加的在上面,可以搜索。从别的客户端搬过来的话,连接管理器里的“导入”能读出 FinalShell、Xshell、SecureCRT、MobaXterm 的连接和文件夹,~/.ssh/config 里的主机,或者 CSV、Excel 文件里的服务器列表。别的客户端加密存着的密码不导入,第一次连接时会问一次;服务器列表里的密码存进系统的密钥库。

新标签页上的快速连接 从 FinalShell 导入连接

密码和私钥密码存在 macOS 钥匙串、Windows 凭据管理器或 Linux 的 Secret Service 里,从不写进 hosts.json。第一次连接时确认主机指纹,以后每次连接都会核对。

服务器监控

会话连上后,左上角显示服务器的运行时间、负载、CPU、内存和交换、内存占用最多的进程、网速、延迟和磁盘,每两秒刷新一次。“系统信息”列出系统、内核、CPU 型号、内存、IP 地址和硬盘,可以一键复制成文本。“进程”页列出所有进程,可排序、可筛选,打开一个进程能看它的命令行、工作目录和环境变量,确认后发送信号或结束它。“网络”页列出进程监听的端口、谁连着它们、各自的流量,同意下载 ip2region 位置数据后显示对端的归属地,还能在服务器上用 NextTrace 追踪路由。监控读的是 /proc,所以只支持 Linux 服务器。

系统信息弹出框

文件

终端下面的文件面板通过 SFTP 浏览服务器,在终端里 cd 时会跟着进入同一个目录。在文件或左边目录树的文件夹上右键,可以重命名、删除、新建文件和文件夹。把文件或文件夹从访达或资源管理器拖进来就是上传;下载可以存到“下载”文件夹,也可以自己选位置。传输同时跑三个,显示进度、速度和剩余时间,可以取消、重试;大量小文件的文件夹还可以打包传输,用 tar 和 gzip 边打包边传;Dock 图标或任务栏按钮上也显示数目和总进度。

下载列表里正在进行的传输

双击文本文件直接在服务器上编辑。编辑器支持 30 多种语言的语法高亮、查找替换、跳转到行、多光标和折叠。服务器允许时原子保存;打开之后服务器上的文件被改过的话,保存前会提醒;换行符和编码保持原样,GBK、GB18030 也可以。

编辑服务器上的脚本

文件和文件夹的图标来自 VS Code 的图标主题。内置 Material Icon Theme 和 Seti,自动找到 VS Code、VSCodium、Cursor、Windsurf 里已经装的主题,其他主题可以从 .vsix 文件安装。

选择文件图标主题

终端

可以选字体、字号、行高、粗细,开关连字,从 Ghostty 自带的几百个配色里挑一个,还可以加背景图片,改了立刻应用到所有打开的终端。另外还有查找(Cmd+F / Ctrl+Shift+F)、全屏、选中即复制、自定义右键行为,Cmd/Ctrl+单击打开链接。

会话的终端可以分屏,和 Ghostty、Windows Terminal 一样:Cmd+D(Alt+Shift+=)在获得焦点的分屏旁边再开一个同一台服务器上的 shell,Cmd+Shift+D(Alt+Shift+-)在它下面开一个,用的是同一个连接,不用重新登录;命令输入框最右边的分屏按钮把这些放在一个菜单里,还有放大、平均分配和关闭。点一下分屏,或用 Cmd+Option+方向键(Alt+方向键)在分屏之间移动,拖动分隔条调整大小,放大一个分屏占满终端,用 Cmd+W(Ctrl+Shift+W)关闭它。命令输入框和“命令”页发给获得焦点的分屏,文件面板跟随它的目录。

终端下面是 FinalShell 的命令输入框:输入命令,回车发给 shell。Tab 分多列列出正在输入的路径所在的服务器文件夹,在第一个词上则列出服务器 PATH 里的命令;↑、Alt+H 或“历史”按钮列出以前发给这台主机的命令,以及它的 shell 历史里的命令,← → 可以从一条命令里只取一个词。用不上的话,在“选项 › 终端 › 命令输入框”里关掉它,或者只关掉其中一部分。

常用的命令可以存成“命令”页里的按钮,按你自己的分组放好:点一下就发给会话,多行命令逐行执行,不带回车保存的命令会停在提示符后面等你检查。按钮可以拖动排序,这一页也可以在单独的标签中打开,放下几十个命令。不值得保存的几行命令,可以写在按钮旁边的命令编辑器里,用 Cmd/Ctrl+Enter 发送全部或只发送选中的几行,文本重启后仍在。

分组的快捷命令按钮和命令编辑器

locale 不是 UTF-8 的服务器也能用:终端可以转换 GBK、GB18030、Big5、Shift_JIS、EUC-JP、EUC-KR、ISO-8859-1 和 Windows-1252,在“选项”里统一设置,也可以按主机单独设置。退格键和删除键发送什么也一样可以改。

配色和实时预览 终端的背景图片

其他

  • 想在自己电脑上开个 shell?“+”旁边的终端按钮打开一个本地终端标签,终端、命令输入框和快捷命令都和会话一样;运行什么程序(WSL、PowerShell、fish 等)在“选项 › 终端”里选。
  • 私钥放在 Bitwarden、1Password 或 ssh-agent 里?认证方法选“SSH Agent”,就用 agent 里的私钥登录,硬盘上不需要私钥文件;agent 的地址在“选项 › 常规”里设置。
  • 在运行 Claude Code、Codex、Gemini CLI 等编程智能体?运行期间会话标签上会显示它的图标,连到同一台服务器的几个标签一眼就能分清。
  • 中文和英文界面,默认跟随系统,也可以在“选项”里切换。
  • 浅色和深色外观,默认跟随系统,也可以在“选项”里切换。
  • 所有快捷键都能改。shell 要用的键(比如 Ctrl+C、Ctrl+R)不让占用,并说明原因。
  • 关闭时可以最小化到托盘(macOS 是菜单栏),有会话连着时关闭前先确认。
  • 同时只运行一个:再打开一次会把已经运行的窗口提到前面。
  • 自行更新:每天检查一次,也可以手动检查,原地安装签过名的更新。
  • 拖动面板之间的分隔条调整大小,下次启动还是这个大小。
  • 可选的多台电脑同步:连接和设置通过你自己的 GitHub gist、WebDAV 文件夹(坚果云、Nextcloud 等)或 S3 兼容存储(Cloudflare R2、Backblaze B2 等)同步,在本机用只有你知道的密码加密。不用注册账号,没有服务器,不用付费。

每个功能的细节见 docs/zh-CN/features.md,程序保存的文件见 docs/zh-CN/configuration.md。

快捷键

默认和 FinalShell 一样,分屏的在 macOS 上和 Ghostty 一样、其他系统上和 Windows Terminal 一样,可以在“选项 › 终端 › 快捷键”里修改。

操作 macOS Windows / Linux
复制 Cmd+C Ctrl+Shift+C
粘贴 Cmd+V Ctrl+Shift+V
在终端里查找 Cmd+F Ctrl+Shift+F
全屏 Cmd+Enter Ctrl+Shift+Enter
重新连接断开的会话 Enter Enter
上一个标签 Cmd+[ Ctrl+Shift+Tab
下一个标签 Cmd+] Ctrl+Tab
关闭获得焦点的分屏,只有一个分屏时关闭标签 Cmd+W Ctrl+Shift+W
连接管理器 Cmd+O Ctrl+Shift+O
新标签页 Cmd+T Ctrl+Shift+T
切换到第 1 到 9 个标签 Cmd+1…9 Alt+1…9
命令输入框,再按回到终端 Cmd+Shift+L Ctrl+Shift+L
左侧面板切换会话/连接 Cmd+Shift+E Ctrl+Shift+E
显示或隐藏底部面板 Cmd+J Ctrl+Shift+J
向右分屏 Cmd+D Alt+Shift+=
向下分屏 Cmd+Shift+D Alt+Shift+-
放大获得焦点的分屏,或还原 Cmd+Shift+Enter Ctrl+Shift+X
焦点移到那一边的分屏 Cmd+Option+方向键 Alt+方向键

选项里的快捷键页

常见问题

macOS 提示应用已损坏、无法打开。 还没有公证,运行安装里的 xattr 命令。

主机和密码存在哪里? 主机和设置是用户配置目录里的 JSON 文件(macOS 是 ~/Library/Application Support/finallyshell,Windows 是 %AppData%\finallyshell,Linux 是 ~/.config/finallyshell)。密码在系统钥匙串里,服务名是 finallyshell。详见 docs/zh-CN/configuration.md。

监控面板一直是空的。 监控读 /proc,只支持 Linux 服务器。有些跳板机不允许它额外开的通道,可以在这个主机的设置里关掉“启用 exec 通道(服务器监控)”。

支持 Telnet、RDP 或串口吗? 不支持,只有 SSH 和 SFTP。

从源码构建

需要 Go 1.27.3 或更新的版本。

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

go tool mygo dev 运行程序,改了代码自动重启;go tool mygo build 打包到 build/<平台>/。第一次运行会把 libghostty-vt 下载到用户缓存目录。测试、发布和代码结构见 docs/zh-CN/development.md。

参与贡献

欢迎提 issue 和 pull request。每个改动先开一个 issue,写清楚打算怎么做;细节和贡献条款见 CONTRIBUTING.md。

致谢

感谢:

  • FinalShell,从刚上大学到毕业工作,一路都是它陪着我过来的,这个项目也是受它启发做的。
  • V2EX 社区。
  • LINUX DO 社区。

许可证

Finallyshell 公开源码,但不是 OSI 定义的开源软件。你可以在下面两个许可证里任选一个(全文见 LICENSE):

出售本软件、把它放进收费产品、以商业目的分发修改版等,需要另外取得商业授权,请开一个 issue 联系。

探索相关项目