- Created ROADMAP.md - Feature planning document
- Created transfer package - Resume and sync support
- Added StateManager - Transfer state persistence
- Added CompareFiles - File comparison for sync
- pkg/config/config.go - All comments and errors in English
- pkg/ssh/sshconfig.go - All comments and errors in English
- pkg/sftp/sftp.go - Convert to English
- cmd/xds/main.go - Convert all output to English
- Update progress bar descriptions to English
- Integrate StateManager with upload/download
- Add --resume flag
- Add checksum verification
- Handle partial file transfer
-
xds sync <local> <remote>- Bidirectional sync with rsync-like behavior -
xds exec "<command>"- Execute command on remote server -
xds ls <remote_path>- List remote directory -
xds rm <remote_path>- Remove remote file/directory
-
xds cp <remote1> <remote2>- Copy between remote paths -
xds mv <remote1> <remote2>- Move/rename remote file -
xds stat <remote_path>- Show remote file info -
xds diff <local> <remote>- Compare local and remote files
-
xds shellorxds ssh- Interactive SSH session -
xds forward- Port forwarding -
xds watch <local>- Auto-sync on file changes
- Multi-file upload/download
- Recursive directory transfer (-r flag)
- Exclude patterns (--exclude)
- Compression (--compress or -z)
- Bandwidth limiting (--limit)
- Parallel transfers (--parallel)
- Dry-run mode (--dry-run)
- Better error messages
- Verbose mode (-v, -vv, -vvv)
- JSON output (--json)
- Shell completion scripts
- Configuration file support (YAML)
- Transfer history/logging
- Unit tests
- Integration tests
Goal: All user-facing text in English
Files:
- pkg/sftp/sftp.go
- cmd/xds/main.go
- Error messages
- Help text
- Progress bars
Goal: Add rsync-like resume capability
Tasks:
- Integrate StateManager
- Add --resume and --no-resume flags
- Implement checksum verification
- Handle interrupted transfers
- Test with large files
Goal: Add most useful commands
Priority:
xds sync- Most important for rsync replacementxds exec- Quick remote commandsxds ls- Browse remote filesxds rm- Clean up remote files
Goal: Power user features
Features:
- Multi-file operations
- Recursive transfers
- Compression
- Bandwidth control
xds list # List servers
xds set <server> # Set default server
xds upload <local> <remote> # Upload file
xds download <remote> <local> # Download filexds sync <local> <remote> # Sync files (rsync-like)
xds sync <local> <remote> --resume # Resume interrupted sync
xds exec "command" # Execute remote command
xds ls /path # List remote directory
xds rm /path/file # Remove remote file
xds stat /path/file # File infoxds upload -r ./dir /remote/ # Recursive upload
xds download -r /remote/ ./dir # Recursive download
xds sync --exclude "*.log" # Sync with exclusions
xds sync --compress # Sync with compression
xds sync --limit 1MB/s # Bandwidth limiting
xds watch ./src /remote/src # Auto-sync on changes- Focus on English internationalization first
- Resume feature is critical for large files
- Keep CLI simple and intuitive
- Follow scp/rsync conventions
- Maintain backwards compatibility