Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Push & PullNew to Visual Studio Code? Get it now.
Push & Pull

Push & Pull

Andreas Express

|
1 install
| (0) | Free
A deploy interface for pushing and pulling files with FTP, SFTP, FTPS, WebDAV, S3, S3-compatible storage, SMB, Swift, Azure Blob, Google Cloud Storage, Backblaze B2 and others inside your favorite IDE
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Push & Pull ⬆⬇

Push & Pull is a deploy interface for VS Code and JetBrains IDEs (under development).

It keeps the workflow simple: push files up, pull files down, and deploy without leaving the editor. Push & Pull adds upload/download context menus, editor toolbar icons, and shortcuts for fast file transfers. Use Ctrl+Up to push/upload the current file and Ctrl+Down to pull/download it. On macOS, use Cmd+Up and Cmd+Down.

It is meant to feel quick and practical inside VS Code, like a tiny deploy cockpit for the files you are already editing.

Push & Pull screenshot

Supported Protocols

Push & Pull can work with many production-friendly storage and deploy targets, including:

  • FTP
  • SFTP
  • FTPS
  • SSH
  • WebDAV
  • S3
  • S3-compatible storage
  • SMB
  • Swift
  • Azure Blob Storage
  • Google Cloud Storage
  • Backblaze B2
  • Many others

IDE Actions

Push & Pull adds visible IDE actions, not just command palette commands.

For files, you can use:

  • Explorer file context menu
  • editor right-click context menu
  • editor title toolbar up/down icons
  • keyboard shortcuts

File actions:

  • Push (Upload)
  • Pull (Download)

For folders, right-click a folder in the Explorer:

  • Push Folder (Upload)
  • Pull Folder (Download)

In VS Code, the editor title toolbar shows the up/down arrow icons for the current file when there is enough room in the editor header. If VS Code hides one of them, it is usually available in the editor title ... menu.

In JetBrains IDEs, the plugin is still under development. The planned actions are Project View context menu, editor context menu, Tools menu, and main toolbar actions.

Editor shortcuts:

  • Ctrl+Up: push/upload the current file
  • Ctrl+Down: pull/download the current file
  • macOS uses Cmd+Up and Cmd+Down

The extension sends deploy commands into an IDE terminal named Push & Pull.

Settings

Open IDE Settings and search for Push & Pull.

Available settings:

  • Push Pull: Transfers: rclone --transfers, default 4
  • Push Pull: Checkers: rclone --checkers, default 8

These control how many transfers and checks rclone runs in parallel. They work across deploy protocols such as FTP, SFTP, SSH, WebDAV, S3, and others, but the best value depends on the server. The defaults are conservative for shared hosting. If your backend is fast and stable, you can raise the numbers.

Config and Setup

Put rclone.conf in the project root.

Do not forget to add rclone.conf to your .gitignore, especially if it contains passwords, tokens, or pass-visible.

Create a config file for your server in rclone.conf. The name inside brackets is your remote name. Users should choose their own names. In this example, the server remote is called [my-server]:

[my-server]
type = ftp
host = example.com
user = my-user
port = 21
explicit_tls = true
passive = true
no_check_certificate = true
pass-visible = my-password
pass = generated-by-rclone

If your website files live inside a deploy folder, you can also create an alias that points directly there. Use your own project name here too:

[my-project]
type = alias
remote = your-real-remote:/httpdocs

For example:

[my-project]
type = alias
remote = my-server:/httpdocs

[my-project] is only an example. You can call it [deploy], [website], [client-site], or any name that makes sense for your project.

Push & Pull always uses my-project: as the project deploy remote, so create a [my-project] alias in rclone.conf.

Then the extension can use clean paths like:

my-project:/test/1.html

instead of requiring the deploy folder in every command.

Password Handling

If rclone.conf contains:

pass-visible = your-password

Push & Pull silently runs:

rclone obscure

through an internal process before every push or pull action. It then writes the generated rclone password under pass-visible:

pass-visible = your-password
pass = generated-by-rclone

Command Examples

Upload a file:

rclone --config .\rclone.conf copy .\test-1.html my-project: --progress

Download a file:

rclone --config .\rclone.conf copy my-project:/test-1.html . --progress

Upload a folder:

rclone --config .\rclone.conf copy .\test my-project:/test --progress

Download a folder:

rclone --config .\rclone.conf copy my-project:/test .\test --progress

Requirement

As you can see, Push & Pull runs rclone as a backend for uploading and downloading files. You must install rclone on your computer and make sure it is available in your terminal PATH.

Windows:

winget install Rclone.Rclone

macOS with Homebrew:

brew install rclone

Linux, macOS, or BSD with the official install script:

sudo -v ; curl https://rclone.org/install.sh | sudo bash

Manual download:

https://rclone.org/downloads/

After installing, restart VS Code or open a new terminal and check:

rclone version

Push it when it feels right. Pull it before things get messy. 😂

Contributing

This section is for people who want to help with the programming of Push & Pull.

The main idea is intentionally simple: Push & Pull does not implement its own deploy logic. We do not crawl directories, compare files, upload chunks, or re-create sync behavior ourselves. That work belongs to rclone.

Push & Pull is the IDE layer around that workflow. It adds icons, context menu actions, shortcuts, and settings inside the editor, then runs rclone with the project's rclone.conf so files and folders can be pushed and pulled from the IDE.

The extension backend should stay small:

  • handle pass-visible by generating the correct pass value with rclone obscure
  • build the correct rclone copy command for the selected file or folder
  • open the IDE terminal
  • send the command to the terminal so the user can see and control what runs

Everything after that should be handled by rclone.

The VS Code extension is the active implementation. The JetBrains plugin files are currently in construction and have not been tested yet with runIde or a packaged plugin build.

More

See more smart solutions and practical tools at ceres-assistant.com.

License

Push & Pull is licensed under the GNU General Public License v3.0 or later.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft