Skip to main content

macOS専用のCLIフォント同期ツール

Project description

font-sync

A CLI font synchronization tool for macOS. Easily sync fonts across multiple Macs via cloud storage like Dropbox, iCloud Drive, or Google Drive.

CI PyPI version Python versions macOS License

日本語版 README はこちら

Features

  • Smart Differential Sync – Only syncs changed fonts for fast operation
  • Cloud Storage Support – Works with Dropbox, iCloud Drive, Google Drive, OneDrive
  • Parallel Processing – Handles 1000+ fonts efficiently
  • Beautiful CLI – Rich progress bars and formatted tables
  • Safe by Default – Dry-run mode for previewing changes
  • Pro Format Support – .otf and .ttf with metadata preservation

Quick Start

# Install
pip install font-sync

# Initialize (specify your cloud folder)
font-sync init --folder ~/Dropbox/Fonts/

# Sync fonts
font-sync sync

Installation

Via pip (Recommended)

pip install font-sync

Via Homebrew (Coming Soon)

brew tap URAPRO/font-sync
brew install font-sync

From Source

git clone https://github.com/URAPRO/font-sync.git
cd font-sync
pip install -e ".[dev]"

Usage

Initialize

font-sync init

Interactively set up your sync source folder (cloud storage directory).

Sync Fonts

font-sync sync

Syncs new and updated fonts from the source folder to your system.

List Fonts

font-sync list

Shows all fonts in the source folder with their sync status.

Import Fonts

font-sync import ~/Downloads/MyFont.otf
font-sync import ~/Desktop/FontCollection/ --move

Add existing fonts to your sync source folder.

Clean Up

font-sync clean           # Dry-run (preview)
font-sync clean --execute # Actually remove

Remove fonts that were deleted from the source folder.

Commands

Command Description
init Set up sync source folder
sync Sync fonts from source to system
list List fonts and their status
import Add fonts to source folder
clean Remove orphaned fonts

Roadmap

  • v1.0 – Core sync functionality
  • v1.0 – Parallel processing & caching (1000+ fonts)
  • GUI app (macOS menu bar) – Coming soon
  • Homebrew formula

FAQ

Q: Does it work on Windows/Linux? A: No, font-sync is macOS only due to system-specific font handling.

Q: Which cloud services are supported? A: Any service that syncs to a local folder: Dropbox, iCloud Drive, Google Drive, OneDrive, etc.

Q: How do I refresh the font cache? A: Run these commands:

sudo atsutil databases -remove
sudo atsutil server -shutdown
sudo atsutil server -ping

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check src/ tests/

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License. See LICENSE for details.

Author

URAPRO


Made with ❤️ for designers and developers on macOS

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

font_sync-1.0.0.tar.gz (42.6 kB view details)

Uploaded Source

Built Distribution

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

font_sync-1.0.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file font_sync-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for font_sync-1.0.0.tar.gz
Algorithm Hash digest
SHA256 74f27c5583f62dc368665baeaeafc0490f8abc3cd90e1c5091eb69df48f194f0
MD5 ab20ec6638b7a8135933faf213d9d8c4
BLAKE2b-256 59eb2959af82c04720a9aaa0281fd7f25eee5960be6b4f7c27dbd146dead70c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for font_sync-1.0.0.tar.gz:

Publisher: release.yml on URAPRO/font-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 font_sync-1.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for font_sync-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13324885b2998179523074c9a3e4c76d18fed21a0bf9938be55bed110b6f4f56
MD5 cfb1515f9804753bcb2a8855a218ba7e
BLAKE2b-256 4429d13c000347cb3070f176fa1cd244dcce79fc4af440c8bcd01138f7579338

See more details on using hashes here.

Provenance

The following attestation bundles were made for font_sync-1.0.0-py3-none-any.whl:

Publisher: release.yml on URAPRO/font-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