Skip to content

macSCP is software that allows storing the details of your remote server and connect to it securely. A great alternative to Putty and WinSCP for MacOS.

Notifications You must be signed in to change notification settings

macnev2013/macSCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

macSCP Logo

macSCP

A native macOS file transfer client for SFTP and S3 with an elegant interface

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


Overview

macSCP is a modern, native macOS application built with SwiftUI that provides seamless file management for SFTP servers and Amazon S3 storage. With its intuitive interface and powerful features, macSCP makes managing remote servers and cloud storage as easy as working with local files.

Features

πŸ” Secure Connection Management

  • Multiple Authentication Methods: Support for both password and SSH key-based authentication
  • Keychain Integration: Securely store passwords in macOS Keychain
  • SSH Key Support: Use your existing SSH private keys for authentication
  • Connection Profiles: Save and organize multiple server connections with custom icons and descriptions

☁️ Amazon S3 Support

  • S3 & S3-Compatible Storage: Connect to Amazon S3, MinIO, DigitalOcean Spaces, and other S3-compatible services
  • Bucket Browser: Browse and manage S3 buckets with the same familiar interface
  • Access Key Authentication: Secure authentication using AWS access keys
  • Region Support: Connect to any AWS region or custom endpoints
  • Full File Operations: Upload, download, delete, and manage objects in S3 buckets

πŸ“ Advanced File Management

  • Full File Browser: Navigate remote file systems with an intuitive Finder-like interface
  • File Operations:
    • Create, delete, rename files and folders
    • Copy, cut, and paste operations with clipboard support
    • Upload and download files with progress tracking
    • Drag-and-drop file uploads
  • File Permissions: View and understand Unix file permissions (rwxrwxrwx)
  • Quick Actions: Context menu with common operations (Open, Download, Copy, Cut, Delete, Rename, Get Info)

✏️ Built-in File Editor

  • Syntax Highlighting: Edit remote files directly with built-in text editor
  • Real-time Editing: Open and modify files without downloading them first
  • Search Functionality: Find text within files with integrated search
  • Multiple File Support: Open multiple files in separate editor windows
  • Auto-save: Changes are saved directly to the remote server

πŸ“Š Organization & Workflow

  • Folder Management: Organize connections into custom folders (Production, Development, etc.)
  • Tagging System: Tag connections for easy filtering and organization
  • Custom Icons: Assign SF Symbols to connections for visual identification
  • Quick Search: Filter connections by name or tags
  • Connection Counter: See how many connections you have at a glance

🎨 Native macOS Experience

  • SwiftUI Interface: Built entirely with SwiftUI for a modern, native feel
  • Dark Mode Support: Fully supports macOS appearance modes
  • Multiple Windows: Open multiple SSH sessions and file explorers simultaneously
  • Window Management: Separate windows for file browser, editor, and file info
  • macOS Integration: Follows macOS design patterns and conventions

πŸ“‚ Remote File Browser

  • Dual Navigation: Sidebar with favorites and locations, plus main file list view
  • File Metadata: View file sizes, permissions, and modification dates
  • Breadcrumb Navigation: Easy path navigation with breadcrumb bar
  • Folder Shortcuts: Quick access to common system folders (home, root, etc.)
  • File Info Panel: Detailed information about files and folders

πŸ”„ Transfer Operations

  • Upload Progress: Real-time progress tracking for file uploads
  • Download Manager: Monitor download progress with visual feedback
  • Batch Operations: Upload or download multiple files at once
  • Error Handling: Clear error messages and recovery options

πŸ› οΈ Developer-Friendly

  • SwiftData Persistence: Modern data persistence using SwiftData
  • Citadel SFTP: Built on the robust Citadel SSH/SFTP library
  • NIO Foundation: Leverages SwiftNIO for high-performance networking
  • Combine Framework: Reactive programming for smooth UI updates

Screenshots

Connection Manager

Main Interface Manage all your SSH connections with folders, tags, and custom icons

New Connection Setup

New Connection Easy-to-use connection setup with password or SSH key authentication

Remote File Browser

File Browser Browse remote files with a native macOS interface, complete with context menus and file operations

