https://github.com/macnev2013/macscp
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.
https://github.com/macnev2013/macscp
macos macscp ssh ssh-client ssh-client-for-mac winscp-alternative-for-mac winscp-for-mac
Last synced: 12 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/macnev2013/macscp
- Owner: macnev2013
- Created: 2021-04-25T05:53:37.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-11-01T06:51:49.000Z (3 months ago)
- Last Synced: 2025-11-01T08:30:11.961Z (3 months ago)
- Topics: macos, macscp, ssh, ssh-client, ssh-client-for-mac, winscp-alternative-for-mac, winscp-for-mac
- Language: Swift
- Homepage:
- Size: 13.2 MB
- Stars: 39
- Watchers: 3
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
macSCP
A native macOS SSH/SFTP client with an elegant interface
Features •
Screenshots •
Installation •
Building •
Contributing •
License
---
## Overview
macSCP is a modern, native macOS application built with SwiftUI that provides seamless SSH/SFTP file management capabilities. With its intuitive interface and powerful features, macSCP makes managing remote servers 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
### 📁 **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

*Manage all your SSH connections with folders, tags, and custom icons*
### New Connection Setup

*Easy-to-use connection setup with password or SSH key authentication*
### Remote File Browser

*Browse remote files with a native macOS interface, complete with context menus and file operations*
### Built-in File Editor

*Edit remote files directly with syntax highlighting and search functionality*
## Installation
### Download
1. Download the latest release from the [Releases](https://github.com/macnev2013/macSCP/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
- SSH access to remote servers
## 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](https://github.com/Joannis/Citadel) - SSH/SFTP implementation
- SwiftNIO - High-performance networking
### Build Instructions
1. Clone the repository:
```bash
git clone https://github.com/macnev2013/macSCP.git
cd macSCP
```
2. Open the project in Xcode:
```bash
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:
```bash
./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
- **SwiftNIO**: Non-blocking I/O for network operations
- **MVVM Pattern**: Clean separation of concerns
- **Async/Await**: Modern concurrency for smooth performance
### Key Components
- **Models**: `SSHConnection`, `ConnectionFolder`, `RemoteFile`
- **Managers**:
- `CitadelSFTPManager` - SFTP operations
- `FileOperationsManager` - File operations
- `KeychainManager` - Secure password storage
- `RemoteClipboard` - Clipboard operations
- `NavigationManager` - 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 are stored securely in macOS Keychain
- SSH keys are never copied or stored
- All connections use SSH protocol encryption
- No telemetry or tracking
- All code is open source for transparency
## Roadmap
Future features under consideration:
- [ ] SFTP protocol improvements
- [ ] 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
### 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
### 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](LICENSE) file for details.
## Acknowledgments
- Built with [Citadel](https://github.com/Joannis/Citadel) by Joannis Orlandos
- Uses [SwiftNIO](https://github.com/apple/swift-nio) by Apple
- Icons from SF Symbols by Apple
- Inspired by classic SCP clients and modern macOS design
## Support
- **Issues**: [GitHub Issues](https://github.com/macnev2013/macSCP/issues)
- **Discussions**: [GitHub Discussions](https://github.com/macnev2013/macSCP/discussions)
- **Email**: support@yourcompany.com
---
Made with ❤️ for the macOS community