Skip to content

Repository files navigation

RyuSync

Download Version CI License: MIT Python PySide6 macOS

Status Tests Lint

Native macOS drag-and-drop organizer for Nintendo Switch .nsp / .xci files.

Cleans titles, tags content as [GME], [UPD], or [DLC], extracts archives in place, and supports a read-only Dry Mode preview before anything moves.

↓ Download RyuSync.dmg · All releases

RyuSync

Features

  • Drag-and-drop workflow — drop a game file, folder, or archive onto the window
  • Smart title cleanup — strips release noise (region tags, version markers, shop labels)
  • Content tagging — labels files [GME], [UPD], or [DLC] from title ID metadata
  • Archive support — extracts .rar, .zip, and .7z in place via unar; originals are preserved
  • Dry Mode — previews the full organization plan without modifying files
  • Persistent settings — dry-run preference stored under Application Support
  • Native macOS UI — dark PySide6 interface with red #ff2d55 and blue #00d0ff brand accents
  • Apple Silicon native — arm64 build optimized for M-series Macs

Install

  1. Download RyuSync.dmg
  2. Open the DMG and drag RyuSync.app to /Applications
  3. First launch — right-click the app → Open to bypass Gatekeeper on the ad-hoc signed build
  4. Install unar for archive extraction: brew install unar

Usage

  1. Open RyuSync
  2. Toggle Dry Mode on to preview, or leave it off to organize immediately
  3. Drag a .nsp, .xci, folder, or archive onto the window — or pass a folder on the command line: uv run ryusync /path/to/games
  4. Review the proposed folder layout and tagged filenames before confirming in Real mode

Safety: bulk folder drops on Home, Desktop, or drive roots are blocked. Drop a specific game folder or individual files instead.

User data: ~/Library/Application Support/RyuSync/ (settings.json, history/, logs/).


Disclaimer

RyuSync is a file organization utility. It does not download, decrypt, stream, or distribute game files, and it does not circumvent technical protection measures. You are solely responsible for ensuring you have the legal right to possess any files you organize with this software.


Development

Requirements

  • Python 3.14
  • macOS 12.0+
  • uv
  • unar for archive extraction during local testing

Setup

git clone https://github.com/RazorBackRoar/RyuSync.git
cd RyuSync
uv sync
uv run ryusync

Apps workspace developers can overlay editable razorcore from a sibling checkout:

uv pip install -e ../.razorcore --no-deps

Build

razorbuild RyuSync
# Output: dist/RyuSync.dmg

See docs/DMG_BUILD_README.md for troubleshooting.

Lint & Test

uv run ruff check .
uv run ty check src --python-version 3.14
uv run pytest tests/ -q

Community & docs

License

MIT License — see LICENSE for details. Copyright © 2026 RazorBackRoar

Runtime Requirements

For users:

  • Download the macOS .dmg or .app release. Python does not need to be installed.
  • unar must be installed separately for archive extraction (brew install unar).

For developers:

  • Primary development/build target: Python 3.14 with uv.
  • Source/build target: Python 3.14 only.
  • Setup: uv sync
  • Run: uv run ryusync

Releases

Packages

Used by

Contributors

Languages