Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>RemoteForge SFTPNew to Visual Studio Code? Get it now.
RemoteForge SFTP

RemoteForge SFTP

Ferhat Akkopru

|
2 installs
| (1) | Free
Lightweight SSH/SFTP remote file editor with conflict detection, sync control, and transparent logging
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

RemoteForge

English | Türkçe


RemoteForge (English)

RemoteForge is a lightweight, reliable VS Code extension for directly editing remote files over SSH/SFTP as if they were local workspace files.

Engineered to resolve common pain points found in existing SFTP extensions, such as silent UI hangs, accidental file overwrites, and slow directory browsing latency.

💡 Key Features

  • No UI Freezes (Native FileSystemProvider): Integrates remote directories into VS Code using a custom remoteforge:// URI scheme. Keeps the editor responsive even during network hiccups.
  • Instant Directory Browsing (Smart Stat Cache): Pre-caches child metadata during directory reads (READDIR). Sub-queries for file stats hit RAM instantly (0 ms latency) rather than triggering individual network roundtrips.
  • Prevents Data Overwrites (Conflict Detection): Compares the server's modification time (mtime) with the version you opened. If the file changed in between, the save is stopped and you choose: overwrite, load the remote version, or compare both.
  • Production Safety (Manual Sync Mode): Choose between instant auto-upload or queuing changes locally for explicit batch approval (Push Pending Changes).
  • Credential Security: Passwords and SSH keys are stored in the operating system's native keychain using VS Code SecretStorage — never written to disk or settings.json.
  • Resilient Connections: SSH protocol keepalives prevent idle disconnects, while guarded exponential-backoff reconnects hold file requests until the transport returns. The log names each handshake step, so a failed connection says where it stalled.
  • Host Key Verification: The server's fingerprint is confirmed on first use and checked on every later connection.
  • Integrated SSH Terminal: Opens a shell on the connected server inside VS Code's terminal panel.
  • Saved Working Folder: Each server profile remembers its default remote directory, so repeat connections do not require retyping a path.

🛠 Architecture & Request Flow

VS Code Explorer ──> RemoteFileSystemProvider ──> Smart Stat Cache ──> SftpClient ──> ConnectionManager (SSH2) ──> Remote Server
  1. ConnectionManager: Handles SSH2 lifecycle and exponential backoff reconnection strategies.
  2. Channel Deduplication: Reuses a single SFTP subsystem channel across concurrent operations to prevent SSH channel open failures.
  3. Connection Gate: Holds incoming file requests synchronously during activation until the SSH handshake resolves.

🚀 Quick Start (Development)

  1. Clone the repository and install dependencies:

    git clone git@github.com:FerhatAkkopru/RemoteForge.git
    cd RemoteForge
    npm install
    
  2. Compile the extension:

    npm run compile
    
  3. Open the project in VS Code and press F5 to launch the Extension Development Host.

📖 Usage Guide

  1. Add Server Profile: Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P), run RemoteForge: Add Server Profile, and enter host, port, credentials, and profile name.
  2. Connect to Server: Run RemoteForge: Connect to Server, pick your profile, and enter the remote absolute path (e.g. / or /var/www).
  3. View Logs: Run RemoteForge: Show Log to view real-time timestamped connection and SFTP operation logs in the Output panel.

⌨️ Registered Commands

Command Description
RemoteForge: Connect to Server Connects to a server and mounts a remote directory as workspace.
RemoteForge: Disconnect Terminates active SSH connection and unmounts remote folder.
RemoteForge: Add Server Profile Launches profile setup wizard for new server credentials.
RemoteForge: Change Saved Remote Folder Changes the default remote directory stored with a server profile.
RemoteForge: Delete Server Profile Removes saved profile and stored secret key from OS keychain.
RemoteForge: Push Pending Changes Flushes queued local modifications to remote server (Manual Mode).
RemoteForge: Show Log Focuses the extension's dedicated log channel in Output view.
RemoteForge: Open SSH Terminal Opens an interactive shell on the connected server in the terminal panel.
RemoteForge: Refresh (Clear Cache) Drops cached directory listings and reloads the remote file tree.

