Quick_Start

Your Data.Your Backend.Synchronized.

Agent-first sync infrastructure for everything. Bring your own Codable types — the kit encrypts, syncs, and deploys. Any entity, any platform, your backend.

For_Agents

Read the context file

Fetch the full agent guide — architecture, invariants, copy-adaptable code, and deploy steps — in one request.

https://applesynckit.frad.me/llms.txt

Or point your agent at the page — it embeds <link rel="llms-txt"> for auto-discovery.

For_Humans

Add the package

Drop one line into your Package.swift, deploy the bundled Worker, and ship a self-hosted sync backend.

Package.swift
.package(url: "https://github.com/FradSer/apple-sync-kit.git", from: "0.4.1")

Then add .product(name: "AppleSyncKit", package: "apple-sync-kit") to your target.

zsh — applesync — 80x24[LOCAL_AUTH: ACTIVE]

$ async status

Connecting to worker.mysync.workers.dev...

✓ Authenticated via Cloudflare D1

[Notes] Fetching latest changes...

$ async push --all

Encrypting 12 entities (AES-GCM-256)...

✓ Successfully pushed: 8 Notes, 4 Reminders

$

Build_flow

From Codable type to live sync in three moves.

  1. 01

    Define your entities

    Conform your Codable types to the kit. EventKit on Apple, local SQLite elsewhere — the read layer is yours, the sync engine is shared.

  2. 02

    The kit encrypts and syncs

    Every record is sealed with AES-GCM-256 on device, then reconciled last-write-wins over a cursor. You write zero sync code.

  3. 03

    Deploy one D1 Worker

    Ship the bundled Cloudflare Worker with a single command. You own the D1 database and the keys — no servers, no lock-in.

Capabilities

Everything the sync layer needs. None of the busywork.

APPLE_FIRST

Apple-native, cross-platform

EventKit and Apple platforms come first; the same kit runs on Linux over local SQLite. One codebase, every device.

ENTITY_AGNOSTIC

Bring your own types

The engine is generic over any Codable record. Sync notes, reminders, or your own domain models without forking the core.

E2E_ENCRYPTED

Encrypted before it leaves

AES-GCM-256 with record-bound AAD, sealed on device. Your Worker only ever stores ciphertext — keys never leave the client.

FAST_DEPLOY

One command to a Worker

Ship the bundled Cloudflare D1 Worker with wrangler deploy. A self-hosted sync backend in minutes, not weeks.

AGENT_READY

Built for agents

Composable Swift APIs and scriptable CLIs that LLM agents and automations drive cleanly — structured I/O, no hidden state.

OPEN_SOURCE

Swift, auditable, MIT

A small library with no composition root and last-write-wins conflict handling. Read every line that touches your data.

Start_Building

Add the package.
Ship sync.

Add AppleSyncKit to your Package.swift, deploy the bundled D1 Worker, and point your Swift app at a backend that answers only to you.

Package.swift — dependencies
.package(url: "https://github.com/FradSer/apple-sync-kit.git", from: "0.4.1")

Then add .product(name: "AppleSyncKit", package: "apple-sync-kit") to your target.