Skip to content

macnev2013/anySCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AnySCP Logo

AnySCP

A modern desktop client for SSH, SFTP, and S3 with a clean, powerful interface

Features β€’ Screenshots β€’ Installation β€’ Building β€’ Contributing β€’ License

Release Downloads Platform License MIT Stars

Free and open-source alternative to Termius, PuTTY, and WinSCP.
A cross-platform SSH client, SFTP file manager, and S3 desktop browser with split panes, drag-and-drop uploads, and command snippets.


AnySCP Demo

SSH terminals, SFTP file management, and S3 cloud storage -- all in one app.


πŸš€ Overview

AnySCP is a free, open-source desktop application that combines an SSH terminal, SFTP file explorer, and S3-compatible cloud storage browser into a single, fast, privacy-first tool. Built with Tauri v2 (Rust backend + React frontend), it runs natively on macOS, Windows, and Linux. No cloud accounts, no subscriptions -- your credentials stay on your machine.

⚑ How AnySCP Compares

Feature AnySCP Termius PuTTY WinSCP Cyberduck
SSH Terminal Yes Yes Yes No No
SFTP Browser Yes Yes No Yes Yes
S3 Browser Yes No No No Yes
Split Panes Yes Yes No No No
Port Forwarding Yes Yes Yes No No
Command Snippets Yes Yes No No No
Cross-Platform Yes Yes Windows Windows Yes
Free (no limits) Yes No Yes Yes Yes
No Account Required Yes No Yes Yes Yes
Open Source Yes No Yes Yes Yes (GPL)
Credential Privacy Local (OS keychain) Cloud-synced Local Local Local

✨ Features

πŸ’» SSH Terminal Client

  • Full-featured terminal emulator powered by xterm.js with GPU-accelerated WebGL rendering
  • Split terminal panes (horizontal and vertical) within a single SSH session
  • In-terminal search with regex support
  • Tabbed SSH sessions with keyboard shortcuts
  • Configurable keep-alive intervals, startup commands, default shell, and proxy jump (bastion host)
  • SSH key authentication with automatic PPK-to-OpenSSH conversion
  • Import connections from ~/.ssh/config

πŸ“ SFTP File Manager

  • Browse, upload, download, rename, move, copy, and delete remote files and directories
  • Drag-and-drop file upload from your desktop directly into the remote file browser
  • Multi-select files with Ctrl+Click and Shift+Click for bulk operations
  • Cut, copy, and paste files between remote directories
  • Inline file and folder creation
  • Edit remote files in VS Code -- automatically re-uploads when you save
  • Transfer queue with real-time progress bars, transfer speed, and ETA
  • Concurrent file transfers with configurable parallelism

☁️ S3 Cloud Storage Browser

  • Connect to Amazon S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, or any S3-compatible storage service
  • Same file browser UI as SFTP -- sort, multi-select, context menus, keyboard shortcuts
  • Drag-and-drop upload with recursive directory support
  • Create files, create folders, bulk delete (including recursive folder delete)
  • Generate and copy presigned URLs for sharing
  • Edit S3 objects in VS Code with automatic re-upload on save
  • Transfer progress tracking with speed and ETA
  • Switch between multiple buckets within a single connection

πŸ”— Server & Connection Management

  • Save SSH hosts and S3 connections with labels, colors, environment tags, and notes
  • Organize connections into color-coded groups
  • Import SSH hosts from ~/.ssh/config with one click
  • One-click connect using credentials stored in your OS keychain
  • Recent connections list for quick access
  • Full connection history with audit log

πŸ“‹ Command Snippets Library

  • Save frequently used shell commands with labels and descriptions
  • Create parameterized command templates with {{variable}} placeholders
  • Organize snippets into folders
  • Quick-insert panel accessible from any terminal session
  • Full-text search across all saved snippets

πŸ”€ SSH Port Forwarding

  • Set up local and remote SSH tunnels
  • Create, start, and stop port forwarding rules per host
  • Tunnels create their own SSH connections automatically -- no terminal session needed
  • Monitor active tunnel status in real time
  • Presets for common services (PostgreSQL, MySQL, Redis, MongoDB, HTTP, Kubernetes)

