Skip to content

[Feature]: Support FTP/SFTP protocol for connecting to legacy servers #3434

Description

@EdsionGuan

Feature description

Is your feature request related to a problem? Please describe.

I have several legacy project servers that only support FTP/SFTP connections for file transfers, and do not allow SSH shell access due to security policies. Currently, I cannot use Wave Terminal to manage files on these servers directly, and have to rely on separate FTP clients, which breaks my workflow.

I would like Wave Terminal to support FTP and SFTP protocols as additional file system backends, similar to how wsh currently handles file operations with wsh://local/ paths.

Ideally, I could use commands like:

This would allow seamless file management across local, remote SSH, and legacy FTP/SFTP servers within the same wsh command ecosystem, making Wave Terminal a unified file management hub.

Describe alternatives you've considered

  • Using a standalone FTP client (works but breaks workflow integration and requires context switching)
  • Mounting FTP via third-party tools like curlftpfs or sshfs (unstable, requires extra dependencies and setup)
  • Deploying wsh directly on the legacy server (not possible due to restricted environments and lack of shell access)
  • Using sftp command-line tool in a terminal block (works, but lacks integration with wsh file commands and Wave's unified file management)

Additional context

  • The project already shows signs of extensible file system backends (e.g., S3 support), so adding FTP/SFTP as a new fileshare module may be architecturally feasible.
  • SFTP uses the SSH protocol, which might be partially reusable from the existing SSH connection logic in the codebase.
  • Many developers still maintain legacy systems that only expose FTP/SFTP interfaces, so this feature could benefit a significant number of users.

Implementation Suggestion

No response

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttriageNeeds triage

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions