Interactive TUI tool for syncing projects to remote servers via rsync + SSH
Project description
sync-pilot
交互式 TUI 工具,通过 rsync + SSH 同步项目到远端服务器。专为 ML/DL 训练工作流设计。
Interactive TUI tool for syncing projects to remote servers via rsync + SSH. Built for ML/DL training workflows.
Features / 功能
- Push/Pull — rsync 同步代码和 checkpoints
- Remote Training — 一键推送代码 + tmux 启动远端训练,自动加
uv run前缀 - Monitor — GPU 状态、tmux session 输出查看、实时 attach、session 管理
- Status — 项目状态总览(远端目录大小、checkpoint 数量)
- Data Push — 一次性推送大型数据集
- i18n — 自动检测系统语言(中/英),支持
--lang和SYNC_PILOT_LANG覆盖
Install / 安装
pip install sync-pilot
# or
uv add sync-pilot
Quick Start / 快速开始
# 1. Initialize config in your project directory
cd /path/to/your/project
sync-pilot init
# 2. Edit sync_config.yaml with your remote server info
vim sync_config.yaml
# 3. Launch interactive TUI
sync-pilot
Usage / 使用
sync-pilot # Interactive TUI menu
sync-pilot init # Generate config files in current directory
sync-pilot push # Push code to remote
sync-pilot pull # Pull checkpoints from remote
sync-pilot train # Push + launch remote training
sync-pilot push-data # One-time data upload
sync-pilot watch # Monitor GPU & tmux sessions
sync-pilot status # Project status overview
Options
-c, --config FILE Config file path (default: auto-detect)
-p, --project NAME Target project name
--lang zh|en Force UI language
-V, --version Show version
Configuration / 配置
sync_config.yaml:
remote_host: 1.2.3.4
remote_user: root
remote_port: 22 # Optional, default 22
projects:
my_project:
description: "My ML project"
local_path: /home/user/workspace/project/
remote_path: /mnt/workspace/project/
exclude_file: rsync_exclude.txt # Relative to this config file
use_uv: true # Auto-prefix python commands with uv run
pull_directories:
- checkpoints/
checkpoint_patterns: # For status search (default: *.pth, *.pt)
- "*.pth"
- "*.safetensors"
training_data:
description: "Training dataset (32GB)"
local_path: /home/user/data/
remote_path: /mnt/data/
pull_only: true # Prevent accidental push
Config file auto-detection
sync-pilot looks for config files in this order:
sync_config.yamlsync-pilot.yaml.sync-pilot.yaml
Requirements / 依赖
- Python >= 3.10
rsyncandsshavailable on PATHtmuxon the remote server (for training/watch features)- SSH key-based auth configured (recommended)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sync_pilot-0.1.0.tar.gz.
File metadata
- Download URL: sync_pilot-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33f46636572c045f11aa9033afd73ad5410778bb86c2cf5a70b9d77f20418629
|
|
| MD5 |
91ee624350131c5ab62d7aab319bd195
|
|
| BLAKE2b-256 |
c4ea2391c212aa343b00de8ff87bf862248485a594ddfaa1006a6af8839101e4
|
File details
Details for the file sync_pilot-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sync_pilot-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb42e451b6ee3958a352c41f493f78e36bc8c8964d11d15ff6f69a146c8daa6
|
|
| MD5 |
2e25e6be4098f6924122ea2cefc59bef
|
|
| BLAKE2b-256 |
284640865c03ce1ffe9f5873e804402817b259ebb964f71a908c230f637ff484
|