Terminal-native collaboration for vibe coding teams. Zero AI costs.
SyncVibe connects teammates and their AI agents (Claude Code, Codex, Gemini CLI, or any MCP-compatible agent) in a shared terminal chat room β real-time coordination without a single LLM API call.
Watch the demo β two developers collaborating with their AI agents (Claude + Codex) in real time.
curl -fsSL https://syncvibe.online/install.sh | shOr via Homebrew (macOS):
brew tap Curious1008/syncvibe
brew install syncvibeSupports macOS (Apple Silicon + Intel) and Linux (x86_64, aarch64).
1. Create a room
syncvibeInteractive onboarding β pick your name, choose an AI agent (Claude, Codex, or Gemini), and create a room.
2. Invite your team
Type /invite in the TUI β a short code like HKPT-3NWV is copied to your clipboard. Send it to teammates.
3. Teammate joins
syncvibe connect HKPT-3NWVChat syncs in real time. If the room has a linked repo, the code auto-clones on connect. The AI agent auto-configures via MCP β no manual setup needed.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Split Terminal β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ β
β β SyncVibe Chat (30%)β β AI Agent β Claude/Codex/Geminiβ β
β β β β β β
β β Alice: red theme? β β Reading team chat via MCP... β β
β β Harry: @codex make βββββΊβ β‘ Task: make a calculator β β
β β a calculator β β Creating index.html... β β
β β Codex: Done β ββββββ Done β reporting to chat β β
β βββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ β
β Ctrl+G to switch β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Data flow:
- Human β Human: TUI β WebSocket relay β other TUI
- Human β Agent:
@codexmessage β agent reads via MCPread_chat - Agent β Human: agent calls MCP
send_chatβ appears in chat β broadcasts to all teammates
All state lives locally in .syncvibe/. The relay only handles real-time sync β no messages are stored server-side.
- Live presence indicators β see who's online
- @mention with tab completion and bell notifications
- Image sharing (drag file paths into chat)
- Message grouping, chat history with scroll-back
- Mouse scroll, PageUp/PageDown, and "β N new messages" unread indicator
- Pick Claude Code, Codex, or Gemini from a menu β SyncVibe auto-configures
.mcp.json(Claude),.codex/config.toml(Codex), and.gemini/settings.json(Gemini) - MCP tools β
read_chatwith smart incremental filtering, session scoping, and digest offloading;send_chatfor agent-to-human messages - @agent β mention your AI in chat to assign tasks; agent auto-reads chat for full context
- Cross-machine agent tasks β
@claudefrom a remote teammate triggers your local agent automatically (30s debounce) - Agent messages broadcast β AI agent responses sync to all teammates in real time via WebSocket
- Each teammate picks their own agent; all agents share the same chat context
/shareβ toggle sharing your agent pane with teammates/watch <name>β view a teammate's agent screen in real time- Delta-encoded frames for efficient bandwidth
- Create a room β SyncVibe auto-detects your git remote, or prompts you to paste/create one (optional, can skip)
- Teammate joins β repo auto-clones on
syncvibe connect. One step: join room + get code - Agents auto-push β CLAUDE.md/AGENTS.md instruct agents to commit & push after completing tasks
/remoteβ set or show git remote URL at any time/collabβ open GitHub collaborator settings to add teammates- No tokens or PATs needed β authentication uses your existing git credentials
- Short codes (
HKPT-3NWV) auto-copied to clipboard - Paste to join β one step, no URLs or config files
- Clipboard auto-detection on launch
- Auto-creates side-by-side layout: Chat (30%) | AI Agent (70%)
Ctrl+Gto switch between panes- Version display and styled status bar
/chatsto switch between room sessions
- Pure coordination layer β no LLM API calls, no token costs
- All AI costs stay with whatever agent each person already uses
| Command | Description |
|---|---|
syncvibe |
Launch β create/join rooms, open TUI |
syncvibe invite |
Show invite code for current room |
syncvibe connect <code> |
Join a room with an invite code |
syncvibe profile |
Edit display name and color |
syncvibe chat "<msg>" |
Send a message without opening the TUI |
syncvibe auth |
Link CLI to your web account at syncvibe.online |
syncvibe status |
Show current room info |
syncvibe switch |
Switch between rooms |
syncvibe leave |
Leave current room |
syncvibe completions |
Generate shell completions (bash/zsh/fish) |
| Command | Alias | Description |
|---|---|---|
/help |
/? |
Show all commands |
/invite |
/i |
Copy invite code |
/new |
/n |
Create a new room |
/join |
/j |
Join with invite code |
/chats |
Switch between rooms | |
/share |
Toggle agent screen sharing | |
/watch <name> |
Watch a teammate's screen | |
/name <n> |
Change display name | |
/color <#hex> |
Change color | |
/remote |
Set or show git remote | |
/collab |
Manage repo collaborators | |
/mute |
/m |
Toggle @mention bell |
/clear |
Clear chat view | |
/rc |
Reconnect to relay | |
/leave |
Leave room | |
/quit |
/q |
Exit |
| Key | Action |
|---|---|
Ctrl+G |
Switch Chat β Agent pane |
Tab |
Autocomplete @mentions and commands |
β / β |
Select messages (quote, open images) |
Enter |
Send message / quote selected / open image |
PageUp / PageDown |
Scroll chat history |
Mouse scroll |
Scroll chat panel |
Esc |
Deselect message, return to bottom |
Model Context Protocol (MCP) lets AI agents interact with external tools. SyncVibe uses MCP to give agents access to the team chat.
Room setup auto-generates:
| File | Purpose |
|---|---|
.mcp.json |
MCP server config for Claude Code |
.codex/config.toml |
MCP server config for Codex CLI |
.gemini/settings.json |
MCP server config for Gemini CLI |
CLAUDE.md |
Instructs Claude to use chat tools |
AGENTS.md |
Instructs Codex/Gemini/other agents to use chat tools |
| MCP Tool | Description |
|---|---|
read_chat |
Incremental read with session scoping, time filtering, @agent task extraction, and digest offloading |
send_chat |
Send a message to the shared chat as the AI agent |
All room state lives in .syncvibe/ inside your project:
.syncvibe/
βββ room.json # Room identity (room_id, secret, relay_url, git_remote)
βββ chat-log.jsonl # Append-only chat, one JSON per line
βββ chat-digest.md # Auto-generated digest for large conversations
βββ images/ # Shared images (UUID-named)
.syncvibe/ is gitignored. The WebSocket relay provides real-time sync only β no messages stored server-side.
git clone https://github.com/Curious1008/syncvibe.git
cd syncvibe
cargo build --release
./target/release/syncvibe- Rust 1.75+
- tmux 3.0+ (auto-installed on first run if missing)
cargo test # Unit + integration tests (88 tests)
cargo test -- --ignored # Include relay deployment testssyncvibe completions bash > ~/.local/share/bash-completion/completions/syncvibe
syncvibe completions zsh > ~/.zfunc/_syncvibe
syncvibe completions fish > ~/.config/fish/completions/syncvibe.fishsyncvibe/
βββ crates/
β βββ syncvibe-cli/ # TUI binary
β β βββ src/
β β βββ cli.rs # Command definitions (Clap)
β β βββ onboarding.rs # Interactive setup wizard
β β βββ auth.rs # Web account linking
β β βββ config.rs # Configuration management
β β βββ invite.rs # Invite code logic
β β βββ agents.rs # AI agent configuration
β β βββ sync.rs # Chat sync engine
β β βββ app.rs # Event loop + slash commands
β β βββ tui.rs # Terminal UI bootstrap
β β βββ picker.rs # Room picker
β β βββ init.rs # Room init (MCP, CLAUDE.md, .codex/, .gemini/)
β β βββ tmux.rs # tmux session management
β β βββ git/ # Git integration
β β βββ mcp/ # MCP server: read_chat, send_chat
β β βββ network/ # WebSocket client
β β βββ components/ # TUI rendering (ratatui)
β β
β βββ syncvibe-core/ # Shared library
β βββ src/
β βββ protocol.rs # WebSocket message types
β βββ storage.rs # Atomic file I/O
β βββ models/ # Chat, room, user types
β
βββ install.sh # One-line installer
- Install script verifies binary integrity via SHA256 checksums
- GitHub Actions workflows are pinned to commit SHAs
cargo auditruns in CI to catch known vulnerabilities- TLS enforced β all relay connections use WSS; plaintext rejected
- No message storage β the relay forwards chat, screen shares, and MCP traffic in real time; nothing is logged or persisted
- Room secrets authenticate your connection over TLS β stored server-side only for reconnection support
- Invite codes expire automatically after 7 days
- Local files use
0600permissions (owner-only read/write)
For full details, see Data & Privacy.
What's coming next (no ETAs β shipped when ready):
- End-to-end encryption β message content encrypted client-side so the relay can't read it
- Windows support β native binary + PowerShell/Windows Terminal integration
- Voice chat β spatial audio channels inside the terminal session
- Managed relay for teams β dedicated relay instances with custom domains and SLA
- File sharing β send code snippets, patches, and files through chat
- Persistent rooms β rejoin rooms across machines with cloud-synced state
- Git conflict resolution β real-time merge conflict detection and assisted resolution
- Plugin system β custom slash commands and integrations via user scripts
Have an idea? Open an issue or join the Discord.
Contributions welcome!
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing) - Commit your changes
- Open a Pull Request
MIT License. See LICENSE for details.