> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reasonos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Real-time collaboration

> Edit code together, video call, screen share, and chat — all built into the RBS platform

# Real-time collaboration

RBS includes a complete set of collaboration features built into every branch server. Edit files together in real-time, join video calls, share your screen, and chat with your team — all without leaving your code editor or installing third-party tools.

<CardGroup cols={2}>
  <Card title="Collaborative editing" icon="pen-to-square">
    Google Docs–style real-time code editing. Multiple developers edit the same file simultaneously with multi-cursor support.
  </Card>

  <Card title="Video meetings" icon="video">
    Peer-to-peer video calls with camera and screen sharing. Data stays on your network — no third-party servers.
  </Card>

  <Card title="Team chat" icon="comments">
    Real-time chat rooms with code snippet sharing, file references, typing indicators, and full message history.
  </Card>

  <Card title="Presence tracking" icon="users">
    See who's online, what file they're viewing, who's in a meeting, and who's in a chat session — across all features.
  </Card>
</CardGroup>

***

## Collaborative editing

Multiple developers can edit the same file simultaneously. Changes appear in real-time, with each user getting a distinct cursor color. Conflicts are resolved automatically using Operational Transformation (OT) — the same technique used by Google Docs.

### How it works

1. **Open a file** in your editor while connected to a branch server.
2. **A teammate opens the same file** on the same branch.
3. **Both of you edit freely** — changes sync instantly. No manual merging.
4. **Cursors and selections** from other users are visible in your editor with distinct colors.

### Features

| Feature                | Description                                                                                   |
| ---------------------- | --------------------------------------------------------------------------------------------- |
| **Multi-cursor**       | See every collaborator's cursor position and color in real-time.                              |
| **Selections**         | See highlighted selections from other users.                                                  |
| **Editing regions**    | Visual indicators show which lines each user is actively editing.                             |
| **Conflict awareness** | The system warns when two users edit overlapping regions.                                     |
| **Auto-save**          | Changes are saved to the server automatically.                                                |
| **Split-view support** | Multiple panes editing the same file are supported — each pane is an independent participant. |

### Conflict handling

RBS uses a server-authoritative model:

* The server maintains the canonical version of each file.
* All edits are transformed server-side to maintain consistency.
* Cursor and selection positions are updated automatically when remote edits shift content.
* In the rare case of overlapping edits, you'll see a visual conflict warning — but the document remains consistent.

<Tip>Collaborative editing works automatically when multiple developers are connected to the same branch server. No configuration required.</Tip>

***

## Video meetings

Start a peer-to-peer video call directly from your editor. No Zoom, no Google Meet, no external tools. Video and audio are transmitted directly between participants — the RBS server only handles the initial connection setup (signaling).

### Starting a meeting

From the editor:

1. Open the **Tools** menu in the top navigation bar.
2. Click **Meeting** to open the meeting panel.
3. Create a new meeting and give it a name (e.g., "Sprint Planning" or "Debug Session").
4. Teammates on the same branch can join from their editor.

### Features

| Feature            | Description                                                                     |
| ------------------ | ------------------------------------------------------------------------------- |
| **Camera video**   | Share your webcam feed with participants.                                       |
| **Screen sharing** | Share your entire screen or a specific window.                                  |
| **Dual stream**    | Share camera and screen simultaneously.                                         |
| **Peer-to-peer**   | Video goes directly between participants — low latency, no third-party servers. |
| **Encrypted**      | All media streams are encrypted by default (DTLS-SRTP).                         |
| **In-editor**      | Meetings run inside your code editor — no browser tabs or separate apps.        |

### Controls

| Action                | Description                           |
| --------------------- | ------------------------------------- |
| **Toggle camera**     | Turn your camera on/off.              |
| **Toggle microphone** | Mute/unmute yourself.                 |
| **Share screen**      | Start or stop screen sharing.         |
| **Leave meeting**     | Leave the meeting (others continue).  |
| **End meeting**       | End the meeting for all participants. |

***

## Team chat

Real-time chat rooms built into the editor. Discuss code, share snippets, reference files, and keep a searchable history — all without context-switching to Slack or Teams.

### Chat rooms

Chat rooms are tied to the branch server. Every developer connected to a branch can join the default chat room or create topic-specific rooms.

Create a chat room from the **Tools → Chat** panel, or via the REST API:

```bash theme={null}
# Create a chat room via the RBS Server API
curl -X POST http://localhost:8080/api/chat \
  -H "Content-Type: application/json" \
  -d '{"name": "API Design", "user_name": "Alice"}'
```

### Features

| Feature                 | Description                                                        |
| ----------------------- | ------------------------------------------------------------------ |
| **Real-time messaging** | Messages appear instantly for all participants.                    |
| **Code snippets**       | Share syntax-highlighted code blocks with language detection.      |
| **File references**     | Link to specific files in the workspace (clickable in the editor). |
| **Typing indicators**   | See when teammates are typing.                                     |
| **Message history**     | Full message history persisted on the server with pagination.      |

### Sharing code in chat

In the chat panel, you can:

* **Send code snippets** — use the code button to share syntax-highlighted code blocks with language selection.
* **Share files** — share a file reference that teammates can click to open in their editor.

***

## Presence tracking

Presence tracking gives your team unified awareness across all collaboration features. See who's online, what they're working on, and how to reach them.

### What you can see

| Information          | Description                                               |
| -------------------- | --------------------------------------------------------- |
| **Online status**    | Who is currently connected to the branch server.          |
| **Active file**      | Which file each teammate is currently viewing.            |
| **Editing sessions** | Which files are being collaboratively edited and by whom. |
| **Meeting status**   | Who is in a video meeting and which meeting.              |
| **Chat activity**    | Who is in which chat room.                                |
| **Screen sharing**   | Who is currently sharing their screen.                    |

### Presence in the editor

Presence information is displayed throughout your editor:

* **File explorer**: Colored dots next to files show which teammates are viewing or editing them.
* **Editor tabs**: Small avatars indicate when a file is being collaboratively edited.
* **Status bar**: Shows the number of connected teammates and current activity.
* **Gutter**: In collaborative editing sessions, colored markers show which lines each user is editing.

### Status updates

Your status is automatically managed:

| Status         | When                                               |
| -------------- | -------------------------------------------------- |
| **Online**     | Actively using the editor.                         |
| **Idle**       | Editor is open but no activity for 5 minutes.      |
| **Away**       | Editor is minimized or not focused for 15 minutes. |
| **In meeting** | Currently in a video meeting.                      |

***

## Privacy and security

All collaboration features are designed with security in mind:

* **Video/audio**: Peer-to-peer encrypted (DTLS-SRTP). Media never passes through RBS servers — only signaling data does.
* **Chat messages**: Stored on your branch server, not on external infrastructure.
* **Collaborative edits**: Processed on your branch server. No data leaves your workspace.
* **Presence data**: Only shared with teammates who have access to the same branch.

***

## Building custom integrations

<Info>
  A public API and SDK for building custom integrations with the collaboration system are coming soon. If you're interested in early access, reach out to [support@reasonos.dev](mailto:support@reasonos.dev).
</Info>

The RBS Server exposes WebSocket and REST endpoints for all collaboration features. These are used internally by the built-in code editor:

### Endpoints

| Feature               | Protocol  | Endpoint                      |
| --------------------- | --------- | ----------------------------- |
| Presence              | WebSocket | `/ws/presence`                |
| Collaborative editing | WebSocket | `/ws/collab/{session_id}`     |
| Meeting signaling     | WebSocket | `/ws/meeting/{meeting_id}`    |
| Chat                  | WebSocket | `/ws/chat/{room_id}`          |
| List connections      | REST      | `GET /api/collab/connections` |
| Create collab session | REST      | `POST /api/collab/sessions`   |
| List collab sessions  | REST      | `GET /api/collab/sessions`    |
| Create meeting        | REST      | `POST /api/meetings`          |
| List meetings         | REST      | `GET /api/meetings`           |
| Create chat room      | REST      | `POST /api/chat`              |
| List chat rooms       | REST      | `GET /api/chat`               |

***

## Getting started

Collaboration features work automatically when multiple developers are connected to the same branch server. No configuration needed.

1. **Open the code editor** in your browser — connect to your branch server.
2. **Have a teammate connect** to the same branch.
3. **Open the same file** to start collaborative editing.
4. **Open a meeting** from the Tools menu for video calls.
5. **Open the chat panel** from the Tools menu to message your team.

<Card title="Learn about the code editor" icon="window" href="/code-editor" horizontal>
  See all the features of the built-in code editor, including how to access collaboration tools.
</Card>