⚠️ Known Limitations

  • One Server at a Time: A window holds a single SSH connection. Tabs left open from another profile are refused instead of being served by the wrong server.
  • Manual Mode Queue Lives in Memory: Pending changes are not written to disk. RemoteForge asks before disconnecting or switching profiles, but closing or crashing VS Code discards them.
  • Authentication: Password and private key files are supported. ssh-agent and ~/.ssh/config are not read.
  • Large File Streaming: Files are currently buffered into memory during read/write operations. Extremely large files (>100MB) may cause memory spikes.
  • Local Git Integration: VS Code's native Git extension inspects the local filesystem; remote Git operations should be executed via the integrated SSH terminal (RemoteForge: Open SSH Terminal).
  • Workspace Search: Full-text workspace search relies on local filesystem indexing; remote search across millions of files is constrained by network latency.

RemoteForge (Türkçe)

RemoteForge, uzak sunuculardaki (SSH/SFTP) dosyaları VS Code içerisinden yerel dosya gibi doğrudan ve güvenli bir şekilde düzenlemenizi sağlayan hafif bir VS Code eklentisidir.

Piyasadaki SFTP eklentilerinde sıkça karşılaşılan donma (silent hang), dosya ezilmesi (overwriting) ve yavaş klasör yükleme problemlerini çözmek için geliştirilmiştir.

💡 Neden RemoteForge?

  • Donma Yok (Native FileSystemProvider): Uzak dosyaları VS Code sanal dosya sistemi (remoteforge://) olarak kaydeder. Ağ kesilse bile VS Code kilitlenmez.
  • Şak Diye Açılan Klasörler (Smart Stat Cache): Klasör açıldığında tüm alt dosyaların meta verileri tek ağ sorgusunda önbelleğe alınır. Klasör gezintisi 0 ms gecikmeyle çalışır.
  • Sessiz Veri Kaybını Önler (Conflict Detection): Sunucudaki değiştirilme zamanını (mtime) açtığınız sürümle karşılaştırır. Arada dosya değiştiyse kayıt durdurulur ve siz seçersiniz: üzerine yaz, sunucudakini getir veya ikisini karşılaştır.
  • Üretim Sunucuları İçin Güvenli (Manual Sync Mode): Dosyaları kaydettiğiniz an sunucuya göndermek yerine biriktirip tek tıkla onaylayarak canlıya push edebilirsiniz.
  • Güvenlik: Şifreleriniz veya SSH anahtarlarınız settings.json dosyasına yazılmaz; doğrudan işletim sisteminizin güvenli anahtarlığında (VS Code SecretStorage) saklanır.
  • Dayanıklı Bağlantı: SSH keepalive paketleri boşta kalınca kopmayı önler; kontrollü yeniden bağlanma sırasında dosya istekleri bağlantının dönmesini bekler. Log her el sıkışma adımını yazar; başarısız bağlantı nerede takıldığını söyler.
  • Sunucu Anahtarı Doğrulama: Sunucunun parmak izi ilk bağlantıda onaylanır, sonraki her bağlantıda kontrol edilir.
  • Entegre SSH Terminali: Bağlı sunucuda VS Code terminal panelinde kabuk açar.
  • Kayıtlı Çalışma Klasörü: Her sunucu profili varsayılan uzak dizinini hatırlar; her bağlantıda yolu yeniden yazmanız gerekmez.

🛠 Mimari & Çalışma Mantığı

VS Code Explorer ──> RemoteFileSystemProvider ──> Smart Stat Cache ──> SftpClient ──> ConnectionManager (SSH2) ──> Remote Server
  1. Connection Manager: SSH2 bağlantısını ve yeniden bağlanma (exponential backoff) mantığını yönetir.
  2. Channel Deduplication: Onlarca dosya isteği aynı anda gelse bile SSH kanal kilitlenmesini engellemek için SFTP alt sistemini tekil olarak paylaşır.
  3. Connection Gate: VS Code ilk açıldığında arka plan sorgularının sunucu bağlantısı tamamlanana kadar beklemesini sağlar.

🚀 Hızlı Başlangıç (Geliştirme)

  1. Repoyu klonlayın ve bağımlılıkları yükleyin:

    git clone git@github.com:FerhatAkkopru/RemoteForge.git
    cd RemoteForge
    npm install
    
  2. Projeyi derleyin:

    npm run compile
    
  3. VS Code'da projeyi açıp F5 tuşuna basarak eklentiyi çalıştırın.

📖 Kullanım Kılavuzu

  1. Profil Ekleme: Cmd+Shift+P (macOS) / Ctrl+Shift+P (Windows/Linux) basın ve RemoteForge: Add Server Profile komutunu seçin. Sunucu IP, port, kullanıcı adı ve şifre/key bilgilerinizi girin.
  2. Sunucuya Bağlanma: RemoteForge: Connect to Server komutunu çalıştırın, eklediğiniz profili seçin ve açmak istediğiniz uzak dizini (örneğin / veya /var/www) girin.
  3. Logları İzleme: Bağlantı ve dosya transfer detaylarını canlı izlemek için RemoteForge: Show Log komutunu kullanabilirsiniz.

⌨️ Komut Listesi

Komut Açıklama
RemoteForge: Connect to Server Kayıtlı bir sunucuya bağlanır ve uzak dizini workspace olarak açar.
RemoteForge: Disconnect Aktif sunucu bağlantısını ve uzak klasörü kapatır.
RemoteForge: Add Server Profile Yeni sunucu bağlantı profili oluşturur.
RemoteForge: Change Saved Remote Folder Profilde kayıtlı varsayılan uzak çalışma dizinini değiştirir.
RemoteForge: Delete Server Profile Kayıtlı profili ve şifreleri sistemden siler.
RemoteForge: Push Pending Changes Manuel senkronizasyon modunda bekleyen değişiklikleri sunucuya atar.
RemoteForge: Show Log Detaylı işlem ve hata log panelini açar.
RemoteForge: Open SSH Terminal Bağlı sunucuda terminal panelinde etkileşimli kabuk açar.
RemoteForge: Refresh (Clear Cache) Önbellekteki klasör listelerini temizler ve uzak dosya ağacını yeniler.

⚠️ Bilinen Sınırlandırmalar

  • Aynı Anda Tek Sunucu: Bir pencere tek SSH bağlantısı tutar. Başka profilden açık kalan sekmeler yanlış sunucudan sunulmak yerine reddedilir.
  • Manuel Mod Kuyruğu Bellekte: Bekleyen değişiklikler diske yazılmaz. Bağlantıyı keserken veya profil değiştirirken RemoteForge sorar, ancak VS Code kapanır veya çökerse bu değişiklikler kaybolur.
  • Kimlik Doğrulama: Parola ve özel anahtar dosyası desteklenir. ssh-agent ve ~/.ssh/config okunmaz.
  • Büyük Dosya Yönetimi: Dosya okuma/yazma işlemleri veriyi bellek üzerinde önbellekler. Çok büyük dosyalar (>100MB) RAM kullanımını artırabilir.
  • Yerel Git Entegrasyonu: VS Code'un yerleşik Git eklentisi yerel dosya sistemini tarar; uzak sunucu üzerindeki Git komutları entegre SSH terminali (RemoteForge: Open SSH Terminal) üzerinden çalıştırılmalıdır.
  • Tüm Workspace İçi Arama: Proje genelinde kelime araması ağ gecikmesine bağlıdır; devasa projelerde sunucu tarafı arama için SSH terminali kullanılması önerilir.

📄 License / Lisans

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft