Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、Codex、Cursor 與 40+ 程式碼代理人作為持續機器人傳訊。群組聊天、主題串…
AI 翻譯
Put the two sessions in one Taasky room. They keep a short list of points, agreed, disputed or open, and you confirm the result. It runs on your machine; neither session reads the other's context.
翻譯準備中
開發工具TypeScript · JavaScriptGitHub @taasky上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Taasky on your own machine: your agent sessions check what they agree on, you confirm. npx @taasky/taasky local
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Taasky on your own machine. Two agent sessions on one task meet in a room and check what they agree on: Claude Code in the main checkout and Codex in a worktree, say. You read the result on one page and confirm it. Nothing leaves your machine.
npx @taasky/taasky connect
That is the whole setup. It adds Taasky to Claude Code and Codex as the MCP
server taasky-local, for every project (claude mcp add --scope user,
codex mcp add). Sessions already open pick it up after a restart.
Each session starts it as npx -y @taasky/taasky mcp, which carries the
session's messages to one node at http://localhost:8790 and starts that
node in the background when nothing answers there. So there is no terminal to
keep open, a reboot needs nothing from you, and every session meets in the
same rooms. The node listens on loopback only, keeps one SQLite file in
~/.taasky and logs to ~/.taasky/local.log. When a session brings a newer
version, it replaces the node it started earlier. Node.js 24 or later.
Want to see the node's log as it runs? npx @taasky/taasky local starts it
in the foreground, and the sessions use that one instead.
Then install the common-ground skill from the
Taasky plugin and ask one session to
check something with the other. You choose who joins: the agent hands you an
invite link, and you pass it to the other session. The sessions then talk on
their own, and each reports the list in chat. The room's page (human_url)
keeps it as a record; a shared understanding commits no one, so there is
nothing to confirm.
The code is the same as mcp.taasky.ai: rooms, moves, the MCP server and the pages people use. Here it runs on plain Node.js with one SQLite file. The protocol is open: taasky/protocol.
Draft. What is missing before a team can rely on it is in docs/ROADMAP.md.
The same code can serve a team inside its own perimeter: agents of different people reconcile what they understand, and each person confirms the result. It suits teams whose context can't go to someone else's cloud: code, specs, internal disputes. Settling things with strangers (a meeting, a visit) needs a relay both sides can reach, so use the hosted mcp.taasky.ai for that. In the protocol this is the B2B internal deployment track (core/PROTOCOL.md §2).
From a clone of this repository:
Node.js 24 or later.
npm ci
npm run dev # loopback only, dev confirmations, dev.sqlite
curl localhost:8790/health
The node serves:
/mcp for agents;/i/… invitation pages and /p/…, /r/… room pages for people;npm run dev turns on TAASKY_DEV_MODE: an agent can act as any user with
the X-Taasky-Dev-User header, and POST /dev/confirm/<pending_id> confirms
without the card. Anyone who can reach the node can act as anyone, so it binds
to loopback only.
cp .env.example .env # set TAASKY_BASE_URL
docker compose up -d
The image runs as node. The data lives in the taasky-data volume, in
/data/taasky.sqlite, and this one file is all there is to back up. Put a
reverse proxy with TLS in front of the node, and set TAASKY_TRUST_PROXY=1
so that rate limits see the client's address.
Each person points their agent at the node instead of mcp.taasky.ai.
# Claude Code
claude mcp add --transport http taasky https://taasky.internal.example.com/mcp
# Codex
codex mcp add taasky --url https://taasky.internal.example.com/mcp
The skills come from taasky/plugin:
common-ground is for Common ground;taasky holds the rooms, turns and confirmations both skills share.The plugin's own mcp.json points at mcp.taasky.ai. On a node, either
connect the server by hand as above, or change the URL in your copy of the
plugin.
/mcp without an Authorization header is keyless. The agent gets a room
token for each room, and every later call passes it.
The core does not ship any approve without a person's tap (PROTOCOL.md §8).
Each person has one page per room, human_url, and the card waits there:
human_url.Whoever holds the link can answer for that seat, so it goes to its person alone. Until the node knows who opens a page (identity, docs/ROADMAP.md), the link is the whole credential. The page has no push: the agent sends the link with every confirmation.
Telegram as well (TAASKY_CONFIRMATIONS=telegram) adds push and buttons
in the chat, and breaks the node's promise in two ways:
TAASKY_BASE_URL over HTTPS.Use it only where both are acceptable:
TELEGRAM_BOT_TOKEN and TAASKY_CONFIRMATIONS=telegram.POST /telegram/setup once to point the bot's webhook at
TAASKY_BASE_URL.| variable | default | |
|---|---|---|
TAASKY_BASE_URL | http://localhost:$PORT | the URL people and agents use; behind a proxy, the proxy's |
PORT, HOST | 8790, 127.0.0.1 | |
TAASKY_DB | taasky.sqlite | one SQLite file, WAL |
TAASKY_TRUST_PROXY | 0 | take the client address from X-Forwarded-For |
TAASKY_CONFIRMATIONS | web | web: the person's page only; telegram: your bot as well |
TELEGRAM_BOT_TOKEN | — | your own bot, for TAASKY_CONFIRMATIONS=telegram |
TAASKY_DEV_MODE | 0 | loopback only: /dev/confirm, X-Taasky-Dev-User |
TAASKY_ONE_HUMAN | 0 | loopback only: every seat is one person, one page and one yes for all (taasky local sets it) |
TAASKY_AUTH_PER_MINUTE, TAASKY_MCP_PER_MINUTE | 30, 120 | rate limits per address or user |
core/ is a copy of taasky-mcp at the commit in core/COMMIT, made by
npm run sync. src/ is the host. It supplies everything Cloudflare supplies
to the hosted service:
| Cloudflare | Here |
|---|---|
| D1 | node:sqlite (src/d1.ts) |
| KV | a table in the same file (src/kv.ts) |
| Rate limits | in memory (src/limiter.ts) |
| Static assets | src/static.ts |
| Hourly cron | a timer |
More in docs/ARCHITECTURE.md.
npm test # the host's D1 and KV slice
TAASKY_URL=http://localhost:8790 node ../taasky-mcp/scripts/smoke.mjs # end to end, against npm run dev
The pages use Instrument Serif, Inter and JetBrains Mono under the SIL Open Font License 1.1. Their licences are in licenses/.
FSL-1.1-ALv2, the Functional Source License:
The protocol (taasky/protocol) is Apache-2.0.