Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

NuxSCP

NuxSCP is a cross-platform desktop application (macOS & Linux) for secure file transfers and SSH terminal access, designed as a modern alternative to WinSCP. It provides a dual-pane file manager interface for managing files over SFTP, FTP, and FTPS with robust support for SSH keys — plus a fully integrated multi-tab SSH terminal.

✨ Features

App Preview

NuxSCP Dashboard

NuxSCP Connection Settings
  • Dual-Pane File Manager: Side-by-side local and remote view for easy drag-and-drop or push-button transfers.
  • Protocol Support: Connect to servers via SFTP, FTP, or FTPS.
  • Auth Flexibility: Login seamlessly using Passwords, SSH key files (rsa, ed25519, pem), and passphrases.
  • Background Transfers: Built-in transfer queue with progress bars and independent status tracking (uploading/downloading).
  • Responsive & Modern UI: Built with a sleek macOS-native titlebar and GitHub-inspired dark mode layout. Features adjustable pane dividers (split views).
  • Connection Manager: Keep track of and easily modify saved server connections via an embedded datastore.
  • Integrated SSH Terminal: A dedicated SSH Terminal view powered by xterm.js with full multi-tab support. Open multiple concurrent shell sessions to different servers, each in its own tab — with auto-resize, clickable web links, and a GitHub-themed color scheme.

🛠️ Tech Stack

  • Electron (Backend & Window Management via IPC)
  • Vite (electron-vite framework for blazing-fast bundling)
  • React 18 + TypeScript
  • node-ssh2 & basic-ftp (Remote file protocol drivers)
  • xterm.js (@xterm/xterm) with addon-fit & addon-web-links (SSH terminal emulator)

🚀 Getting Started

Prerequisites

Make sure you have Node.js installed on your machine. (Developed with Node v24.x / v20.x).

1. Installation

Clone the repository, then install the dependencies using your preferred package manager:

# Using npm
npm install

# (Optional) if using yarn or pnpm
yarn install
# or
pnpm install

2. Development Setup

To boot up the application in development mode (which enables Hot Module Replacement / HMR for both React and the Electron Main Process):

npm run dev

The Electron app will open on your native desktop. An invisible DevServer runs in the background spanning the frontend (Vite) and backend logic concurrently.

3. Build & Packaging

Check for errors (Type-checking and code bundling):

npm run build

Package into an executable format (e.g., .dmg, .AppImage, .deb):

npm run package

The output binaries will be placed inside the dist/ directory at the project root. Note that you can only package for macOS (.dmg, .app) while running this command from a macOS machine, or Linux output from a Linux machine.

📂 Project Structure

  • src/main/ — Electron Main Process code. Contains file drivers (SftpDriver.ts, FtpDriver.ts), SSH terminal handler (ssh-terminal.ts), and ipc listeners for all system-level operations.
  • src/preload/ — Electron Preload script acting as a bridge (contextBridge) from Main to Renderer, preventing unauthorized native code access.
  • src/renderer/ — React Frontend. Contains pages (HomePage, SessionPage, SSHPage), UI styling (global.css), and UI components (like FilePane, Sidebar, and SSHTerminal).

License

MIT License

About

NuxSCP is an open-source, Electron-based desktop file manager for secure remote file transfers via SFTP, FTP, and FTPS. Featuring seamless SSH Key authentication and a modern dual-pane interface, it is built for maximum cross-platform productivity on macOS and Linux.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages