Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、Codex、Cursor 與 40+ 程式碼代理人作為持續機器人傳訊。群組聊天、主題串…
AI 翻譯
Every machine in your house, one system: discovery, memorable names, and one local AI endpoint.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Every computer in your home, working as one.
Website · Getting started · Docs · Known issues · Discussions
Jaggery is a small program you run on each computer in your house. They find each other, show up on one page, and share their AI models through one address. No account, no router changes, nothing to configure.
Public alpha. Jaggery is early (v0.x): it works in our houses, and we want to hear where it doesn't work in yours. Read the known issues, and please tell us what you find.
desktop $ jag invite
on the machine you want to add, run:
jag join amber-attic-barley-brook-basil-acorn
laptop $ jag join amber-attic-barley-brook-basil-acorn
joined the house through desktop
both machines now trust each other.
Then open http://jaggery.local on any phone or laptop at home.
jaggery.local: every machine, its memory, disks and GPU, and the self-hosted apps it runs (Jellyfin, Immich, Home Assistant and 17 more). Works on a phone.jag apps name "Open WebUI" chat, and every device in the house opens it at http://chat.local, whichever machine and port it's on.ai.local: an OpenAI-compatible endpoint (chat and embeddings) in front of Ollama, LM Studio, llama.cpp and vLLM on every machine, which also speaks Ollama's own API for apps that only know Ollama. Each request goes to the machine that has the model loaded, or ran it fastest. A new model stays off ai.local until you approve it.jag share add, and AI apps read it (and, if you allow it, write to it) through the MCP server at ai.local/mcp. Every access is logged, and old versions are kept for 30 days.jag outbound).jag activity shows who used which model on which machine; jag files log shows what agents read and changed.jag doctor checks the machine and its network, and says what to type to fix what fails.On each machine:
curl -fsSL https://jaggery.dev/install | sh
The script picks the build for the machine, checks it against the release's signed checksums, and installs Jaggery as a service; it asks for sudo once. Read it first if you like: that's what it's for. Then run jag invite on the first machine and jag join <code> on the next. The walk-through, including the Mac's one-time network permission, is in Getting started. To remove it: curl -fsSL https://jaggery.dev/install | sh -s -- --uninstall.
Point any OpenAI-compatible app at http://ai.local/v1:
curl http://ai.local/v1/chat/completions \
-d '{"model": "llama3.2:3b", "messages": [{"role": "user", "content": "hi"}]}'
You need two or more computers on the same home network. An AI runtime (Ollama, LM Studio, llama.cpp or vLLM) is optional: without one, you still get the page and the names.
| Platform | Status |
|---|---|
| Linux, x86-64 and 64-bit ARM | Supported |
| Raspberry Pi (64-bit and 32-bit Raspberry Pi OS) | Supported |
| macOS, Apple silicon | In testing (known issues) |
| macOS, Intel | Builds, not tested yet |
| Windows | Not yet (#17) |
flowchart LR
you["Phone or laptop<br/>http://jaggery.local<br/>http://ai.local/v1"]
subgraph house["Your home network"]
desktop["desktop<br/>answers the names"]
laptop["laptop<br/>LM Studio"]
nas["nas<br/>Jellyfin, Immich"]
desktop <-->|mutual TLS| laptop
desktop <-->|mutual TLS| nas
laptop <-->|mutual TLS| nas
end
you --> desktop
Each machine runs the same program. They find each other over mDNS, the way a phone finds a printer, and trust each other only after a one-time code or your approval; from then on they talk over mutual TLS. One machine answers for jaggery.local and ai.local, and if it goes away another takes over: there's no central server. Requests to ai.local go to whichever machine can answer them. The long version is in How it works, and the reasons behind the choices in tech-specs/decisions.md.
.local names. Jaggery uses the same mDNS, and adds trust between machines, names for apps, and one page.ai.local and it sees the whole house.What leaves your house: each machine asks GitHub for a new release every 30 minutes (jag update --policy off stops it), and hosted models, if you add one. Nothing else. Jaggery trusts your home network and everything on it, like a printer does: put guests and smart devices on a separate network. Web pages and the internet are refused. Details: security.
Jaggery is in alpha so that we can learn from houses that aren't ours.
jag doctor --json.Fixes ship often during the alpha. To get them without thinking about it: jag update --policy auto --channel prod. Each machine waits a day after a fix is published, then they update one at a time.
| Getting started | From nothing to two machines on one page |
| How-to guides | Approve models, name apps, share folders, add a hosted provider, join from another network, updates, troubleshooting |
| Reference | Every command, file, port and environment variable |
| How it works | Discovery, trust, names, routing and updates, in plain words |
| Security | What it listens on, what leaves the house, and what isn't protected yet |
| Roadmap and plan | Where it's going, what 1.0 means, and what's out of scope |
Help is welcome, especially from people with hardware we don't have (NVIDIA or AMD cards, Windows, Android, a NAS, mesh Wi-Fi) and people who run self-hosted apps Jaggery doesn't recognise yet. Start with CONTRIBUTING.md and the issues labelled good first issue or needs hardware. AI-assisted contributions are welcome, with a person answering for every pull request.
Jaggery is unrefined sugar, made at home in kitchens across South Asia: simple, honest, a little sweet. That's how we want the computers in your home to feel. The command is just jag.
Apache-2.0. The name and logo have their own trademark policy: use them to talk about Jaggery and to package it unmodified; a changed version needs another name.
Jaggery stands on miekg/dns, the official MCP Go SDK, and Go's standard library.