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.

v2.3.3发布于 2026-11-02 14:26 UTC429star +2 / 7 天59fork同步于 2026-11-10 12:00 UTC

怎么上手

由 README 提炼,执行前请确认
npm install
npm run dev
硬件要求按 README 说明

README 未说明显存或 GPU 要求;这是桌面客户端,需在带图形界面的本机运行,纯 SSH、无头服务器或无 XWayland 的 Wayland 会话下无法启动。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 Tauri 的桌面远程工作台,把 SSH 终端、SFTP 与 FTP 文件管理和传输任务集中到一个客户端

基于 Tauri、Rust 和 React 打造的轻量远程桌面工作台,把 SSH、SFTP 和 FTP/FTPS 连接与文件管理整合到一个界面里,方便运维和开发人员集中管理远程服务器。

核心能力

  • SSH 会话与 SFTP 文件面板配对使用
  • FTP/FTPS 采用独立连接模型,只做文件管理
  • 多连接以标签页并行运行互不干扰
  • 上传下载进度与错误统一在传输中心管理
  • 连接配置以 JSON 持久化并支持分组

容易踩的坑

从源码运行需 Node.js >= 22.12.0、npm、Rust stable 及对应平台的 Tauri 系统依赖;Linux 需额外安装 WebKitGTK 4.1(Ubuntu 22.04 用 4.0)等 GTK 运行库;macOS 发布包仅做 ad-hoc 签名、未公证,首次启动或更新被拦需在隐私与安全里选仍要打开。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.3.3
  1. 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 兼容性、文件传输诊断和管理界面。

    下载地址

    平台类型下载
    macOSDMGApple silicon · Intel
    WindowsInstallerx64 · ARM64
    WindowsPortablex64 · ARM64(需要 WebView2 Runtime)
    LinuxDEBx86_64 · ARM64
    LinuxRPMx86_64 · ARM64
    LinuxAppImagex86_64 · ARM64
    LinuxArchx86_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

  2. 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 调用审计记录,并优化设置页与常用对话框的交互体验。

    下载地址

    平台类型下载
    macOSDMGApple silicon · Intel
    WindowsInstallerx64 · ARM64
    WindowsPortablex64 · ARM64(需要 WebView2 Runtime)
    LinuxDEBx86_64 · ARM64
    LinuxRPMx86_64 · ARM64
    LinuxAppImagex86_64 · ARM64
    LinuxArchx86_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 |

  3. 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 下载文件大小与实际内容不一致的问题。

    下载地址

    平台类型下载
    macOSDMGApple silicon · Intel
    WindowsInstallerx64 · ARM64
    WindowsPortablex64 · ARM64(需要 WebView2 Runtime)
    LinuxDEBx86_64 · ARM64
    LinuxRPMx86_64 · ARM64
    LinuxAppImagex86_64 · ARM64
    LinuxArchx86_64 · ARM64

    安装指南

    简体中文安装指南

    2.3.4-beta.1 更新重点

    • SSH 动态验证码:可保存 OTP 密钥,在明确匹配的 keyboard-interactive 提示中自动生成并提交 TOTP。密码或私钥认证均可配合使用;其他或不明确的验证提示仍需手动输入。
    • OTP 安全:OTP 密钥复用加密凭据存储,公开连接信息只返回是否已保存,不记录密钥内容。
    • SFTP 下载修复:按服务器声明的文件大小完成下载,避免文件内容尚未接收完整时提前结束。
    • 连接设置:整理认证、二次验证和连接对象的表单布局,补充用户名、密码可留空的提示。

    本版本包含的主要 PR 和问题修复

    • PR #377:增加 SSH OTP 自动填写并优化连接设置。
    • PR #376:修复 SFTP 下载未完整接收文件的问题。

    完整变更记录请查看 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

  4. v2.3.3最新正式版2026-11-02 · 2026-11-02 14:26 UTC

    FileTerm 2.3.3

    FileTerm 2.3.3 改进 MCP 远程目录访问的路径提示,帮助 Agent 区分 SFTP 用户视图与提权 Shell 视图。

    下载地址

    平台类型下载
    macOSDMGApple silicon · Intel
    WindowsInstallerx64 · ARM64
    WindowsPortablex64 · ARM64(需要 WebView2 Runtime)
    LinuxDEBx86_64 · ARM64
    LinuxRPMx86_64 · ARM64
    LinuxAppImagex86_64 · ARM64
    LinuxArchx86_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

  5. v2.3.22026-10-29 · 2026-10-29 10:55 UTC
    查看更新说明

    FileTerm 2.3.2

    FileTerm 2.3.2 加入服务器间文件传输,并整合 Linux 应用内更新与桌面工作区体验改进。AppImage 需要放在当前用户可写的位置;DEB/RPM 更新可能需要管理员授权;Arch 和其他不受支持的安装仍通过发布页更新。

    下载地址

    平台类型下载
    macOSDMGApple silicon · Intel
    WindowsInstallerx64 · ARM64
    WindowsPortablex64 · ARM64(需要 WebView2 Runtime)
    LinuxDEBx86_64 · ARM64
    LinuxRPMx86_64 · ARM64
    LinuxAppImagex86_64 · ARM64
    LinuxArchx86_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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译


    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 .exe files; installed builds download, verify, and install architecture-matched updates after restart.
    • Linux: x86_64 and arm64 .deb, .rpm, and .AppImage packages, plus Pacman .pkg.tar.zst packages 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.

    FormatArchitectures and supported systemsInstall or run
    .AppImagex86_64, arm64; major Linux desktop distributions with AppImage supportchmod +x FileTerm-*-linux-<arch>.AppImage && ./FileTerm-*-linux-<arch>.AppImage
    .debx86_64, arm64; Debian, Ubuntu, and derivativessudo apt install ./FileTerm-<version>-linux-<arch>.deb
    .rpmx86_64, arm64; Fedora, openSUSE, and RPM distributions with WebKitGTK 4.1 and OpenSSL 3Fedora: sudo dnf install ./FileTerm-<version>-linux-<arch>.rpm; openSUSE: sudo zypper install ./FileTerm-<version>-linux-<arch>.rpm
    .pkg.tar.zstx86_64; Arch Linux, Manjaro, EndeavourOS, and Arch derivatives; aarch64; Arch Linux ARMsudo 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

    CapabilityDescription
    SSH profile managementCreate, edit, delete, and group SSH profiles with JSON persistence.
    FTP/FTPS profile managementUses a connection model kept separate from SSH and supports secure FTP transfers.
    SSH terminalPowered by xterm.js with input/output, resize, search, clipboard support, and a floating command bar.
    SFTP file managementBrowse remote directories; read, write, create, delete, rename, and change permissions.
    FTP/FTPS file managementFTP/FTPS sessions with remote browsing, file operations, and resumable transfers.
    File editorA Monaco Editor-based two-pane file tree and editor with syntax highlighting, find/replace, encoding, and language controls.
    Terminal directory syncKeeps the active SSH working directory and file manager in sync.
    Root privilege syncDetects sudo / su in the terminal and synchronizes the file-manager permission context.
    Virtualized file listUses virtual scrolling for efficient browsing of large remote directories.
    Transfer centerCentralized uploads, downloads, resume support, progress, speed, cancellation, and recursive folder transfers.
    Workspace tabsParallel connections, disconnect/reconnect, persisted state, and animated tab transitions.
    Command templatesGrouped quick commands, parameter placeholders, and one-click sending.
    Theme systemDark and light themes through tokens, CSS variables, and component skins.
    Remote status monitoringConnection status and system-resource summaries.
    Theme and desktop shellDark and light themes, sidebars, file drawer, focus mode, and dedicated management windows.

    Technology Stack

    DesktopRendererLanguageTerminalEditorProtocolsTooling
    Tauri v2React + ViteRust + TypeScriptxterm.jsMonaco Editorrussh/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/core is 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.Z tag on a release/* 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 .AppImage packages plus Arch x86_64/Arch Linux ARM aarch64 .pkg.tar.zst packages.
    • The release jobs publish signed Windows installers/portable executables, macOS updater archives, and Linux AppImage/DEB/RPM payloads with .sig files. A combined latest.json contains 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_KEY with 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.gz archives, 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:

    1. Keep improving the stability and usability of the SSH / SFTP / FTP / FTPS core workflows.
    2. Keep refining the Tauri workspace, session service, and renderer boundaries.
    3. Continue consolidating domain types in packages/core.
    4. Improve transfer tasks, errors, themes, terminal input, file drawers, and the desktop shell.
    5. 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:

    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.

    FileTerm WeChat community QR code

    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.