Skip to content

TimbreUnda/OrcaSync

OrcaSync

Sync your OrcaSlicer profiles across machines, automatically.

Printer, filament, and process configs — versioned in your own GitHub repo, Google Drive folder, or network share. No cloud lock-in, no proprietary format.

CI Release License Platforms Built with Tauri


Why

Move your printer between rooms, share a workshop with friends, or just want your filament library on your laptop — and you're stuck copy-pasting JSON files out of %APPDATA%\OrcaSlicer\user\default. OrcaSync reads that directory, ships it through a backend you already trust, and writes it back atomically on the other side. Local changes are versioned; rollbacks are one click.

Features

  • Bring your own backend. GitHub repo (default), Google Drive folder, or any local/SMB path.
  • Atomic writes. Profiles are staged then renamed in place — an interrupted sync never leaves OrcaSlicer with a half-written config.
  • History & rollback. Every upload is a commit (or a snapshot folder); restore any past state in one click.
  • Diff before you sync. Per-profile JSON diff so you can see exactly what changes before overwriting.
  • Safe by default. Refuses to write while OrcaSlicer is running — no fighting the slicer for file handles.
  • Native everywhere. Built on Tauri 2 — small binaries, no Electron, no bundled Chromium.

Install

Pre-built bundles for each release are on the Releases page:

Platform Format
Windows OrcaSync_<version>_x64-setup.exe, .msi
macOS OrcaSync_<version>_aarch64.dmg, _x64.dmg
Linux .deb, .rpm, .AppImage

Or build from source — see Development.

Quick start

  1. Open OrcaSync, pick your sync backend (GitHub recommended), and sign in.
  2. On the machine that already has the profiles you want: Upload → first commit becomes the source of truth.
  3. On every other machine: Download → profiles land in your OrcaSlicer user dir.
  4. After that, the Sync screen shows what's drifted and lets you push or pull as needed.

Development

Prereqs: Rust stable (rustup), Node.js LTS (≥ 20), Tauri 2 platform deps.

# install frontend deps
npm --prefix frontend install

# install the Tauri CLI once
cargo install tauri-cli --version "^2.0"

# run the app (Vite + Tauri together)
cargo tauri dev

# or build a release bundle
cargo tauri build

Architecture

crates/
  orcasync-core/        # domain types, manifest diff (no I/O)
  orcasync-providers/   # SyncProvider trait + shared types
  orcasync-fs/          # OrcaSlicer profile dir discovery, atomic writes
  provider-github/      # git-based remote
  provider-gdrive/      # Google Drive remote
  provider-localfs/     # local / SMB remote
src-tauri/              # Tauri 2 application shell, IPC commands
frontend/               # Vue 3 + Vite + TypeScript UI

The local-write logic lives in orcasync-fs::write_profile_set — every code path that touches the user's profile dir funnels through it, including the OrcaSlicer-is-running guard.

Contributing

Issues, ideas, and PRs welcome. See CONTRIBUTING.md for the short version.

License

Dual-licensed under either of:

at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.

About

Sync OrcaSlicer printer, filament, and process profiles across machines — versioned in your own GitHub repo, Google Drive, or network share. Tauri 2 + Vue 3.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors