Skip to main content

HoloSync

HoloSync is a flexible Python utility for syncing code files (skills, scripts, or any directory content) from a folder in a GitHub repository to your local directory. Supports public and private repos, selective file syncing, local-over-remote file protection, and easy integration.


Features

  • Sync entire folders or select specific files.
  • Skip or override existing local files.
  • Supports private repos (via GitHub token).
  • Branch selection—sync from any branch, not just master/main.
  • Simple, readable code—ready to drop into any project.
  • Preserves your local changes by default.

Installation

Simply copy HoloSync into your project, or package as you like.

Dependencies:

  • Python 3.10+
  • requests

Usage

1. Basic Example (Sync All Files)

from HoloSync import HoloSync

syncer = HoloSync(
    githubRepo='TristanMcBrideSr/SkillForge',
    repoFolder='SkillForge',
    syncDir='./skills'
)
syncer.startSync()

2. Sync Only Specific Files

syncer = HoloSync(
    githubRepo='your-username/your-repo',
    repoFolder='MySkills',
    syncDir='./skills'
)
# Only sync 'weather.py' and 'research.py'
syncer.startSync(syncList=['weather', 'research'])

3. Override Existing Local Files

syncer = HoloSync(
    githubRepo='TristanMcBrideSr/SkillForge',
    repoFolder='SkillForge',
    syncDir='./skills'
)
# Force override any local file with the downloaded version
syncer.startSync(override=True)

4. Sync From a Private Repo

syncer = HoloSync(
    githubRepo='your-username/private-repo',
    repoFolder='MySkills',
    syncDir='./skills'
)
# Provide a GitHub token (classic or fine-grained with repo read access)
syncer.startSync(githubToken='YOUR_GITHUB_TOKEN')

5. Sync From a Different Branch

syncer = HoloSync(
    githubRepo='TristanMcBrideSr/SkillForge',
    repoFolder='SkillForge',
    syncDir='./skills'
)
syncer.startSync(branch='dev')  # Sync from 'dev' branch

Parameters

HoloSync constructor

  • githubRepo: GitHub repo in the form "owner/repo" (required)
  • repoFolder: Folder inside the repo to sync from (required)
  • syncDir: Local directory to sync files to (required)

startSync(**kwargs)

  • skillList (list): Only these files will be synced (by name, .py optional).
  • override (bool): If True, always overwrite existing local files.
  • githubToken (str): Personal GitHub token for private repo access.
  • branch (str): Branch to sync from (default "master").

How It Works

  • Downloads a zip of the specified repo+branch.

  • Extracts just the folder you specify.

  • Copies each file:

    • By default: only new files are copied (existing files are untouched).
    • With override=True: always overwrites local files.
  • Lets you pick which files to sync, or sync all.


Error Handling

  • Raises if folders/files are missing.
  • Logs sync actions and errors to Python logger.
  • Skips files that already exist locally, unless override is set.

Example: Complete Workflow

syncer = HoloSync(
    githubRepo='my-org/myrepo',
    repoFolder='skills',
    syncDir='./skills'
)
syncer.startSync(
    syncList=['my_skill', 'other_skill.py'],
    override=False,
    githubToken=os.getenv('GITHUB_TOKEN'), # If syncing from a private repo else you can omit this
    branch='main'
)

Code Examples

You can find code examples on my GitHub repository.


License

This project is licensed under the Apache License, Version 2.0. Copyright 2025 Tristan McBride Sr.


Acknowledgements

Project by:

  • Tristan McBride Sr.
  • Sybil

Release files for HoloSync 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HoloSync 0.1.0
File Size Uploaded
holosync-0.1.0.tar.gz 3.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HoloSync 0.1.0
File Interpreter ABI Platform
holosync-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.7 kB

Release files / holosync-0.1.0.tar.gz

Download URL holosync-0.1.0.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b5eca03f50f1c47237692b1ed591e70b4919604866a04a9070c8fcd7204d6100
BLAKE2b-256 checksum
How to use checksums
41156f7c351e1d4ea310e6c7f87f70213ac06977249ec14821c9e6830053dd25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.3

Release files / holosync-0.1.0-py3-none-any.whl

Download URL holosync-0.1.0-py3-none-any.whl
Size 3.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49e4451a076e7fe1ca61ceb2d3688a5410cff55e01449195f46e3c1adba28e75
BLAKE2b-256 checksum
How to use checksums
9a387af3c3dee4f86cf4aed2d2c17a4c3653ee5cb8db654371176efcac14004c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page