Skip to main content

Sync private scratch/ folders across machines using Syncthing over Tailscale

Project description

scratch-sync

Sync private scratch/ folders across multiple machines using Syncthing over Tailscale.

The Problem

Working across multiple machines (Linux workstation, Mac laptop, Windows desktop) with code repositories in different locations:

Machine Example Repo Paths
Linux ~/code/sleap-io, ~/repo1
Mac ~/sleap-io, ~/code/my-repo
Windows D:\sleap-io, C:\Users\me\code\repo1

Each repo has a scratch/ subfolder that's .gitignored — notes, experiments, temp files, WIP that shouldn't be in version control but should sync privately across machines.

Solution

  • Sync scratch/ folders without git
  • Single CLI command to add folders to sync
  • Works across Linux, macOS, and Windows
  • Uses Tailscale for secure direct connections (no cloud relay)
  • Minimal ongoing maintenance

Quick Start

Prerequisites

  • Tailscale installed and connected on all machines
  • All machines on the same Tailnet

Install

curl -LsSf https://scratch.tlab.sh/install.sh | sh

Usage

# Inside a git repo with a scratch/ folder
scratch-sync init

# Add a specific scratch folder
scratch-sync add ~/code/myrepo/scratch

How It Works

Syncthing folder IDs just need to match across devices. The actual filesystem paths can be different:

  • scratch-sleap-io on Linux at ~/code/sleap-io/scratch
  • Same folder ID on Windows at D:\sleap-io\scratch
┌─────────────────┐     Tailscale      ┌─────────────────┐
│  Linux Box      │◄──────────────────►│  Mac Laptop     │
│ ~/code/sleap-io │                    │ ~/sleap-io      │
│   └── scratch/  │   folder-id:       │   └── scratch/  │
│                 │  "scratch-sleap-io"│                 │
└────────┬────────┘                    └────────┬────────┘
         │            Tailscale                 │
         └──────────────┬───────────────────────┘
                        ▼
              ┌─────────────────┐
              │  Windows PC     │
              │ D:\sleap-io     │
              │   └── scratch/  │
              └─────────────────┘

Documentation

Full documentation at scratch.tlab.sh.

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

scratch_sync-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

scratch_sync-0.1.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file scratch_sync-0.1.0.tar.gz.

File metadata

  • Download URL: scratch_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scratch_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c45538753b8b4e03880598db9397375358c4ea364d94f27232e05547d1a61d58
MD5 fa62d28be70576b49ea27febb3310cba
BLAKE2b-256 aeb9afb47b88a45aebf85d2046259f3af3431fc2f6792340d5baf873f818800a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scratch_sync-0.1.0.tar.gz:

Publisher: publish.yml on talmolab/scratch-sync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scratch_sync-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: scratch_sync-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scratch_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ac8f025aad37e120284a147bdad44327b072ede0dadb9f1ce504b19defa0ae1
MD5 88e5438e56b6531d50eb71418585f9b9
BLAKE2b-256 00d8ac29ba86a3480de7eb9d8aec3b8e5a11c6d642b47c04ef9258ad53f2c114

See more details on using hashes here.

Provenance

The following attestation bundles were made for scratch_sync-0.1.0-py3-none-any.whl:

Publisher: publish.yml on talmolab/scratch-sync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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