ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Remote​Tree​FTP

by samoyluk ST4 Mac New

FTP/FTPS file tree for Sublime Text 4 with conflict checks, local version history, numeric permissions and English/Russian UI.

Labels utilities

Details

  • 0.1.1
  • github.​com
  • github.​com
  • 4 weeks ago
  • 51 minutes ago
  • 51 minutes ago

Installs

  • Total 1
  • Win 0
  • Mac 1
  • Linux 0
Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6 Nov 5 Nov 4 Nov 3 Nov 2 Nov 1 Oct 31 Oct 30 Oct 29 Oct 28 Oct 27 Oct 26 Oct 25 Oct 24 Oct 23 Oct 22 Oct 21 Oct 20 Oct 19 Oct 18 Oct 17 Oct 16 Oct 15 Oct 14 Oct 13 Oct 12 Oct 11 Oct 10 Oct 9 Oct 8 Oct 7 Oct 6 Oct 5 Oct 4 Oct 3 Oct 2 Oct 1 Sep 30 Sep 29 Sep 28
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

RemoteTreeFTP

A browsable FTP/FTPS file tree for Sublime Text 4, inspired by the workflow of NppFTP. Open remote files, edit them beside the tree, and upload changes with conflict checks and local backups.

Русская инструкция · Releases

Requirements

  • Sublime Text 4, build 4107 or newer.
  • macOS is the initial supported platform. Windows/Linux are not yet validated.
  • An FTP or explicit FTPS account. SFTP and implicit FTPS are not supported.
  • Package Control for the recommended installation method.

Install

Through Package Control before catalog acceptance

  1. In Sublime Text, open Tools → Install Package Control if Package Control is not installed.
  2. Press Cmd+Shift+P, choose Package Control: Add Repository, and paste:
https://github.com/samoyluk/RemoteTreeFTP
  1. Open the command palette again and choose Package Control: Install Package.
  2. Search for RemoteTreeFTP and select it.
  3. Restart Sublime Text. Open File → RemoteTreeFTP.

The public repository and a release tag must exist for these steps to work. The package is not yet accepted into the default catalog. Once accepted, you can skip Add Repository and install it directly by name.

Manual installation on macOS

  1. Download RemoteTreeFTP.sublime-package from Releases. Use the package asset, not GitHub's “Source code” ZIP.
  2. Quit Sublime Text with Cmd+Q.
  3. In Finder, press Cmd+Shift+G and enter:
~/Library/Application Support/Sublime Text/Installed Packages/
  1. Copy RemoteTreeFTP.sublime-package into this folder. Choose Replace when updating.
  2. Start Sublime Text. The File → RemoteTreeFTP menu should appear.

Do not double-click the package. Copy it into Installed Packages, not Packages. For a portable or nonstandard Sublime installation, use Browse Packages, go one folder up, and locate Installed Packages there.

Existing manual installations

Keep your User/RemoteTreeFTP.sublime-settings file: it holds your profiles and language. If you previously unpacked the plugin into Packages/RemoteTreeFTP, that directory can override the installed archive. Move only that plugin directory outside Packages before switching installation methods. Do not remove the User directory or other plugins. Package Control handles subsequent updates once it manages the installation.

First connection

  1. Choose File → RemoteTreeFTP → Language / Язык → English if needed.
  2. Choose Add Server… and enter a name, host, username, port, starting folder, protocol, and upload mode. Typical FTP/explicit FTPS port: 21.
  3. Choose Connect…, select the server and enter its password.
  4. On macOS, optionally save the password in Keychain, or use it only for this session.
  5. A separate Sublime window opens: folders on the left, file editor on the right.

Use Edit Server… to edit a profile and Connect with Another Password… to replace an old password. Profiles are preserved when you update the plugin.

Working with files

  • Click a folder to expand/collapse it. Expanded folders are remembered per connection.
  • Click a file to download and open it. Its server path is shown in the status bar.
  • With upload on save enabled, Cmd+S saves locally and uploads to the server.
  • For manual mode, save locally and choose File → RemoteTreeFTP → Upload Current File.
  • File badges distinguish modified, uploading, uploaded, failed and conflicting states.
  • Click ⋯ for creation, rename, deletion, path copying, permissions and version history.
  • Click a permissions badge to enter numeric modes such as 644, 755 or 777. Only the selected item is changed; there is no recursive chmod.
  • Refresh Tree rereads expanded folders. Disconnect stops further queued operations; an already running transfer may complete.

The tree occupies an editor group; it is not Sublime's native sidebar. Standard tab hover text shows the local working path, which includes the remote directory structure. No default keyboard shortcuts or native right-click menu entries are added.

Conflicts and backups

Before uploading, the plugin rereads the server file and checks it against the downloaded version. A conflict offers cancellation, a text comparison, or an explicitly confirmed overwrite. FTP cannot make checking and writing atomic: another client can still modify a file in the short interval between these operations.

Before overwriting, the previous server contents are backed up locally. If backup creation fails, the upload stops. The latest 10 copies per file and connection are retained. Backups are made before uploads, not before deletion.

Choose ⋯ → Version history… to view a backup, compare it with the server, or restore it into a separate editable working copy. Restored copies never upload automatically, even on Cmd+S. Review them, save, and use Upload Current File explicitly. Restoring a deleted server file is not supported. Text comparison supports UTF-8 files; binary/non-UTF-8 files still receive byte-level conflict checks.

Settings and local storage

Settings (File)… opens defaults on the left and user settings on the right. Edit only the right-hand side. You can use the wizard instead of editing JSON.

{
    "language": "en",
    "profiles": [
        {
            "name": "My server",
            "host": "ftp.example.com",
            "port": 21,
            "protocol": "ftps",
            "username": "my-login",
            "remote_path": "/www",
            "encoding": "utf-8",
            "passive": true,
            "upload_on_save": true
        }
    ]
}

Passwords are not written to the profile file. macOS may ask for Keychain access. The standard Sublime password input is not guaranteed to mask characters. FTP is unencrypted; explicit FTPS validates the server certificate.

Profiles: Packages/User/RemoteTreeFTP.sublime-settings. Tree state: Packages/User/RemoteTreeFTP-tree.sublime-settings. Backups: RemoteTreeFTP Backups beside Packages and Installed Packages, normally ~/Library/Application Support/Sublime Text/RemoteTreeFTP Backups/. Backups are not encrypted, have no overall size limit, and remain associated with their old path after remote rename. Working copies remain in system temporary folders named RemoteTreeFTP-*; they are not automatically deleted, to preserve unsent edits.

Troubleshooting

  • No menu: check that the archive is in Installed Packages, restart, and look for RemoteTreeFTP in Sublime's console errors. Check ignored_packages and unpacked overrides.
  • Permissions show “—”: the server did not report Unix mode information. This does not mean 000. Changing permissions requires server support for SITE CHMOD.
  • Connection failure: check host, port, protocol, login, starting folder and passive mode. SFTP accounts require a different client.
  • Old password: choose Connect with Another Password…. Old Keychain entries can be removed in macOS Keychain Access by searching for RemoteTreeFTP.
  • Upload failure: your saved local copy is retained. Fix the connection and retry manually.

Report issues at GitHub Issues. Include the plugin version, Sublime build, macOS version and sanitized error text. Do not attach passwords or confidential server contents.

Development and verification

python3 tools/test.py
python3 tools/build.py

The suite uses a simulated Sublime API and FTP objects; it is not an end-to-end test of the real editor, server or Keychain dialogs. See PUBLISHING.md for the manual release checklist. Tests and maintainer files are excluded from packages.

MIT license. Maintained by samoyluk.