从源码运行需 Node.js >= 22.12.0、npm、Rust stable 及对应平台的 Tauri 系统依赖;Linux 需额外安装 WebKitGTK 4.1(Ubuntu 22.04 用 4.0)等 GTK 运行库;macOS 发布包仅做 ad-hoc 签名、未公证,首次启动或更新被拦需在隐私与安全里选仍要打开。
fileterm
St0ff3l活跃维护基于 Tauri、Rust 和 React 打造的轻量远程桌面工作台,把 SSH、SFTP 和 FTP/FTPS 连接与文件管理整合到一个界面里,方便运维和开发人员集中管理远程服务器。
A modern, lightweight remote desktop workspace for SSH, SFTP, and FTP/FTPS. Powered by Tauri, Rust, and React.
npm install
npm run devREADME 未说明显存或 GPU 要求;这是桌面客户端,需在带图形界面的本机运行,纯 SSH、无头服务器或无 XWayland 的 Wayland 会话下无法启动。
基于 Tauri 的桌面远程工作台,把 SSH 终端、SFTP 与 FTP 文件管理和传输任务集中到一个客户端
基于 Tauri、Rust 和 React 打造的轻量远程桌面工作台,把 SSH、SFTP 和 FTP/FTPS 连接与文件管理整合到一个界面里,方便运维和开发人员集中管理远程服务器。
核心能力
- SSH 会话与 SFTP 文件面板配对使用
- FTP/FTPS 采用独立连接模型,只做文件管理
- 多连接以标签页并行运行互不干扰
- 上传下载进度与错误统一在传输中心管理
- 连接配置以 JSON 持久化并支持分组
容易踩的坑
- v2.3.4-beta.3pre-release2026-11-09 · 2026-11-09 12:05 UTC
查看更新说明
FileTerm 2.3.4-beta.3
FileTerm 2.3.4-beta.3 改进 Xlight FTP/SFTP 兼容性、文件传输诊断和管理界面。
下载地址
平台 类型 下载 macOS DMG Apple silicon · Intel Windows Installer x64 · ARM64 Windows Portable x64 · ARM64(需要 WebView2 Runtime) Linux DEB x86_64 · ARM64 Linux RPM x86_64 · ARM64 Linux AppImage x86_64 · ARM64 Linux Arch x86_64 · ARM64 安装指南
2.3.4-beta.3 更新重点
- Xlight FTP/SFTP 兼容性:处理目录创建和模糊服务器回复差异,完善 SFTP 上传阶段的错误信息与路径定位。
- FTP 字符编码:新增 UTF-8 和 GBK 选项,兼容使用旧编码的服务器;文件内容按原始字节传输。
- 传输与管理界面:改进传输记录筛选与清理入口,统一分段控件样式,并让管理列表填满可用区域。
- 实机验证:已通过 Xlight FTP 和 SFTP 的小文件上传、下载及字节比对。
本版本包含的主要 PR 和问题修复
- PR #383:改进 Xlight FTP/SFTP 兼容性、字符编码、传输诊断和管理界面。
完整变更记录请查看 v2.3.4-beta.2 与 v2.3.4-beta.3 的比较。
反馈与支持
• 遇到问题请前往 GitHub Issues 提交反馈,并附上操作系统、FileTerm 版本、连接类型、复现步骤和脱敏日志;不要提交密码、私钥或 token。
• 也可以加入微信群交流:请打开仓库 README 的“社区交流”部分 扫描二维码进微信群,也可加入 QQ 群 534418986。
FileTerm 2.3.4-beta.3
FileTerm 2.3.4-beta.3 improves Xlight FTP/SFTP compatibility, transfer diagnostics, and manager interfaces.
Downloads
| Platform | Type
- v2.3.4-beta.2pre-release2026-11-08 · 2026-11-08 04:39 UTC
查看更新说明
FileTerm 2.3.4-beta.2
FileTerm 2.3.4-beta.2 增加 MCP/CLI 调用审计记录,并优化设置页与常用对话框的交互体验。
下载地址
平台 类型 下载 macOS DMG Apple silicon · Intel Windows Installer x64 · ARM64 Windows Portable x64 · ARM64(需要 WebView2 Runtime) Linux DEB x86_64 · ARM64 Linux RPM x86_64 · ARM64 Linux AppImage x86_64 · ARM64 Linux Arch x86_64 · ARM64 安装指南
2.3.4-beta.2 更新重点
- MCP / CLI 调用审计:新增调用记录页,查看调用来源、操作、审批方式、结果和耗时等信息。
- 本地记录与隐私:调用记录以 JSONL 保存并支持轮转和分页查看;凭据、文件正文等敏感内容按规则省略或脱敏。
- 设置与对话框:统一部分表单对话框和操作反馈的视觉表现,普通确认弹窗保留原有样式。
- 主题自定义:移除用途有限的导入与复制入口,保留主题预设、自定义编辑和保存管理。
本版本包含的主要 PR 和问题修复
- PR #380:增加 MCP / CLI 调用审计,并优化设置页和对话框体验。
完整变更记录请查看 v2.3.4-beta.1 与 v2.3.4-beta.2 的比较。
反馈与支持
• 遇到问题请前往 GitHub Issues 提交反馈,并附上操作系统、FileTerm 版本、连接类型、复现步骤和脱敏日志;不要提交密码、私钥或 token。
• 也可以加入微信群交流:请打开仓库 README 的“社区交流”部分 扫描二维码进微信群,也可加入 QQ 群 534418986。
FileTerm 2.3.4-beta.2
FileTerm 2.3.4-beta.2 adds MCP/CLI call auditing and improves settings and dialog interactions.
Downloads
| Platform | Type |
- v2.3.4-beta.1pre-release2026-11-04 · 2026-11-04 11:09 UTC
查看更新说明
FileTerm 2.3.4-beta.1
FileTerm 2.3.4-beta.1 增加 SSH 动态验证码自动填写,并修复 SFTP 下载文件大小与实际内容不一致的问题。
下载地址
平台 类型 下载 macOS DMG Apple silicon · Intel Windows Installer x64 · ARM64 Windows Portable x64 · ARM64(需要 WebView2 Runtime) Linux DEB x86_64 · ARM64 Linux RPM x86_64 · ARM64 Linux AppImage x86_64 · ARM64 Linux Arch x86_64 · ARM64 安装指南
2.3.4-beta.1 更新重点
- SSH 动态验证码:可保存 OTP 密钥,在明确匹配的 keyboard-interactive 提示中自动生成并提交 TOTP。密码或私钥认证均可配合使用;其他或不明确的验证提示仍需手动输入。
- OTP 安全:OTP 密钥复用加密凭据存储,公开连接信息只返回是否已保存,不记录密钥内容。
- SFTP 下载修复:按服务器声明的文件大小完成下载,避免文件内容尚未接收完整时提前结束。
- 连接设置:整理认证、二次验证和连接对象的表单布局,补充用户名、密码可留空的提示。
本版本包含的主要 PR 和问题修复
完整变更记录请查看 v2.3.3 与 v2.3.4-beta.1 的比较。
反馈与支持
• 遇到问题请前往 GitHub Issues 提交反馈,并附上操作系统、FileTerm 版本、连接类型、复现步骤和脱敏日志;不要提交密码、私钥或 token。
• 也可以加入微信群交流:请打开仓库 README 的“社区交流”部分 扫描二维码进微信群,也可加入 QQ 群 534418986。
FileTerm 2.3.4-beta.1
FileTerm 2.3.4-beta.1 adds automatic SSH one-time passwor
- v2.3.3最新正式版2026-11-02 · 2026-11-02 14:26 UTC
FileTerm 2.3.3
FileTerm 2.3.3 改进 MCP 远程目录访问的路径提示,帮助 Agent 区分 SFTP 用户视图与提权 Shell 视图。
下载地址
平台 类型 下载 macOS DMG Apple silicon · Intel Windows Installer x64 · ARM64 Windows Portable x64 · ARM64(需要 WebView2 Runtime) Linux DEB x86_64 · ARM64 Linux RPM x86_64 · ARM64 Linux AppImage x86_64 · ARM64 Linux Arch x86_64 · ARM64 安装指南
2.3.3 更新重点
- MCP 远程目录:明确目录路径按当前文件视图解释;SSH 用户模式使用 SFTP 路径,root 模式使用提权 Shell 路径。群晖的两种路径根目录可能不同。
- 目录错误提示:列目录失败时显示请求路径和当时的文件视图模式,帮助 Agent 判断路径是否属于当前命名空间。
- Agent 排查指引:说明
command -v只检查命令搜索路径,避免仅凭该结果判断服务或数据目录不存在。 - 更新器安全修复:升级更新器依赖,修复下载更新包解压时使用的 ZIP 库安全问题。
本版本包含的主要 PR 和问题修复
- PR #373:说明 MCP 远程目录路径随文件视图模式变化,并在错误中提供路径上下文。
完整变更记录请查看 v2.3.2 与 v2.3.3 的比较。
反馈与支持
• 遇到问题请前往 GitHub Issues 提交反馈,并附上操作系统、FileTerm 版本、连接类型、复现步骤和脱敏日志;不要提交密码、私钥或 token。 • 也可以加入微信群交流:请打开仓库 README 的“社区交流”部分 扫描二维码进微信群,也可加入 QQ 群 534418986。
FileTerm 2.3.3
FileTerm 2.3.3 clarifies remote directory paths in MCP so Agents can distinguish the SFTP user view from the privileged shell view.
Downloads
| Platform | Type | Downloads
- v2.3.22026-10-29 · 2026-10-29 10:55 UTC
查看更新说明
FileTerm 2.3.2
FileTerm 2.3.2 加入服务器间文件传输,并整合 Linux 应用内更新与桌面工作区体验改进。AppImage 需要放在当前用户可写的位置;DEB/RPM 更新可能需要管理员授权;Arch 和其他不受支持的安装仍通过发布页更新。
下载地址
平台 类型 下载 macOS DMG Apple silicon · Intel Windows Installer x64 · ARM64 Windows Portable x64 · ARM64(需要 WebView2 Runtime) Linux DEB x86_64 · ARM64 Linux RPM x86_64 · ARM64 Linux AppImage x86_64 · ARM64 Linux Arch x86_64 · ARM64 安装指南
2.3.2 更新重点
- Linux 应用内更新:对受支持的 AppImage、DEB 和 RPM 安装使用 Tauri updater,并验证 Ed25519 更新签名;AppImage 通过备份和原子替换安装,DEB/RPM 由系统安装器处理,可能要求管理员授权。
- 安装格式边界:AppImage 必须位于当前用户可写的位置;DEB/RPM 仅对由系统包管理器安装的 FileTerm 启用;Arch 包和不支持的架构继续打开 GitHub Releases。
- Linux 侧栏启动宽度:窗口尺寸稳定后恢复 214px 默认宽度;窗口启动期间较窄的临时视口不会永久改变宽度,手动调整也会保留。
- 服务器间文件传输:可在两个远程服务器之间复制文件,传输经本机中转;支持同名冲突处理,并在任务区查看进度。
- 传输安全与稳定性:加强目标路径和端点校验;覆盖同名替换、符号链接及失败回滚,减少覆盖到意外文件的风险。
- 工作区界面:统一表单输入焦点反馈、弹窗密度和按钮加载状态,修复管理器搜索框阴影被裁切的问题,并在侧栏提供文件传输快捷入口;保留现有悬停反馈。
- 侧栏与标签切换:减少收起、展开侧栏和文件区域时重复的布局测量,优化滚动条尺寸更新及切换标签后的工作区同步。
本版本包含的主要 PR 和问题修复
- 本版本包含 Linux 侧栏启动宽度修正;Linux 应用内更新实现见 PR #362。
- PR #365:修复 Linux 窗口启动后侧栏宽度变窄的问题。
- PR #366:加入服务器间文件传输并改进工作区界面;相关需求见 Issue #354。
- PR #372:改进侧栏和标签切换性能,并准备 2.3.2 正式版。
完整变更记录请查看 v2.3.1 与 v2.3.2 的比较。
反馈与支持
• 遇到问题请前往 [GitHub Issues](https://github.com/St0ff
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Download the Official Release
Download the latest release from GitHub Releases:
For step-by-step instructions, see the English Installation Guide or 简体中文安装指南.
- macOS: packages for Apple Silicon (arm64) and Intel (x64).
- Windows: x64 and ARM64 NSIS installers and portable
.exefiles; installed builds download, verify, and install architecture-matched updates after restart. - Linux: x86_64 and arm64
.deb,.rpm, and.AppImagepackages, plus Pacman.pkg.tar.zstpackages for Arch x86_64 and Arch Linux ARM aarch64.
Linux packages
Every Linux package includes the FileTerm launcher, application icons, AppStream metadata, and the MIT license. The .deb, .rpm, and Pacman packages declare runtime dependencies for the system package manager to install; the RPM package requires a distribution that provides WebKitGTK 4.1 and OpenSSL 3. AppImage runs without installation, bundles its runtime libraries, and includes a .zsync sidecar for differential updates with AppImageUpdate. It still requires a host glibc compatible with the Ubuntu 22.04 build baseline.
| Format | Architectures and supported systems | Install or run |
|---|---|---|
.AppImage | x86_64, arm64; major Linux desktop distributions with AppImage support | chmod +x FileTerm-*-linux-<arch>.AppImage && ./FileTerm-*-linux-<arch>.AppImage |
.deb | x86_64, arm64; Debian, Ubuntu, and derivatives | sudo apt install ./FileTerm-<version>-linux-<arch>.deb |
.rpm | x86_64, arm64; Fedora, openSUSE, and RPM distributions with WebKitGTK 4.1 and OpenSSL 3 | Fedora: sudo dnf install ./FileTerm-<version>-linux-<arch>.rpm; openSUSE: sudo zypper install ./FileTerm-<version>-linux-<arch>.rpm |
.pkg.tar.zst | x86_64; Arch Linux, Manjaro, EndeavourOS, and Arch derivatives; aarch64; Arch Linux ARM | sudo pacman -U ./FileTerm-<version>-linux-<arch>.pkg.tar.zst |
The official Arch Linux distribution supports x86_64. The ARM64 package targets the separate Arch Linux ARM distribution and cannot be installed on x86_64. Select the matching linux-x86_64 or linux-arm64 release asset. If an AppImage does not start when double-clicked, run chmod +x on the downloaded architecture-matched file and launch it from a terminal.
On first launch, FileTerm uses Chinese for Chinese system locales and English for all other locales. You can change the language in Settings; a saved choice takes precedence on later launches.
Windows, macOS, and supported Linux AppImage/DEB/RPM builds use signed in-app updates. AppImages must be in a writable directory; DEB/RPM installation may require administrator authorization. Pacman packages and unsupported installations open the matching GitHub Release page. See the installation guides for first-run requirements and older AppImage EGL workarounds.
Want to run from source or contribute? Continue to Getting Started from Source.
What Is FileTerm?
FileTerm is built for daily remote work by developers and operations teams. It brings remote terminals, file management, transfer tasks, and connection profiles into one desktop workspace.
- SSH sessions pair terminal work naturally with SFTP file panels.
- FTP/FTPS sessions use a focused file-only workflow.
- Multiple connections run side by side in tabs without interrupting each other.
- Uploads, downloads, progress, and errors are managed in one transfer center.
- Connection profiles, workspace state, and themes are designed for long-term daily use.
The official release focuses on the most frequent SSH / SFTP / FTP / FTPS workflows: reliable remote terminals, file operations, and transfers.
Core Capabilities
| Capability | Description |
|---|---|
| SSH profile management | Create, edit, delete, and group SSH profiles with JSON persistence. |
| FTP/FTPS profile management | Uses a connection model kept separate from SSH and supports secure FTP transfers. |
| SSH terminal | Powered by xterm.js with input/output, resize, search, clipboard support, and a floating command bar. |
| SFTP file management | Browse remote directories; read, write, create, delete, rename, and change permissions. |
| FTP/FTPS file management | FTP/FTPS sessions with remote browsing, file operations, and resumable transfers. |
| File editor | A Monaco Editor-based two-pane file tree and editor with syntax highlighting, find/replace, encoding, and language controls. |
| Terminal directory sync | Keeps the active SSH working directory and file manager in sync. |
| Root privilege sync | Detects sudo / su in the terminal and synchronizes the file-manager permission context. |
| Virtualized file list | Uses virtual scrolling for efficient browsing of large remote directories. |
| Transfer center | Centralized uploads, downloads, resume support, progress, speed, cancellation, and recursive folder transfers. |
| Workspace tabs | Parallel connections, disconnect/reconnect, persisted state, and animated tab transitions. |
| Command templates | Grouped quick commands, parameter placeholders, and one-click sending. |
| Theme system | Dark and light themes through tokens, CSS variables, and component skins. |
| Remote status monitoring | Connection status and system-resource summaries. |
| Theme and desktop shell | Dark and light themes, sidebars, file drawer, focus mode, and dedicated management windows. |
Technology Stack
| Desktop | Renderer | Language | Terminal | Editor | Protocols | Tooling |
|---|---|---|---|---|---|---|
| Tauri v2 | React + Vite | Rust + TypeScript | xterm.js | Monaco Editor | russh/russh-sftp + suppaftp + tokio-* | Cargo + npm workspaces |
renderer UI -> React workspace, tabs, files, terminal
Tauri bridge -> typed Rust command/event boundary
Rust services -> session lifecycle, storage, update and protocol services
protocols -> russh SSH/SFTP, FTP/FTPS, Telnet and Serial adapters
theme system -> tokens -> vars -> skins -> terminal colors
Architecture Principles
Renderer UI
-> Application State
-> Tauri API bridge
-> Rust commands/events
-> Desktop services
-> Session workers
-> Protocol clients
packages/coreis the single source of truth for domain models.- The renderer never accesses SSH, SFTP, or FTP/FTPS protocol clients directly.
- All system capabilities are exposed through
Rust commands/events -> tauri-api.ts -> renderer. - SSH/SFTP and FTP/FTPS remain separate at controller and protocol layers.
- Transfer progress enters one transfer system instead of being maintained separately by components.
See docs/architecture.md for the complete architecture map.
Getting Started from Source
Requirements
- Node.js >= 22.12.0
- npm
- Rust stable, plus the Tauri system dependencies for your platform
On Linux (Ubuntu/Debian) you also need the GTK and WebKit runtimes:
# Ubuntu 24.04 and newer
sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf build-essential libssl-dev
# On Ubuntu 22.04, replace 4.1 with 4.0
npm run dev requires a local graphical session. GTK cannot initialize over plain SSH, on a headless server, or in a Wayland session without XWayland. In those cases the launcher prints the current display environment and troubleshooting hints instead of a bare GTK panic.
Install and Run
npm install
npm run dev
dev, build, and typecheck build @fileterm/core, @fileterm/shared, and @fileterm/storage first, since their entry points resolve to dist/. No manual build step is needed after a fresh clone.
Common Commands
npm run dev
npm run test
npm run typecheck
npm run build
npm run release:mac
npm run release:win
npm run release:linux
Releases and Updates
- A
vX.Y.Ztag on arelease/*commit runs the Tauri-only Release Action and publishes macOS arm64/x64 DMGs and signed updater archives, Windows x64/arm64 NSIS installers and portable executables, and Linux x86_64/arm64.deb,.rpm, and.AppImagepackages plus Arch x86_64/Arch Linux ARM aarch64.pkg.tar.zstpackages. - The release jobs publish signed Windows installers/portable executables, macOS updater archives, and Linux AppImage/DEB/RPM payloads with
.sigfiles. A combinedlatest.jsoncontains architecture- and format-specific entries; clients verify the matching package before updating. Linux payloads are signed after final repacking, including AppImage removal of display libraries that must match the host's Mesa/EGL stack. - Configure the repository Actions Secret
TAURI_SIGNING_PRIVATE_KEYwith the Tauri updater private-key contents. Never commit that private key. - macOS release bundles use ad-hoc signing without an Apple Developer certificate or notarization. The in-app updater verifies signed
.app.tar.gzarchives, backs up the old app before installation, and restarts after saving transfer checkpoints. Install the app in a writable Applications folder; first launch or a blocked update may require Open Anyway in Privacy & Security. Existing versions without the macOS updater need one manual DMG installation first.
Repository Layout
fileterm/
apps/
tauri/ # Tauri + Rust desktop app
src/
bridge/ # typed Tauri command/event API
renderer/ # React workspace UI
src-tauri/ # Rust commands, services, sessions, and bundling
packages/
core/ # domain types
storage/ # repository abstractions
shared/ # shared constants and utilities
docs/
architecture.md # architecture map
roadmap.md # product roadmap
plans/ # active and completed execution plans
decisions/ # architecture decisions
quality/ # quality and release checks
AGENTS.md # map for human and AI collaborators
Roadmap
Post-release priorities:
- Keep improving the stability and usability of the
SSH / SFTP / FTP / FTPScore workflows. - Keep refining the Tauri workspace, session service, and renderer boundaries.
- Continue consolidating domain types in
packages/core. - Improve transfer tasks, errors, themes, terminal input, file drawers, and the desktop shell.
- Maintain release quality and distribution for macOS, Windows, and Linux.
See docs/roadmap.md for the full plan.
Open Source Components
- xterm.js for SSH terminal rendering, input/output, and resize handling.
- Monaco Editor for file editing, syntax highlighting, and search/replace.
- Bundled fonts and icon fonts: see THIRD_PARTY_NOTICES.md for their licenses and sources.
Contributing
This repository treats the codebase as its record system:
- AGENTS.md is the entry map for collaboration.
- docs/architecture.md records stable architecture facts.
- docs/plans/active contains active cross-layer plans.
- docs/decisions records confirmed architecture decisions.
- .agents/extensions contains feature drafts and extension designs.
For a substantial feature, please add or update an active plan before writing code.
Contributors
Thank you to everyone who makes FileTerm better.
Community
Scan the QR code to join the FileTerm WeChat community for usage discussions, feedback, and product updates.
You can also join the QQ group: 534418986.

Support the Project
If FileTerm helps you, please consider starring the project on GitHub:
License
FileTerm source code is open-sourced under the MIT License. Bundled fonts and icon fonts remain under their respective licenses; see THIRD_PARTY_NOTICES.md.