Built-in File Editor

File Editor Edit remote files directly with syntax highlighting and search functionality

Installation

Download

  1. Download the latest release from the Releases page
  2. Open the .dmg file
  3. Drag macSCP to your Applications folder
  4. Launch macSCP from Applications

Requirements

  • macOS 13.0 (Ventura) or later
  • For SFTP: SSH access to remote servers
  • For S3: AWS access key and secret key (or S3-compatible credentials)

Building

Prerequisites

  • Xcode 15.0 or later
  • macOS 13.0 SDK or later
  • Swift 5.9 or later

Dependencies

macSCP uses Swift Package Manager for dependency management. Required packages:

  • Citadel - SSH/SFTP implementation
  • Soto - AWS SDK for Swift (S3 support)
  • SwiftNIO - High-performance networking

Build Instructions

  1. Clone the repository:

    git clone https://github.com/macnev2013/macSCP.git
    cd macSCP
  2. Open the project in Xcode:

    open macSCP.xcodeproj
  3. Wait for Swift Package Manager to resolve dependencies

  4. Select your development team in the project settings:

    • Select the project in the navigator
    • Go to "Signing & Capabilities"
    • Select your Team
  5. Build and run:

    • Press ⌘R or click the Run button
    • Or use the build script: ./create-dmg.sh

Creating a DMG

A build script is included to create a distributable DMG:

./create-dmg.sh

This will:

  • Build the app in Release mode
  • Create a DMG installer
  • Sign the application (if configured)

Architecture

macSCP is built with modern Swift and SwiftUI patterns:

  • SwiftUI: Entire UI built with declarative SwiftUI
  • SwiftData: Model persistence and data management
  • Combine: Reactive state management
  • Citadel: SSH/SFTP protocol implementation
  • Soto: AWS S3 protocol implementation
  • SwiftNIO: Non-blocking I/O for network operations
  • MVVM Pattern: Clean separation of concerns
  • Async/Await: Modern concurrency for smooth performance

Key Components

  • Models: Connection, ConnectionFolder, RemoteFile, S3Credentials
  • Sessions:
    • SFTPSession - SFTP protocol operations
    • S3Session - AWS S3 protocol operations
  • Repositories:
    • FileRepository - SFTP file operations
    • S3FileRepository - S3 file operations
    • ConnectionRepository - Connection management
  • Services:
    • KeychainService - Secure credential storage
    • ClipboardService - Clipboard operations
    • WindowManager - Window management
  • Views: Modular SwiftUI views for each feature

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

Development Guidelines

  • Follow Swift style guidelines
  • Write clear commit messages
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation as needed

Security

macSCP takes security seriously:

  • Passwords and AWS credentials are stored securely in macOS Keychain
  • SSH keys are never copied or stored
  • All SFTP connections use SSH protocol encryption
  • All S3 connections use HTTPS encryption
  • Privacy-focused telemetry via TelemetryDeck (no personal data collected)
  • All code is open source for transparency

Roadmap

Future features under consideration:

  • Terminal emulator integration
  • Port forwarding support
  • File synchronization
  • Bookmarks and favorites
  • Split-pane view
  • Theme customization
  • Import/export connections
  • Multi-tab support
  • iCloud sync for connections

Troubleshooting

SFTP 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 (s3:ListBucket, s3:GetObject, s3:PutObject)

File Operations

  • Permission denied: Ensure your user has appropriate file permissions
  • Upload failed: Check available disk space on remote server
  • Editor won't open: Verify file is a text file and not too large

General

  • App won't launch: Check macOS version requirements (13.0+)
  • Crashes: Check Console.app for crash logs and report issues

License

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

Acknowledgments

  • Built with Citadel by Joannis Orlandos
  • S3 support powered by Soto
  • Uses SwiftNIO by Apple
  • Icons from SF Symbols by Apple
  • Inspired by classic SCP clients and modern macOS design

Support


Made with ❀️ for the macOS community

Back to top

About

macSCP is software that allows storing the details of your remote server and connect to it securely. A great alternative to Putty and WinSCP for MacOS.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published