cosyncing/cosyncing 预览 preview

cosyncing/cosyncing

Synchronize and Orchestrate agents from CLI to GUI, across desktop to phone.

项目介绍Project Overview

cosyncing 是一个跨端客户端,可同步并控制 Claude Code、Codex、OpenCode、Pi、Kimi CLI 与 DeepSeek Harness 等本地代理。核心能力:通过自建的代理中继,在桌面与移动端查看会话、审阅差异、应答提示并接管控制。适用于多设备协作或在终端外继续推进代理任务。注意:Claude Code 会话默认只读,文件附件仅支持图像,DSH 与 Kimi Code 适配器尚处实验阶段。

cosyncing is a cross-platform client for synchronizing and controlling local agents such as Claude Code, Codex, OpenCode, Pi, Kimi CLI, and DeepSeek Harness. Core capability: a self-hosted broker exposes sessions, diffs, and prompts so the Flutter client can resume, answer, or take over from desktop or mobile. Use it when continuing agent work outside the terminal or across devices. Caveat: Claude Code sessions open read-only until takeover, and DeepSeek Harness and Kimi Code adapters are experimental with image-only attachments.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:cosyncing/cosyncing

cosyncing/cosyncing 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

cosyncing

From CLI to GUI, live and in sync

cosyncing app and agent CLI staying in sync through takeover and a permission request

Code anywhere. Sync everywhere. Your agents keep working. You keep moving.

Website · Install · Client · Docs · Contributing · 简体中文


Synchronize and control your agents — from CLI to GUI, from desktop to phone. Pick up right where you left off, anywhere. cosyncing keeps your coding agents in sync across your own network.

The broker runs on the machine where your agents work. It watches their sessions and serves a client that shows each one — grouped by project, with its transcript, diffs, commands, and any prompt waiting on you. Read a session, answer a prompt, or take over. No account to create, no hosted service between the client and the broker.

Supported agents

Claude Code Codex OpenCode Pi Kimi CLI DeepSeek Harness

One protocol covers all six. Per-agent control differs, and Claude Code sessions open read-only until you take over. See supported-agent setup for versions and installation, and adapter support for the capability matrix.

Foreground clients can join the same broker-owned Codex or Pi Drive session without starting a second native Resume. Claude Code keeps its Observe/Take-over flow on another client, while OpenCode keeps its shared-live behavior. Background Observe connections stay read-only.

Experimental: Two provisional adapters are available to source contributors, both talking to a local server rather than a CLI. Kimi Code observes every session on a kimi web server read-only, drives the ones cosyncing created — prompts, approvals, model selection — and takes over the ones it did not, explicitly. DeepSeek Harness connects to a dsh web host and gives active foreground clients a shared transcript and control surface, with model and reasoning-effort selection, permission presets, the host's own slash commands, and image attachments. General file attachments are not supported — the host accepts image content only — and background resident subscriptions and some message presentation remain follow-up work.

Neither needs a rollout flag, and neither needs a terminal left open: an installed cosyncing service starts a host when none is running, restarts one that crashes, and stops the one it started. A host you started yourself is never stopped, replaced, or reconfigured, and setup names both hosts before you agree to manage them. Install DeepSeek Harness globally with npm install -g @deepseek-ai/dsh — cosyncing looks for dsh on your PATH, so an npx-only install can be talked to but never started or version-checked. See supported-agent setup for both hosts.

Prerequisites

The server requires Bun 1.3.8 or newer to run cosyncing and Node.js/npm to install and update it. The broker is local-only by default. Cross-device use requires a proxy, tunnel, VPN, mesh network, or another operator-owned connectivity method. For a simple private route, see Tailscale Serve; for a self-managed overlay, see WireGuard or EasyTier. After cosyncing setup, you can also copy https://github.com/cosyncing/cosyncing/tree/main/docs/connectivity to a coding agent and ask it to configure your chosen method while keeping the broker bound to loopback. Tokdash is optional but strongly recommended for quota tracking and warnings.

See installation prerequisites for Linux and macOS commands, WSL notes, and Tokdash setup.

Install

