Codync README

The project's README from github.com/leepokai/Codync. As one markdown file: README.md.

Codync icon

Codync

The open-source, 1:1 alternative to Grok Bot and Muse.
Your coding agents, as teammates you can message.

App Store Homebrew Release License: MIT
iOS macOS Linux Rust Swift

Watch the Codync launch film on YouTube (1:26)

Download on the App Store

Codync turns the coding agents on your computer — Claude Code, Codex, Cursor, Pi, OpenCode, Grok Build, Gemini, Copilot and ~40 more — into persistent bots you delegate to from your iPhone, Mac, Linux desktop or any terminal, the way you'd message a colleague. Pick who, say what, put the phone away. You get a notification when a bot finishes or needs your approval.

Why bots? On a phone, "find the right working session, then pick an environment" is too slow. With bots you already know who to hand the intent to: open the chat, type, done.

Why Codync

Platforms

Platform App Highlights
📱 iPhone Native SwiftUI Chat with bots, approvals, push notifications, Live Activity, widgets, remote screen, voice calls
💻 macOS Native SwiftUI, menu bar + window Runs the host, chat window, usage in the menu bar, iPhone pairing
🐧 Linux Native GTK 4 / libadwaita Runs the host (desktop or headless server), chat app
⌨️ Terminal codync-host tui Message your bots from any terminal, over SSH too

The host (codync-host, Rust) runs on macOS and Linux; every client talks to it, so all your bots and chats are the same everywhere.

How it works

Remote Apple client ⇄ encrypted channel (direct or Cloudflare cloud/) ⇄ codync-host ⇄ ACP agent
Local / SSH client  ⇄ loopback HTTP + SSE                             ⇄ codync-host
Host notifications → APNs worker (relay/) → iPhone

UI patterns (roster, character avatars, approval cards, trace sheet, "needs you / done" notifications) follow Grok Bot.

Install

One line (macOS or Linux):

curl -fsSL https://raw.githubusercontent.com/leepokai/Codync/main/packaging/install.sh | sh

On a Mac it installs the app (the host ships inside it); on Linux the host, plus the desktop app when a display is present. Add sh -s -- --host-only for servers and headless Macs. Re-run it to upgrade.

Mac — download codync-macos.dmg and drag it to Applications, or:

brew install --cask leepokai/codync/codync

All three install the same signed, notarized app.

Open Codync: it sets up the host on first launch. Open Codync opens the full window; Pair iPhone… shows the QR code.

iPhone — get Codync on the App Store (iOS 18+, free), then scan the QR code from Pair iPhone… on the Mac, the Linux app or codync-host pair.

Linux — the host, plus the native GTK 4 / libadwaita app:

curl -fsSL https://raw.githubusercontent.com/leepokai/Codync/main/packaging/install.sh | sh
# or: brew install leepokai/codync/codync-host
codync-host install   # systemd --user service
codync-host pair      # QR code in the terminal, or Settings in the app

The script also installs the desktop app (codync, with its .desktop file and icon) when you're in a graphical session; it needs GTK 4 and libadwaita. By hand: unpack codync-linux-<arch>.tar.gz from Releases and run bin/codync.

Building the Linux app yourself needs libgtk-4-dev libadwaita-1-dev: cargo install --path apps/linux.

Linux server / cloud VM — the host runs headless on any distro (static binary, x86_64 + arm64). Setup, remote access and limitations: docs/guides/linux-servers.md.

Remote access works out of the box through the free Cloudflare relay, end-to-end encrypted; the phone switches to a direct connection on the same network or over Tailscale. Details: remote relay.

Agents — install and sign in to whichever you use; Codync finds them. Claude Code, Codex and Pi run through their ACP adapters (fetched by npx, so Node.js is needed for those).

codync-host install also routes Claude Code's status line through codync-host statusline so live limits reach the host; an existing status line keeps working (it's wrapped, and restored on uninstall).

codync-host

Command
codync-host install / uninstall background service (launchd on macOS, systemd --user on Linux)
codync-host tui [--url … --token …] message your bots from a terminal (this computer by default; SSH-friendly)
codync-host pair [--json] pairing QR code / link
codync-host status installed? running?
codync-host serve [--port 19222] run in the foreground
codync-host statusline [-- <your command>] Claude Code status line command (wraps yours)
codync-host reset-token rotate the local loopback bearer token
codync-host cloud cloud enablement, URL and status
codync-host devices list/revoke authorized remote devices
codync-host access review device access requests

Data lives in ~/.codync. The local bearer token authorizes loopback helpers and SSH-forwarded callers. Remote devices use individual keys and grants over the encrypted channel; revoke a lost device through device management rather than rotating the loopback token. Host methods and caller permissions live in host/src/api/mod.rs.

Repository

Path
host/ codync-host — Rust daemon: ACP client, SQLite transcript, HTTP/SSE API, push, usage
kit/ Swift package: CodyncKit (wire models, host client, theme, avatars) and CodyncUI (store + chat screens shared by iPhone and Mac)
apps/ios/ iOS app: pairing, roster, push, Live Activity glue
apps/ios/Widgets/ Bots, usage and per-provider usage widgets + bot Live Activity
apps/macos/ Menu bar + native chat window; installs/monitors the host
apps/linux/ Native Linux app (GTK 4 + libadwaita, Rust)
cloud/ Cloudflare accounts, D1, encrypted channel relay and offline mailbox
apps/shared/ Shared Apple account integration and environment configuration
apps/screen-macos/, apps/screen-linux/ Platform screen capture/input helpers
docs/ Documentation index and file structure
relay/ Cloudflare Worker APNs relay with encrypted per-device tickets
web/ Website (Next.js static export, deployed on Vercel)
packaging/ Homebrew cask and formula templates (published to leepokai/homebrew-codync on release) and install.sh (the curl installer)

Build, install, restart and full checks: development guide.

The Xcode project is generated: xcodegen generate --spec apps/project.yml.

cd host && cargo test            # host
cd kit && swift test             # shared Swift
cd apps/linux && cargo test      # Linux app (needs GTK dev packages)
cd cloud && npm test            # cloud API / channel relay
cd relay && npm test             # relay tickets

Versioning

The major version is the phone ↔ host protocol: apps work with hosts of the same major version.

License

MIT

Codync (leepokai/Codync)

Searching Database…

457 ·GitHub
What is this?Codync turns coding agents already installed on your computer (Claude Code, Codex, Cursor, Gemini, Copilot and ~40 more via the ACP registry) into persistent named bots you message like teammates from your iPhone, Mac, Linux desktop or any terminal. It's a free, open-source alternative to Grok Bot and Muse.
Is this an app I install or a framework I code against?It's a Rust daemon called codync-host plus fully native client apps: SwiftUI for iPhone and Mac, GTK 4 / libadwaita for Linux, and a terminal UI for SSH — no web views or Electron involved.
How do I get it running?Run a one-line install script on macOS or Linux (add --host-only for servers), which installs codync-host plus the desktop app where a display is present; on Mac you can instead download codync-macos.dmg. Then install the iPhone app from the App Store and pair it by scanning the QR code shown in 'Pair iPhone...'.
Do I need anything besides the coding agents I already use?Codync auto-detects agents already on your PATH, but some are fetched on first use via npx or uvx — Claude Code, Codex and Pi specifically run through ACP adapters fetched by npx, so Node.js is required for those.
Does the host run on Windows?No — codync-host is only built for macOS and Linux (a static binary on Linux that runs on any distro); clients like the iPhone and terminal apps connect to that host.
Can I run the host on a headless cloud server instead of a desktop?Yes — codync-host runs headless on any Linux distro as a static binary (x86_64 and arm64), making it suitable for a cloud VM or server with no display attached.
Where does my data go when I message a bot remotely?Messages go through a free hosted Cloudflare relay that only ever sees ciphertext, since traffic is end-to-end encrypted between your phone and your computer; on the same Wi-Fi or Tailscale the phone connects directly instead.
Can bots ask each other for help?Yes — a built-in team MCP server lets one bot discover and message your other visible bots, so a Claude bot can ask a Codex bot for a review while each keeps its own project folder and approvals.
What does the remote screen feature do?It streams your computer's screen to the iPhone over WebRTC with hardware H.264 so you can view and control it remotely, and bots can use the same screen through a built-in computer tool.
Can several bots chat together in one conversation?Yes — group chats hold multiple bots plus you; each message triggers a short turn where @-mentioned (or all) bots reply in sequence and can react to each other for up to three rounds.
What are similar projects?zuse, happy, navop, vicoa, tusk, herdr-web-ui, sill, casbin-gateway
Creator
leepokai
Size
46 MB
Stars
457
Age
7mo
Commits · 90 Days