Codync
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
Run a team of Claude Code agents from one browser tab: see who needs you, hand out work on a shared board, let agents coordinate. Free, open source, runs on your machine.
Developer toolsJavaScript · PythonGitHub @moloryOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Organise your agent teams. Boost the productivity of your Claude Code agents: run them side by side, see who needs you, and hand out work on a shared board. Free, open source, and it runs on your machine.
Website · Quick start · Guide · Changelog · Contributing
One agent is an assistant. Several agents are a team. A team needs a place to work together, and a terminal per agent is not one: you lose track of who is working, who is stuck on a permission prompt, and who is doing what. Ziggy One gives your agents that place.
127.0.0.1,
using your existing Claude Code login.Each agent is the real, interactive Claude Code running in its own terminal, in the browser. Ziggy One keeps them
organised (workspaces, pins, names, avatars), shows what they are doing (live status, context usage, a readable
view of the conversation), lets them coordinate (shared activity, an agent directory, a Kanban board they can use
through MCP), and tracks your plan usage, all from one page served on 127.0.0.1.
Zero third-party dependencies. The server is the Python standard library; the front end is vanilla HTML/CSS/JS with no npm and no build step. The only vendored code is xterm.js (MIT), pinned and checksummed, with its full TypeScript source in the published source map, plus 42 Twemoji SVGs (CC-BY 4.0) used as avatars.
The interface is in English by default and also available in Chinese, Hindi, Spanish, Arabic and French (Configuration › General). More languages are welcome: see CONTRIBUTING.md. Every module is described in the detailed guide.
claude in a pseudo-terminal (xterm.js in the page), so every
command, slash command and permission prompt works exactly as in your own terminal. Closing the browser tab does
not stop the agent.!! shell console.SessionStart hook, which agents exist and how to reach them (SendMessage).kanban_* tools) to read, create, update and move tickets, and (agents_* tools) to list
agents, create new ones (they start only when you open them) and group them into workspaces.pty and a controlling terminal per agent. Windows is not supported yet:
there, ziggy only says so and exits.claude on your
PATH). Ziggy One uses your existing Claude Code account and never sees your credentials.git (Git tab), Chrome/Chromium (PDF export), Node.js 22+
(front-end tests only).git clone https://github.com/molory/ziggy-one.git
cd ziggy-one
ln -s "$PWD/ziggy" ~/.local/bin/ziggy # once: the `ziggy` command, from any folder
~/.local/bin must be on your PATH (it usually is on Linux; on macOS, create it and add it to your shell profile if needed):
mkdir -p ~/.local/bin && echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc # macOS, then open a new terminal
Then, in the folder you want your agents to work in:
ziggy # or: ziggy --permission-mode auto, any option below
ziggy does not start a second one: it just opens the interface (from any folder).ziggy says so: choose another one with --port.Whenever Ziggy One starts with no agent (first launch included), the sidebar gets ZiggyBoss: the agent that customizes Ziggy One and fixes its bugs (open it, it introduces itself); on the first launch, Tasks also has a "Board" with a welcome checklist. Then click New agent. Stop Ziggy One with Ctrl+C in its terminal; agents' terminals are closed cleanly.
The access token never shows up: not in the terminal, not in the browser's address bar or history, not on a
command line, not in a cookie. ziggy opens the browser on a single-use login link (/?login=…), signed with
the token, that expires after 5 minutes and is exchanged for a session of that browser only. Once used, the
link is worthless wherever it was copied: shell scrollback, ps, browser history, a log file.
ziggy --link prints a fresh single-use link
instead of opening the default browser; paste it into the other one. From a browser that is already logged in,
the account window (click your avatar) has Sign in another browser: it copies such a link, no terminal needed.python3 server.py (no --open), or when no browser can be opened, the server
prints the login link instead. Run ziggy --link for a fresh one.http://127.0.0.1:6767/, never a login link. If the browser is signed out (cookie lost, session
ended), the page says so and shows how to get back in: run ziggy again.--new-token: every browser is signed out, ticket links and agent
keys are invalidated./?token=… no longer signs in (it only goes back to /). A script
signs in with a single-use link, then uses the cookie jar:
curl -c jar "$(ziggy --link | grep -o 'http[^ ]*login=[^ ]*')". The token is in ~/.local/share/ziggy-one/token (0600).| Option | Meaning |
|---|---|
--port 6767 | Port to listen on (always 127.0.0.1). |
--cwd DIR | Default folder for new agents (default: current directory). |
--model MODEL | Default model of the agents (default: Claude Code's own). |
--permission-mode MODE | Default permission mode: default, acceptEdits, plan, auto or dontAsk. |
--allowed-tools "Bash(git status)" Edit … | Tools allowed without asking. |
--chrome | Enable Claude in Chrome for the agents. |
--open | Open the interface in the browser with a login link (ziggy always passes it). |
--link | Print a single-use login link instead of opening the browser, to paste into another browser. |
--new-token | Generate a new access token (invalidates open tabs, ticket links and agent keys). |
Every agent can override the model, permission mode and Chrome setting in its Configuration tab.
Everything stays on your machine, in ~/.local/share/ziggy-one/ (or $XDG_DATA_HOME/ziggy-one/), with 0700
directories and 0600 files: agents and their settings, workspaces, pins, shortcuts, Kanban boards and their
attachments, the activity journal and the access token. Ziggy One only reads Claude Code's own files
(~/.claude/sessions/, ~/.claude/projects/) to list sessions and render discussions.
Ziggy One is a single-user tool for your own machine.
127.0.0.1 only and checks the Host header (DNS rebinding protection).HttpOnly; SameSite=Strict cookie (the server keeps only its SHA-256), which can be signed out alone and ends
after 30 days unused. Every POST must carry a local Origin (CSRF protection).innerHTML with untrusted content.0600 files and never passed on a
command line.deny rules on Ziggy One's data folder (token, sessions, keys): its file
tools cannot read or change them. This does not stop a shell command you approve, which runs as you.~/.ssh, ~/.gnupg or ~/.aws, even inside an agent's folder.core.fsmonitor, external diff and
textconv programs: opening a repository does not run its code./copy) only within 5 seconds of something you did in that terminal;
terminal links open only http(s) addresses.See SECURITY.md to report a vulnerability.
browser (vanilla JS + xterm.js) ── HTTP + Server-Sent Events ── server.py (Python stdlib, 127.0.0.1)
│
pty (own session) ────────────┼──> claude (one per agent)
hooks (ziggy_hook.py) <───────┤ ├─ SessionStart / UserPromptSubmit / Stop …
MCP over HTTP (/mcp) <───────┘ └─ kanban_* / agents_* tools
server.py serves the page, the JSON API and an SSE stream; terminal.py runs claude in a pseudo-terminal
and streams its screen; ziggy_hook.py is the Claude Code hook that reports turns and injects context.transcripts.py reads them defensively, so a format
change can at worst make the Discussion view incomplete. The terminal itself never depends on it.The detailed guide describes every module and behaviour.
python3 -m unittest discover -s tests # server tests (use a fake `claude`, no quota spent)
node --test tests/*.test.mjs # front-end logic tests (Node 22+)
ruff check . # lint (optional locally, enforced by CI: pipx install ruff)
CI runs both suites on Linux (Python 3.10 to 3.14) and macOS, the linters, and CodeQL. Releases are published from
a vX.Y.Z tag with that version's notes from CHANGELOG.md.
Contributions are welcome: please read CONTRIBUTING.md first, especially the no-dependency rule.
MIT © 2026 Marc Olory. Third-party components keep their own licenses, see THIRD_PARTY_NOTICES.md.
Ziggy One is an independent project, not affiliated with or endorsed by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic.