RemoteSync
No description provided
Details
Installs
- Total 21
- Win 7
- Mac 6
- Linux 8
| Jun 5 | Jun 4 | Jun 3 | Jun 2 | Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | May 16 | May 15 | May 14 | May 13 | May 12 | May 11 | May 10 | May 9 | May 8 | May 7 | May 6 | May 5 | May 4 | May 3 | May 2 | May 1 | Apr 30 | Apr 29 | Apr 28 | Apr 27 | Apr 26 | Apr 25 | Apr 24 | Apr 23 | Apr 22 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 2 | 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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 3 | 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 |
| Linux | 0 | 1 | 1 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 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 |
Readme
- Source
- raw.githubusercontent.com
RemoteSync
A Sublime Text 4 plugin for syncing files to remote servers via SFTP, FTP, FTPS, and SCP.
Features
- Upload on save — files sync automatically when you hit Ctrl+S
- Batch upload/download entire folders with parallel connections
- Interactive remote file browser
- Diff local vs remote file before overwriting
- Multiple configs — one per subfolder, each with its own server
- Run commands on the server after each upload (e.g.
sudo systemctl reload nginx) - Run local commands before upload (e.g.
npm run build) - Connection pooling with keepalive — no reconnect on every save
- Output panel with animated progress, auto-hides after operations finish
- JSON config with comment support (
// commentsallowed) - Auto-converts PuTTY
.ppkkeys to OpenSSH format
Installation
Via Package Control (recommended)
- Open the Command Palette:
Ctrl+Shift+P - Run Package Control: Install Package
- Search for RemoteSync and install
Manual
Clone or download this repo into your Sublime Text Packages/ folder:
Packages/RemoteSync/
Requirements
- Sublime Text 4
- OpenSSH (
sftp,scp,ssh) — included on macOS/Linux; on Windows install Git for Windows or enable the optional OpenSSH feature
Setup
Right-click any folder in the sidebar and select RemoteSync → Setup Remote Server…
A remote-sync-config.json file will be created. Fill in your server details:
{
"type": "sftp",
"host": "your-server.com",
"user": "username",
"password": "password",
"remote_path": "/var/www/mysite/",
"upload_on_save": true
}
Multiple servers
Place a separate remote-sync-config.json in each subfolder. Files automatically use the nearest config (walking up the tree) when saved.
When the project has more than one config, RemoteSync: - Logs a one-time notice listing every config and which folders they cover. - Shows the absolute remote path in the output panel for every upload/download, so you can see exactly where each file lands.
To verify which config applies to a file, right-click it → RemoteSync → Show Effective Config (also in the command palette). It shows the resolved config, the local→remote mapping, and any nested configs.
Single destination? Set "inherit_root_only": true in the root config to ignore all nested configs and always use the root.
Config inheritance
A nested config can share the parent's server and override only what changes. Set "inherit_parent": true and define just the differing keys:
// root: full credentials
{ "host": "h", "user": "u", "password": "p", "remote_path": "/var/www/site" }
// themes/custom/remote-sync-config.json — same server, different folder
{ "inherit_parent": true, "remote_path": "/var/www/site/themes/custom" }
The nested config inherits host, user, password, etc. from the nearest config above it. Change the password once in the root and every inheriting config follows.
Without inherit_parent, a nested config is fully independent — use this when the subfolder targets a completely different server.
Configuration
| Key | Default | Description |
|---|---|---|
type |
sftp |
Protocol: sftp, ftp, ftps, scp |
host |
— | Server hostname or IP |
user |
— | Login username |
password |
— | Login password (or use ssh_key_file) |
ssh_key_file |
— | Path to private key (~/.ssh/id_rsa) |
port |
22 |
Server port |
remote_path |
— | Base remote directory |
upload_on_save |
false |
Auto-upload on every save |
auto_create_dirs |
false |
Create remote dirs if missing |
parallel_connections |
4 |
Workers for folder operations (1–8) |
retry_count |
0 |
Auto-retry failed transfers |
keepalive |
0 |
Seconds between keepalive pings |
pre_upload_command |
— | Local command before upload |
post_upload_command |
— | Remote command after upload |
ignore_regexes |
[] |
Patterns to skip (e.g. "\\.git/") |
exclude_extensions |
[] |
Extensions to skip (e.g. ".log") |
max_file_size_mb |
— | Skip files larger than this |
Plugin Settings
Open via Preferences → Package Settings → RemoteSync → Settings:
{
"show_panel_on_error": true,
"auto_hide_panel": 4,
"log_operations": true
}
auto_hide_panel— seconds before the output panel closes after success (0= never hide)
Commands
All commands are available via:
- Right-click on files/folders in the sidebar
- Command Palette (Ctrl+Shift+P) — search “RemoteSync”
| Command | Description |
|---|---|
| Upload File | Upload current file |
| Download File | Download current file from server |
| Upload Folder | Batch upload entire folder |
| Download Folder | Batch download entire folder |
| Browse Server | Interactive remote file browser |
| Diff with Remote | Compare local vs remote |
| Rename Local and Remote | Rename on both sides |
| Delete Local and Remote | Delete on both sides |
| Setup Remote Server | Create config for selected folder |
| Edit Server Config | Open config for selected path |
Disabling the context menu
To disable or customize the context menu:
- Create a
RemoteSyncdirectory inside yourPackagesdirectory (find it via Preferences → Browse Packages) - In that directory place a
Context.sublime-menufile. You can use this package's original menu as a starting point
This copy overrides the original. You can remove the entries you don't want, or use just [] to disable the menu completely.
The same applies to the sidebar menu — use Side Bar.sublime-menu instead.
License
MIT