The package contains one JavaScript application bundle and the web client. Supported broker hosts are Linux x64, Linux arm64, and Apple Silicon macOS; on Windows, run the broker inside WSL.

Before setup, install only the agents you use; see agent setup and PATH preflight.

Install the current release:

npm install --global cosyncing

Open a new login shell, then configure the service:

cosyncing setup

# After setup, use cosy as the shorthand for cosyncing
cosy restart
cosy doctor
cosy status
cosy pair

setup inspects the machine, shows exactly what it will change, and applies the whole plan or none of it. It copies the broker to ~/.cosyncing/bin/cosyncing, installs a user service that runs that copy with your Bun, and prints your broker URL. The broker refuses to start until setup has committed.

To update, let npm replace the global package, then re-run setup so cosyncing copies the new application into its managed service and reconciles the installation:

npm update --global cosyncing
cosy setup

cosy update reports this package-manager-owned update path; it does not run npm or modify the global package.

cosy pair --broker-url https://cosy.example.com includes that client-reachable origin in a five-minute, one-use QR code. The URL is not persisted or probed. Omit the flag for an authentication-only offer when the client already knows its broker URL. See the connectivity chooser. Scan the QR from a client to grant access; cosy devices list lists paired devices, and cosy devices revoke <id> revokes one.

After setup, cosy doctor diagnoses the machine without changing it, and cosy status summarizes install, service, agents, and sessions.

Client

The packaged Flutter web app is served by your own broker at /cosy/; it does not fetch application code from a third-party host at runtime. Setup prints the URL; open it in any browser that can reach the broker. Android and desktop clients are available from GitHub Releases. The iOS client will follow later through TestFlight.

cosyncing landscape workspace with a session roster beside a live conversation cosyncing portrait client with sessions grouped by project and live status

Server — the broker runs on:

macOS on Apple Silicon Windows via WSL Linux x64 and arm64

Clients — the source tree and CI cover six platforms:

Android iOS Linux macOS Windows Web

Native Windows and Intel macOS server hosting are not supported in this release. On Windows, run the broker inside WSL, where it is a supported Linux host. Connectivity software that forwards broker loopback must run where it can reach the WSL broker; see the method-specific guides.

Privacy and security

The broker runs on your machine, under your account. Broker state is stored there; session content is sent only to authenticated clients over the network you choose. cosyncing operates no hosted service in that connection path and includes no analytics or advertising telemetry. Optional features contact only the services they name, such as local Tokdash quota data. cosyncing does not configure or contact connectivity providers; any proxy, tunnel, VPN, or mesh is operator-owned. The npm-installed broker does not silently replace itself: npm owns package updates, and cosy setup reconciles the installed service after an update.

Report vulnerabilities through GitHub private vulnerability reporting, per SECURITY.md.

Repository layout

  • packages/typescript/ — broker, wire-contract owner, agent adapters, transport, and crypto.
  • packages/dart/ — client contract, transport, Flutter adapter, and crypto.
  • apps/client/ — the Flutter application, including every platform runner, test suite, integration driver, and developer tool.
  • contracts/generated/ — broker-owned, flattened client contract snapshot.
  • apps/poc-ui/ — non-production proof-of-concept UI retained for deterministic broker tests.

Development

The repository pins Flutter 3.44.3 in .fvmrc and Bun 1.3.8 in package.json. Run commands from the repository root.

bun install --frozen-lockfile
bun run client:pub-get
bun run typecheck
bun run client:analyze
bun run client:test

Regenerate broker-owned client contracts with bun run contract:generate. CI runs bun run contract:check and fails on a stale snapshot.

Start with docs/README.md and build and test. Read CONTRIBUTING.md and CODE_OF_CONDUCT.md before opening a change; contributions use fork-and-pull-request and require a signed-off commit. Usage questions go to GitHub Discussions and reproducible defects to GitHub Issues — see SUPPORT.md. Installs from a predecessor client start fresh; see local data and upgrades.

License

First-party source is licensed under the Apache License 2.0. See LICENSE and NOTICE.

上一个 Prev dsh-meme-hub 下一个 Next dsh-whale-report