neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Developer toolsRust · TypeScriptGitHub @leepokaiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Open-source 1:1 alternative to Grok Bot and Muse: message your coding agents (Claude Code, Codex, Cursor, Gemini…) as bots from iPhone, Mac, Linux or terminal. Rust host, native apps.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
The open-source, 1:1 alternative to Grok Bot and Muse.
Your coding agents, as teammates you can message.
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.Read the full README ↗The open-source Grok Bot alternative. Bring your own agent and subscription — Claude Code, Codex, Gemini CLI, Cursor and 40+ more — as teammates you can message from your phone.
Website · Docs · Compare · Launch film
Free, open source, no paid tier. A ⭐ is how others find it.
macOS: Apple Silicon + Intel (DMG) · Windows: x64 installer · Linux: AppImage · All downloads
Codync turns the coding agents on your computer — Claude Code, Codex, Cursor, Pi, OpenCode, Grok Build, Gemini, Copilot, Hermes Agent and ~40 more — into persistent bots you delegate to from your iPhone, Mac, Windows PC, 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.
@name picks who replies. Reply to any message, yours or a bot's, right in the chat.codync-host is one small, fast Rust binary for macOS, Windows and Linux (static on Linux, runs on any distro) that drives every agent, keeps the transcripts and serves every client.| Platform | App | Highlights | |
|---|---|---|---|
| 📱 | iPhone | Native SwiftUI | Chat with bots, approvals, push notifications, Live Activity, widgets, remote screen, voice calls |
| 💻 | macOS | Desktop app (Electron), menu bar + window | Runs the host, chat window, usage in the menu bar, iPhone pairing |
| 🪟 | Windows | Desktop app (Electron), tray + window | Runs the host, chat window, iPhone pairing (no remote screen yet) |
| 🐧 | Linux | Desktop app (Electron), tray + window | Chat window, iPhone pairing; the host runs on desktops and headless servers |
| ⌨️ | Terminal | codync-host tui | Message your bots from any terminal, over SSH too |
The host (codync-host, Rust) runs on macOS, Windows and Linux; every client talks to it, so all your bots and chats are the same everywhere.
Looking for the former native Mac app (SwiftUI + AppKit)? Version 2.7.0 moved Mac and
Linux to one Electron desktop app. The native implementation is preserved in Git history at
1055636; see the archived AppKit chat implementation notes.
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
session/load, restarted with New session).team MCP server lets it discover your other visible bots and message one; the reply comes back to it as a new turn, and it answers you then. Requests appear in both chats; each recipient keeps its own agent, folder and approvals. Native subagents stay under the coding agent's control. See bot collaboration.rev, so the phone reconnects with since: rev and never misses anything.claude -p /usage (a local command, no model call) plus Claude Code's status line, and the signed-in Codex CLI reports current account limits without a model call. oh-my-pi, Amp, Kiro, Kimi, Antigravity, OpenCode, Mistral Vibe and Junie are read from their own command, database or IDE file. Cursor asks cursor.com with the sign-in it saved locally. The phone, widgets and menu bar see the resulting limits.UI patterns (roster, character avatars, approval cards, trace sheet, "needs you / done" notifications) follow Grok Bot.
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.
Windows — download codync-windows-x64.exe and run it. It installs for your user and starts the host at sign-in. The installer isn't code-signed yet, so SmartScreen asks you to confirm it once (More info → Run anyway). Not on Windows yet: remote screen, on-device speech and the Claude Code status line hook. Details: desktop app.
iPhone — get Codync on the App Store (iOS 26+, free), then scan the QR code from Pair iPhone… on the Mac, the Windows or Linux app, or codync-host pair.
Why the iPhone app can be a version behind: every iPhone release goes through Apple's App Review first, which usually takes a day or more, so the App Store version can trail the Mac, Windows, Linux and host releases. Your computer accounts for that: an update that needs a newer iPhone app waits until that version is in the App Store, then installs, and the iPhone app shows a reminder when a newer version is available.
Linux — the host, plus the desktop 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, an AppImage, with its .desktop file) when you're in a graphical session. By hand: codync-linux-<arch>.AppImage, .deb or .tar.gz from Releases.
Building the desktop app yourself: cd apps/desktop && npm ci && npm run dev.
Linux server / cloud VM — the host runs headless on any distro (static binary, x86_64 + arm64). Setup, remote access and limitations: Linux servers (contributor notes).
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 access (protocol).
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).
Quit Codync completely and reopen it first; a downloaded update may still be waiting
for the old app to exit. If updating still fails, uninstall the app and reinstall
the latest version from Releases.
On macOS, stop/remove the old host service before replacing Codync.app.
Keep ~/.codync and Codync's settings folders to retain your bots, conversations
and computer identity; do not use Reset all data, a cleanup utility, or Homebrew
--zap for this repair. Follow the reinstallation steps.
codync-host| Command | |
|---|---|
codync-host install / uninstall | background service (launchd on macOS, systemd --user on Linux, the sign-in Run key on Windows) |
codync-host tui [--url … --token …] | message your bots from a terminal (this computer by default; SSH-friendly) |
codync-host send --bot <id-or-name> [--wait] [--json] <text>... | send from a script, optionally waiting for the final reply |
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 [--assistants on|off] | cloud enablement, URL and status; whether ChatGPT, Claude and other connected assistants may message this computer's bots |
codync-host network | codync-network, your computers' network: create, invite, join, status, promote, remove, recover |
codync-host devices | list/revoke authorized remote devices |
codync-host access | review device access requests |
For non-interactive work, send a message and wait for a machine-readable result:
codync-host send --bot reviewer --wait --json "Review the current diff without modifying files."
--bot accepts an ID or an exact, case-insensitive name; duplicate names require an ID. Use positional text or --file request.txt to read UTF-8 (--file - reads stdin). --reply-to <id> quotes a message of the bot's chat: the entryId or replyId of an earlier --json result. Without --wait, the command prints the accepted message's id, seq and turn; with --wait, it prints the reply once the bot is done (a reply in several messages comes joined; a turn that ends with no text, such as only a reaction, prints nothing). Group chats can't be waited on. Queued messages retain the host's batching behavior, so multiple sends can share one reply and turn.
--timeout <seconds> defaults to 1800 active seconds. Pending approval pauses the clock and prints a summary to stderr; the command never approves a request or stops the bot on timeout. Notices also go to stderr. --json emits one JSON object with botId, entryId, entrySeq, turn, status (completed, failed, or timeout), optional stopReason, reply and replyId, notices, elapsedSeconds (wall time), and waitedForApprovalSeconds. Without --wait, completed means the send was accepted. Errors before acceptance only use stderr. Exit codes are 0 completed/accepted, 1 stopped/limited/declined/failed, 2 invalid arguments, missing/ambiguous bot or --wait on a group chat, 3 unavailable host or refused API request, and 4 timeout. See codync-host send --help for all options.
Data lives in ~/.codync. The local bearer token authorizes loopback helpers and SSH-forwarded callers. Use --port and CODYNC_HOME when targeting a host with a different port or data directory; development builds default to port 19223 and ~/.codync-dev. 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/.
Is Codync free? Yes. $0 with every feature included, Apache 2.0 licensed. You pay only your agent's provider, through the plan or key you already have.
Can I use my Claude or ChatGPT plan? Yes. Codync runs the agents already signed in on your computer: Claude Code with your Claude plan, Codex with your ChatGPT plan, and so on. It never calls a provider's API with your login.
Is there a Claude Code or Codex app for iPhone? Codync is one, free: Claude Code or Codex keeps running on your Mac or Linux machine, and you chat with it, approve its edits and get notified from the iPhone. Guides: Claude Code on iPhone · Codex on iPhone.
Which agents can it run? Claude Code, Codex, Cursor, Gemini, Copilot, OpenCode and about 40 more through the ACP registry. Each bot picks its own.
How is it different from Grok Bot, Muse or Dots? The same bot-based way of working (named bots, group chats, replies, approvals, memory), but open source, free, running on your own computer and with any coding agent. Side-by-side pages: codync.dev/compare.
Where does my data go? Bots, chats and memory stay on your computer. The phone reaches it directly on the same network, or through an end-to-end encrypted relay that can't read your messages.
Do I need an account? No. Pair your phone by scanning a QR code. Signing in with Apple or Google is optional.
Which computers can run it? A Mac, a Windows PC, or a Linux desktop or headless server. The iPhone app and the terminal UI over SSH talk to the same host.
| Path | |
|---|---|
host/ | codync-host — Rust daemon: ACP client, SQLite transcript, HTTP/SSE API, push, usage |
apps/ios/ | iOS app: pairing, roster, push, Live Activity glue |
apps/ios/Kit/ | The iPhone app's Swift package: CodyncKit (wire models, host client, theme, avatars; shared with the widgets) and CodyncUI (store + screens) |
apps/ios/Widgets/ | Bots, usage and per-provider usage widgets + bot Live Activity |
apps/desktop/ | Desktop app for macOS, Windows and Linux (Electron, React, TypeScript): menu bar/tray + chat window; installs/monitors the host |
cloud/ | Cloudflare accounts, D1, encrypted channel relay and offline mailbox |
apps/shared/Config/ | Environment configuration (Clerk key, cloud URL) for the iPhone and desktop apps |
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 |
private-relay/ | Single-process Node relay a person runs for their own computers: the cloud relay's WebSocket subset, without accounts |
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 apps/desktop && npm test # desktop app (also: npm run typecheck)
# iPhone package: xcodebuild test -scheme CodyncKit-Package (apps/ios/Kit, iOS Simulator)
cd cloud && npm test # cloud API / channel relay
cd relay && npm test # relay tickets
For release-by-release changes, see GitHub Releases.
Clients and the host each name the oldest version of the other they still work with (minApp in the host's hello, minHost in each client), so an app can meet an older or newer host. Details: compatibility.
The desktop notch island's design is inspired by the work of @novra.design.
Apache 2.0 for the code (see NOTICE); versions up to 2.11.0 were MIT. The Codync name, logo and the Codync Cloud relay are not covered, and hosted or multi-tenant services must run their own relay and accounts: see TRADEMARK.md.
computer