# Codehive

> Real-time multi-developer collaboration for Claude Code. See teammates' changes, get conflict warnings, chat from the terminal. Works on any project.

- **Type:** MCP server
- **Install:** `agentstack add mcp-vk1356-codehive`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [vk1356](https://agentstack.voostack.com/s/vk1356)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [vk1356](https://github.com/vk1356)
- **Source:** https://github.com/vk1356/codehive

## Install

```sh
agentstack add mcp-vk1356-codehive
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

```
    ____          _      _   _ _
   / ___|___   __| | ___| | | (_)_   _____
  | |   / _ \ / _` |/ _ \ |_| | \ \ / / _ \
  | |__| (_) | (_| |  __/  _  | |\ V /  __/
   \____\___/ \__,_|\___|_| |_|_| \_/ \___|
```

### Real-time multi-developer collaboration for Claude Code

**See your teammates' changes. Lock files. Get conflict warnings. Share terminal output.**
**Git branch awareness. Activity timeline. Telegram notifications. Webhook integrations.**

[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
[](https://modelcontextprotocol.io)
[](https://www.typescriptlang.org)

---

## The Problem

You and your teammates both use Claude Code on the same project. But Claude Code doesn't know what the other person is doing. You edit the same file. You overwrite each other's work. You waste time on merge conflicts.

**CodeHive fixes this.**

---

## What It Does

```
┌─────────────────────────────────────────────────────────────────────────┐
│                                                                         │
│   You: "Who's in the room?"                                            │
│                                                                         │
│   Claude: Room HIVE-A3K7XY — 3 members:                                │
│                                                                         │
│     Alice (active) [main]                                               │
│       Working on: src/auth.ts, src/middleware.ts                        │
│       Cursor: src/auth.ts:42:10                                         │
│       Last seen: 14:32:01                                               │
│                                                                         │
│     Bob (active) [feature/api]                                          │
│       Working on: src/api/routes.ts                                     │
│       Last seen: 14:32:05                                               │
│                                                                         │
│     Charlie (idle)                                                      │
│       Working on: none declared                                         │
│       Last seen: 14:28:12                                               │
│                                                                         │
│   Locked files:                                                         │
│     🔒 src/config.ts (by Alice)                                         │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   You: "What did my teammates change?"                                  │
│                                                                         │
│   Claude: Recent changes:                                               │
│     [14:31:42] Alice changed src/auth.ts (+8 -2)                       │
│       + export function hashPassword(pwd: string): string {             │
│       +   return bcrypt.hashSync(pwd, 12);                              │
│       + }                                                               │
│     [14:32:01] Bob changed src/api/routes.ts (+15 -0)                  │
│       + router.post('/login', validateBody, loginHandler);              │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   [!] CONFLICT WARNING                                                  │
│   File "src/auth.ts" is being edited by Alice and You.                 │
│   Coordinate to avoid conflicts.                                        │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘
```

---

## How It Works

```
                        THE BIG PICTURE
  ═══════════════════════════════════════════════════════

  Dev A (Paris)                         Dev B (Tokyo)
  ┌──────────────────┐                  ┌──────────────────┐
  │                  │                  │                  │
  │   Claude Code    │                  │   Claude Code    │
  │   ┌──────────┐   │                  │   ┌──────────┐   │
  │   │ CodeHive │   │                  │   │ CodeHive │   │
  │   │   MCP    │   │                  │   │   MCP    │   │
  │   │  Server  │   │                  │   │  Server  │   │
  │   └────┬─────┘   │                  │   └────┬─────┘   │
  │        │         │                  │        │         │
  │   ┌────┴─────┐   │                  │   ┌────┴─────┐   │
  │   │  File    │   │                  │   │  File    │   │
  │   │ Watcher  │   │                  │   │ Watcher  │   │
  │   └──────────┘   │                  │   └──────────┘   │
  │                  │                  │                  │
  └───────┬──────────┘                  └───────┬──────────┘
          │                                     │
          │         WebSocket (real-time)        │
          │                                     │
          └──────────────┐     ┌────────────────┘
                         │     │
                         ▼     ▼
                  ┌─────────────────┐        ┌────────────────┐
                  │                 │        │   Telegram Bot  │
                  │  CodeHive Relay │◄──────►│   (optional)   │
                  │    (server)     │        │ Mobile notifs   │
                  │                 │        └────────────────┘
                  │  ┌───────────┐  │
                  │  │   Rooms   │  │        ┌────────────────┐
                  │  │ HIVE-A3K7 │  │───────►│   Webhooks     │
                  │  │ HIVE-9FMN │  │        │ Slack/Discord  │
                  │  └───────────┘  │        └────────────────┘
                  │                 │
                  │  ┌───────────┐  │
                  │  │ Conflict  │  │
                  │  │ Detection │  │
                  │  └───────────┘  │
                  │                 │
                  └─────────────────┘
                   Cloud / Local / VPS
```

---

## Quick Start

### 1 minute setup (same network)

```bash
# Both developers run this:
npm install -g codehive && codehive init

# In Claude Code:
#   Dev A → "Create a CodeHive room"         → gets HIVE-A3K7XY
#   Dev B → "Join CodeHive room HIVE-A3K7XY" → connected!
```

### Remote teams (across the internet)

```bash
# ── ONE-TIME: Deploy a relay server (pick one) ──────────────

# Option A: Fly.io (free)
cd codehive && fly launch --name my-relay && fly deploy

# Option B: Docker
docker run -d -p 4819:4819 ghcr.io/CodeHiveAPP/codehive-relay

# Option C: Any VPS
npm install -g codehive && codehive relay --public

# ── EVERY DEVELOPER ─────────────────────────────────────────

npm install -g codehive
codehive init --relay ws://my-relay.fly.dev:4819

# ── IN CLAUDE CODE ──────────────────────────────────────────

#   Dev A → "Create a CodeHive room"         → HIVE-A3K7XY
#   Dev B → "Join CodeHive room HIVE-A3K7XY" → connected!
```

### Works on ANY existing project

```bash
cd my-react-app          # or Python, Rust, Go, Java, anything
codehive init            # adds .mcp.json (60 bytes), touches nothing else
```

---

## Features

### 14 MCP Tools + 2 Live Resources

These are the tools your AI editor (Claude Code, Cursor, Windsurf, VS Code + Copilot) can call:

| Tool | Parameters | What it does |
|------|-----------|-------------|
| `create_room` | `password?`, `is_public?`, `expires_in_hours?` | Create a room with optional password, public visibility, and auto-expiry |
| `join_room` | `code`, `password?` | Join a room with a code like `HIVE-A3K7XY` |
| `leave_room` | — | Leave the current room and stop file watching |
| `get_team_status` | — | See members, git branches, cursor positions, typing status, working files, locks |
| `get_recent_changes` | — | View teammates' file changes with line-by-line diffs |
| `send_message` | `message` | Send a chat message to all teammates in the room |
| `declare_working` | `files` (comma-separated) | Declare files you're editing — triggers conflict alerts if someone else touches them |
| `get_notifications` | — | Check unread: file changes, chat messages, conflict warnings, lock events, branch warnings |
| `lock_file` | `file` | Lock a file so only you can edit it — teammates are blocked from modifying it |
| `unlock_file` | `file` | Unlock a previously locked file, allowing teammates to edit again |
| `get_timeline` | `limit?` (default: 30) | View chronological activity: joins, leaves, file changes, chats, locks, conflicts |
| `share_terminal` | `command`, `output`, `exit_code?` | Share terminal output (test results, build logs) with teammates |
| `browse_rooms` | — | Discover public rooms available on the relay server |
| `set_webhook` | `url`, `events?` | Configure webhook URL for room events (Slack, Discord, or custom) |

**MCP Resources** (live subscribable data):
- `codehive://room/status` — real-time room state (members, changes, locks)
- `codehive://notifications` — unread notification feed

### Room features

**Passwords** — Protect rooms with a password. Only people with the password can join.

```
You: "Create a password-protected room with password secret123"
Claude: Room HIVE-A3K7XY created! Password protected: yes
        Invite link: codehive://127.0.0.1:4819/join/HIVE-A3K7XY?p=secret123
```

**Public rooms** — Make rooms discoverable by other developers on the same relay.

```
You: "Create a public room"
Claude: Room HIVE-B5N9QR created! Visibility: PUBLIC (discoverable)

# Others can find it:
You: "Browse public CodeHive rooms"
Claude: 2 public room(s) found:
  HIVE-B5N9QR — 3 members
    Created by: Alice
    Members: Alice, Bob, Charlie
```

**Room expiry** — Rooms auto-delete after configurable hours of inactivity.

```
You: "Create a room that expires after 24 hours"
Claude: Room HIVE-C7P2KM created! Expires: after 24h of inactivity
```

**Invite links** — Generated automatically when creating a room.

```
codehive://127.0.0.1:4819/join/HIVE-A3K7XY
codehive://my-relay.fly.dev:4819/join/HIVE-A3K7XY?p=secret123
```

### Conflict detection

```
  Dev A declares: "I'm working on auth.ts"
  Dev B declares: "I'm working on auth.ts"
                          │
                          ▼
            ┌─────────────────────────┐
            │  ⚠ CONFLICT WARNING    │
            │                         │
            │  File: auth.ts          │
            │  Edited by: Dev A, Dev B│
            │                         │
            │  Coordinate to avoid    │
            │  merge conflicts!       │
            └─────────────────────────┘
            (sent to BOTH developers)
```

### File locking

```
You: "Lock src/config.ts so nobody else changes it"

Claude: Locked src/config.ts. Only you can edit it now. Use unlock_file when done.

# If a teammate tries to edit it:
#   ⚠ File "src/config.ts" is locked by Alice

# When you're done:
You: "Unlock src/config.ts"
Claude: Unlocked src/config.ts. Teammates can now edit it.
```

### Git branch awareness

Auto-detects your git branch and warns when teammates are on different branches:

```
Room HIVE-A3K7XY — 2 members:

  Alice (active) [main]
    Working on: src/auth.ts

  Bob (active) [feature/api]
    Working on: src/routes.ts

⚠ BRANCH WARNING: Team members are on different branches:
  Alice: main, Bob: feature/api. Coordinate before merging.
```

Branch is refreshed every 30 seconds automatically.

### Activity timeline

```
You: "Show me the room timeline"

Activity timeline:
  + [14:20:01] Zeus joined the room
  + [14:21:15] Alice joined the room
  ~ [14:22:03] Zeus changed src/auth.ts
  # [14:23:11] Alice locked src/config.ts
  > [14:24:02] Zeus: "Done with auth module"
  . [14:25:30] Alice unlocked src/config.ts
  ! [14:26:00] CONFLICT: src/api.ts edited by Zeus and Alice
```

### Terminal output sharing

```
You: "Share the test results with the team"

Claude: Shared terminal output: `npm test` (1200 chars)

# Teammates see:
#   [Terminal] Alice shared: `npm test` (exit 0)
```

### Typing indicators & cursor sharing

See what your teammates are typing in real-time:

```
  Alice is typing in src/auth.ts
  Bob's cursor: src/routes.ts:42:10
```

### Webhook notifications

Send room events to Slack, Discord, or any HTTP endpoint:

```
You: "Set a webhook to https://hooks.slack.com/services/xxx"

Claude: Webhook configured: https://hooks.slack.com/services/xxx
        Events: all

# Every room event is POSTed as JSON:
{
  "event": "file_change",
  "room": "HIVE-A3K7XY",
  "timestamp": 1706123456789,
  "file": "src/auth.ts",
  "author": "Alice",
  "type": "change"
}
```

Supported webhook events: `all`, `join`, `leave`, `chat`, `file_change`, `conflict`

### Real-time file watching

CodeHive watches your project files and automatically notifies teammates when you save:

- Detects file additions, modifications, and deletions
- Computes lightweight diffs (only changed lines, not full files)
- Reports binary file sizes (images, fonts, etc.)
- Ignores `node_modules`, `.git`, `dist`, binary files, lock files
- Per-file debounce to avoid flooding on rapid saves

### Team chat

```
You: "Tell the team I'm done with the auth module"

Claude: Message sent to HIVE-A3K7XY: "I'm done with the auth module"

# All teammates see:
#   [Chat] Alice: I'm done with the auth module
```

---

## Telegram Bot (optional)

Monitor your rooms and send commands from your phone via Telegram. **100% optional** — if you don't configure it, everything works the same.

### Setup

```bash
# Step 1: Create a bot on Telegram
# → Open Telegram, search for @BotFather
# → Send /newbot, follow the prompts
# → Copy the token (e.g. 123456:ABC-DEF1234...)

# Step 2: Configure the token (pick one method)

# Method A: Environment variable
export CODEHIVE_TELEGRAM_TOKEN="123456:ABC-DEF1234..."
codehive telegram

# Method B: codehive.json
echo '{ "telegramToken": "123456:ABC-DEF1234..." }' > codehive.json
codehive telegram

# Step 3: Send /start to your bot in Telegram
# → The bot will auto-detect your chat
```

### Telegram commands

| Command | What it does |
|---------|-------------|
| `/start` | Welcome message + list of commands |
| `/join HIVE-XXXXXX` | Join a room (no password) |
| `/join HIVE-XXXXXX mypassword` | Join a password-protected room |
| `/leave` | Leave the current room |
| `/status` | Show room members, branches, locks, working files |
| `/chat Hello team!` | Send a message to all room members |
| `/files` | Show recent file changes with diffs |
| `/timeline` | Show activity timeline (joins, leaves, changes, locks) |
| `/locks` | Show currently locked files |
| `/help` | List all available commands |

### Events forwarded to Telegram

When you're in a room, the bot sends you real-time notifications:

| Event | Telegram message example |
|-------|------------------------|
| Member joins | **Alice** joined the room [main] |
| Member leaves | **Bob** left the room |
| File changed | **Alice** changed `src/auth.ts` (`+8 -2`) |
| Chat message | **Bob**: "Done with the API" |
| Conflict | **CONFLICT WARNING** — `src/auth.ts` edited by Alice and Bob |
| File locked | **Alice** locked `src/config.ts` |
| File unlocked | **Alice** unlocked `src/config.ts` |
| Terminal shared | **Alice** shared terminal (exit 0): `npm test` |
| Branch warning | **BRANCH WARNING** — Alice: main, Bob: feature/api |

### Running in background

```bash
codehive telegram --background     # Run as a detached process
```

---

## CLI Reference

### `codehive init` — Setup CodeHive

```bash
codehive init                              # Auto-detect editor, start local relay
codehive init --relay ws://host:4819       # Use a remote relay server
codehive init --name "Alice"

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [vk1356](https://github.com/vk1356)
- **Source:** [vk1356/codehive](https://github.com/vk1356/codehive)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-vk1356-codehive
- Seller: https://agentstack.voostack.com/s/vk1356
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
