Skip to main content

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 — 自动检测系统语言(中/英),支持 --langSYNC_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:

  1. sync_config.yaml
  2. sync-pilot.yaml
  3. .sync-pilot.yaml

Requirements / 依赖

  • Python >= 3.10
  • rsync and ssh available on PATH
  • tmux on the remote server (for training/watch features)
  • SSH key-based auth configured (recommended)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sync_pilot-0.1.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sync_pilot-0.1.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

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

Hashes for sync_pilot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 33f46636572c045f11aa9033afd73ad5410778bb86c2cf5a70b9d77f20418629
MD5 91ee624350131c5ab62d7aab319bd195
BLAKE2b-256 c4ea2391c212aa343b00de8ff87bf862248485a594ddfaa1006a6af8839101e4

See more details on using hashes here.

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

Hashes for sync_pilot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9cb42e451b6ee3958a352c41f493f78e36bc8c8964d11d15ff6f69a146c8daa6
MD5 2e25e6be4098f6924122ea2cefc59bef
BLAKE2b-256 284640865c03ce1ffe9f5873e804402817b259ebb964f71a908c230f637ff484

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page