πŸ” Security & Privacy

  • Credentials stored in your OS keychain (macOS Keychain, Windows Credential Manager, Linux libsecret/KWallet)
  • SSH private keys and passwords never leave the Rust backend process
  • Fully offline -- no internet connection required after installation
  • Open source -- audit the code yourself

πŸ“Έ Screenshots

Connection Manager SSH Terminal
Connection Manager SSH Terminal
Organize servers with groups, colors, and tags Split panes, search, and tabbed sessions
File Explorer Command Snippets
File Explorer Snippets
SFTP & S3 with drag-drop, context menus Parameterized templates with quick-insert

πŸ“₯ Installation

Download

  1. Download the latest release from the Releases page
  2. Choose the right file for your platform:
    • macOS (Apple Silicon): .dmg (aarch64)
    • macOS (Intel): .dmg (x64)
    • Windows: .msi or .exe
    • Linux: .deb or .AppImage
  3. Install and launch

macOS note: If you see "app is damaged", run: xattr -cr /Applications/anyscp.app

Requirements

  • macOS 11+, Windows 10+, or Linux (Ubuntu 22.04+)
  • For SFTP: SSH access to remote servers
  • For S3: Access key and secret key (or S3-compatible credentials)

πŸ”¨ Building

Prerequisites

Build Instructions

# Clone the repository
git clone https://github.com/macnev2013/anyscp.git
cd anyscp

# Install frontend dependencies
pnpm install

# Run in development mode (hot-reload)
pnpm tauri dev

# Build for production (generates platform-specific installer)
pnpm tauri build

πŸ›  Tech Stack

Layer Technology
Desktop runtime Tauri v2
Backend Rust (tokio, russh, russh-sftp, rust-s3, rusqlite)
Frontend React 19, TypeScript (strict), Tailwind CSS v4
Terminal xterm.js with WebGL renderer
State management Zustand
Credential storage OS keychain via keyring crate
Database SQLite (bundled, zero config)

πŸ— Architecture

AnySCP follows a strict frontend/backend separation:

  • Rust does the heavy lifting -- all SSH, SFTP, S3, encryption, and file I/O runs in Rust
  • React is a thin view layer -- renders UI and manages local state via Zustand
  • Tauri IPC bridges the two with type-safe commands (request/response) and events (server push)
  • Credentials never cross the IPC boundary -- the frontend never sees passwords or private keys
  • Shared FileSystemProvider abstraction -- SFTP and S3 browsers use identical UI components with capability flags that show/hide features per protocol

Project Structure

src/                          # React frontend
  components/
    terminal/                 # SSH terminal, split panes, search
    explorer/                 # Shared file table, toolbar, drop zone
    sftp/                     # SFTP browser, session tabs
    s3/                       # S3 browser, connect dialog
    dashboard/                # Host cards, groups, connection manager
    snippets/                 # Command snippet library
    transfers/                # Transfer progress popover
  stores/                     # Zustand state stores
  providers/                  # SFTP & S3 file system providers
  types/                      # TypeScript type definitions

src-tauri/src/                # Rust backend
  ssh/                        # SSH connections, PTY, key management
  sftp/                       # SFTP sessions, transfer manager
  s3/                         # S3 sessions, transfer manager
  db/                         # SQLite persistence layer
  vault/                      # OS keychain integration
  snippets/                   # Snippet storage
  portforward/                # SSH tunnel management
  import/                     # SSH config parser

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Please open an issue first to discuss what you'd like to change.

πŸ› Troubleshooting

SSH Connection Issues

  • Can't connect: Verify host, port, username, and credentials
  • Authentication failed: Check password or SSH key permissions
  • Timeout: Check firewall settings and network connectivity

S3 Connection Issues

  • Access Denied: Verify your access key and secret key are correct
  • Bucket not found: Check the bucket name and region settings
  • Invalid credentials: Ensure IAM user has S3 permissions

File Operations

  • Permission denied: Ensure your user has appropriate file permissions
  • Upload failed: Check available disk space on remote server

macOS

  • "App is damaged": Run xattr -cr /Applications/anyscp.app

πŸ“„ License

This project is licensed under the MIT License -- see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with Tauri by the Tauri team
  • SSH implementation powered by russh
  • Terminal emulation powered by xterm.js
  • S3 support powered by rust-s3

πŸ’¬ Support


If you find AnySCP useful, please consider giving it a star on GitHub!

Back to top

Packages

 
 
 

Contributors

Languages