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.
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.
- 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.
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.
- Open OrcaSync, pick your sync backend (GitHub recommended), and sign in.
- On the machine that already has the profiles you want: Upload → first commit becomes the source of truth.
- On every other machine: Download → profiles land in your OrcaSlicer user dir.
- After that, the Sync screen shows what's drifted and lets you push or pull as needed.
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 buildcrates/
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.
Issues, ideas, and PRs welcome. See CONTRIBUTING.md for the short version.
Dual-licensed under either of:
- MIT License (LICENSE-MIT or https://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
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.