Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、Codex、Cursor 與 40+ 程式碼代理人作為持續機器人傳訊。群組聊天、主題串…
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Copy objects between Jamf Pro servers, Platform API environments, and files. Based on jamf/Replicator.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A macOS app that copies a source Jamf tenant to a destination tenant — or any selection down to a single object — with a read-only Preview, a resumable run, and a gated wipe.
Jamf Migrator started as a fork of Replicator by Jamf Professional Services (MIT license) and has been rewritten as a SwiftUI app for macOS 26 on top of the Jamf Platform API and the Jamf Pro APIs.
Each tenant is added in Settings › Connections with one of two connection kinds:
https://yourcompany.jamfcloud.com) with either an
API client or a Jamf Pro username and password. A username and
password sign in for a token; requests never use Basic authentication.The two kinds mix freely: a Jamf Platform API source can copy to a direct destination and the reverse. Blueprints and Compliance Benchmarks exist only behind the Jamf Platform API gateway; while a selected tenant connects directly to Jamf Pro, those types are grayed out and left out of Preview.
Client secrets and passwords are stored in the macOS Keychain, never on disk.
The quick version: the source needs Read and the destination needs Read, Create and Update on every object type you copy, plus Delete for delete mode. For least privilege, Permissions lists the Jamf Account permission and the Jamf Pro privileges for each object type, the types each one also reads, and the few exceptions. The Clone Tenant wizard’s Connect step checks every selected type on both tenants and names any a tenant can’t read.
Objects migrate in dependency order and are matched by name on the destination. Preview (the dry run) reads both tenants, writes nothing, and labels every object:
| Outcome | Meaning |
|---|---|
| Create | Not on the destination yet. |
| Update | Exists but differs; the inspector shows a field-level diff. |
| Replace | Compliance Benchmarks only: deleted and recreated (they have no update endpoint). |
| Unchanged | Identical; skipped. |
| Blocked | Can’t be migrated; the reason is shown. |
| Step | Object types |
|---|---|
| 1 | Sites |
| 2 | Categories, buildings, departments, network segments |
| 3 | Computer, mobile device and user extension attributes |
| 4 | Scripts, packages (records only), distribution points |
| 5 | Jamf Pro user and group accounts, LDAP servers, users, user groups, directory bindings, software update servers |
| 6 | Smart and static computer and mobile device groups, advanced searches |
| 7 | Configuration profiles, Mac and mobile device apps, eBooks, classes, restricted and licensed software, printers, Dock items (with their Self Service icons) |
| 8 | Policies, patch management titles and policies, App Installers |
| 9 | Enrollment customizations |
| 10 | Computer and mobile device PreStages (with ADE and distribution point mapping) |
| 11 | Blueprints (Jamf Platform API only): deployed on the destination only when deployed on the source; an out-of-date one is deployed with a warning |
| 12 | Compliance Benchmarks (Jamf Platform API only) |
| 13 | Webhooks and tenant settings: check-in, inventory collection, SMTP, Self Service, re-enrollment, LAPS, onboarding, single sign-on |
Onboarding items are matched by name on the destination; single sign-on that is off on the destination stays off.
The Clone Tenant wizard shows this list before every clone:
Every run, also a stopped one, saves a report to the Run Reports folder;
Show Report in Finder in the run window opens it. Turn on Settings ›
Export to save every source payload and every written payload per run;
passwords, Settings › Secrets values and license serial numbers are replaced
by <redacted> in those files.
The toolbar’s Clone Tenant button runs the guided flow: Connect (checks both tenants and their permissions) → Prepare (manual checklist, ADE and distribution point mapping, secrets) → Preview → Run → Verify, which plans again and shows that a second run would write nothing.
⌘D turns on delete mode for the session (the app always starts in Copy): a red banner appears, Run turns red, and every run confirms with the tenant name and counts. The red Wipe Tenant button deletes every selected object type from a tenant behind gates that must all pass, in order: the tenant isn’t Protected, a Preview, a verified backup of the selected types (skippable only through an extra confirmation), and typing the tenant’s name. Deletes run in reverse dependency order, retry objects held by dependencies, and end with a report of anything left behind. Delete mode never removes the account a direct connection signs in with, or a Jamf Pro account or group with full access and the Administrator privilege set.
Try Demo Mode in the sidebar (or Connection › Demo Mode) swaps your tenants for two made-up ones, Contoso Source (Demo) and Contoso Destination (Demo), so you can try every flow without a Jamf tenant. Demo Mode never reads your Keychain or Settings › Secrets, and its run reports, journals, backups and exports go to a temporary folder.
A short tour starts on first launch and walks through the workflow; replay it from Help › Guided Tour.
At launch, at most once a day, the app asks GitHub for the latest release and offers it once, with its release notes and a download of the zip. Jamf Migrator › Check for Updates… checks on demand; Settings › Updates turns the daily check off. The app is sandboxed and can’t replace itself: save the zip, quit, and swap the app in Applications.
~/Library/Containers/be.jordythery.jamfmigrator/Data/Library/Application Support/JamfMigrator/This tool is provided as-is, without warranty of any kind. Use it at your own risk. This is a personal project. It is not affiliated with or endorsed by my employer or Jamf. Issues and pull requests are appreciated. Support is best-effort.
MIT — see LICENSE. Based on Replicator, © Jamf.