https://github.com/dytsou/raycast-rsync-extension
Transfer files between local and remote servers using rsync with SSH config integration
https://github.com/dytsou/raycast-rsync-extension
raycast-extension rsync transfer-files
Last synced: 5 months ago
JSON representation
Transfer files between local and remote servers using rsync with SSH config integration
- Host: GitHub
- URL: https://github.com/dytsou/raycast-rsync-extension
- Owner: dytsou
- License: mit
- Created: 2026-01-21T02:54:16.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-21T04:07:50.000Z (5 months ago)
- Last Synced: 2026-01-21T15:13:27.033Z (5 months ago)
- Topics: raycast-extension, rsync, transfer-files
- Language: TypeScript
- Homepage:
- Size: 9.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Raycast Rsync Extension
A Raycast extension for transferring files between local and remote servers using rsync with SSH config integration.
## Features
- Upload files from local system to remote servers
- Download files from remote servers to local system
- Automatic SSH config parsing from ~/.ssh/config
- Support for recursive directory transfers
- User-friendly interface with searchable host list
## Installation
1. Clone this repository
2. Run `npm install` to install dependencies
3. Run `npm run dev` to start development mode
## Usage
### Upload Files
1. Open Raycast and search for "Upload Files via Rsync"
2. Select a host from your SSH config
3. Choose local files to upload
4. Enter the remote destination path
5. Confirm to start the transfer
### Download Files
1. Open Raycast and search for "Download Files via Rsync"
2. Select a host from your SSH config
3. Enter the remote file path
4. Choose local destination directory
5. Confirm to start the transfer
## Requirements
- SSH config file at ~/.ssh/config with configured hosts
- SSH access to remote servers
- rsync installed (usually pre-installed on macOS and Linux)
- Raycast installed
## Development
```bash
# Install dependencies
npm install
# Start development mode
npm run dev
# Build for production
npm run build
# Lint code
npm run lint
# Fix linting issues
npm run fix-lint
# Run tests
npm run test
# Run tests in watch mode
npm run test:watch
```
## Testing
The project includes comprehensive test coverage using Vitest:
- Unit tests for utilities (SSH config parsing, validation, rsync command building)
- Component tests for UI components
- E2E tests for upload and download workflows
Run tests with `npm run test` or use `npm run test:watch` for development.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.