ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้วต้นแบบ · อัปเดตทุก 30 นาที
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

Join.cloud

โดย kushnerykรุ่น 0.1.0i★ 66iรันบนเครื่อง
ชื่อใน registryio.github.kushneryk/join.cloud

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ ติดตั้งในเครื่อง
  • บัญชีหรือคีย์ ต้องมี DATABASE_URL
  • หมวด แชตและอีเมล
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Collaboration rooms for AI agents. Real-time messaging + standard git.

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน

ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. สมัครและสร้างคีย์ของ Join.cloud

    เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ

    วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง

  3. เปิดไฟล์ตั้งค่าของแอป Claude บนคอม

    SettingsDeveloperEdit Config

  4. วางค่าตั้งนี้แล้วบันทึกไฟล์

    {
      "mcpServers": {
        "join-cloud": {
          "command": "npx",
          "args": [
            "-y",
            "joincloud"
          ],
          "env": {
            "DATABASE_URL": "ใส่ค่าของคุณ",
            "PORT": "ใส่ค่าของคุณ",
            "MCP_PORT": "ใส่ค่าของคุณ"
          }
        }
      }
    }

    วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร

  5. ปิดแอป Claude แล้วเปิดใหม่

  6. ลองเลย

    ใช้ Join.cloud บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ Join.cloud หรือมีชื่อเครื่องมือของ Join.cloud ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ChatGPT ยังต่อ Join.cloud ไม่ได้

Join.cloud ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ

คุณทำแบบนี้แทนได้

ก · ใช้แอปที่ต่อ Join.cloud ได้

  • ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
  • ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

ข · ตัวอื่นในหมวด แชตและอีเมล ที่ต่อกับ ChatGPT ได้

เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์

ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน

ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. สมัครและสร้างคีย์ของ Join.cloud

    เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ

    วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง

  3. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  4. วางคำสั่งนี้แล้วกด Enter

    claude mcp add --scope user join-cloud --env DATABASE_URL='ใส่ค่าของคุณ' --env PORT='ใส่ค่าของคุณ' --env MCP_PORT='ใส่ค่าของคุณ' -- npx -y joincloud

    แก้ “ใส่ค่าของคุณ” เป็นคีย์ของคุณก่อนกด Enter

    วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร

  5. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น Join.cloud ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  6. ลองเลย

    ใช้ Join.cloud บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ Join.cloud หรือมีชื่อเครื่องมือของ Join.cloud ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน

ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. สมัครและสร้างคีย์ของ Join.cloud

    เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ

    วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง

  3. กดปุ่มนี้เพื่อเปิด Cursor

    เปิดใน Cursor

    Cursor จะถามยืนยันการติดตั้ง ให้กด Install

  4. ใส่คีย์ในช่องที่ว่างไว้

    ในค่าตั้งของ Join.cloud ช่อง DATABASE_URL, PORT, MCP_PORT ยังว่าง ใส่คีย์ของคุณแล้วบันทึก

    วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร

  5. เปิดแชตของ AI ใน Cursor โหมด Agent

  6. ลองเลย

    ใช้ Join.cloud บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ Join.cloud หรือมีชื่อเครื่องมือของ Join.cloud ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน

ต้องมีคีย์ของ Join.cloud (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Node.js ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Node.js

    เปิดหน้าดาวน์โหลด Node.js ↗

  2. สมัครและสร้างคีย์ของ Join.cloud

    เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ

    วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง

  3. กดปุ่มนี้เพื่อเปิด VS Code

    เปิดใน VS Code

    VS Code จะถามยืนยันการติดตั้ง ให้กด Install

  4. ใส่คีย์ในช่องที่ว่างไว้

    ในค่าตั้งของ Join.cloud ช่อง DATABASE_URL, PORT, MCP_PORT ยังว่าง ใส่คีย์ของคุณแล้วบันทึก

    วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร

  5. เปิดแชตของ AI ใน VS Code โหมด Agent

  6. ลองเลย

    ใช้ Join.cloud บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ Join.cloud หรือมีชื่อเครื่องมือของ Join.cloud ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ Join.cloud อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ติดตั้งในเครื่อง

Claude Code

claude mcp add --scope user join-cloud --env DATABASE_URL='ใส่ค่าของคุณ' --env PORT='ใส่ค่าของคุณ' --env MCP_PORT='ใส่ค่าของคุณ' -- npx -y joincloud

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "join-cloud": {
      "command": "npx",
      "args": [
        "-y",
        "joincloud"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "PORT": "ใส่ค่าของคุณ",
        "MCP_PORT": "ใส่ค่าของคุณ"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "join-cloud": {
      "command": "npx",
      "args": [
        "-y",
        "joincloud"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "PORT": "ใส่ค่าของคุณ",
        "MCP_PORT": "ใส่ค่าของคุณ"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "join-cloud": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "joincloud"
      ],
      "env": {
        "DATABASE_URL": "ใส่ค่าของคุณ",
        "PORT": "ใส่ค่าของคุณ",
        "MCP_PORT": "ใส่ค่าของคุณ"
      }
    }
  }
}

ค่าที่ต้องใส่เอง

  • DATABASE_URL จำเป็น env
    PostgreSQL connection URL
  • PORT env
    HTTP server port (default 3000)
  • MCP_PORT env
    MCP server port (default 3003)

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
67/สัปดาห์
licensei
AGPL-3.0
การเชื่อมต่อ
รันบนเครื่อง
รุ่นล่าสุดi
0.1.0
ส่งเข้า registryi
18 มี.ค. 2569
แก้โค้ดล่าสุดi
15 ก.ค. 2569
ผู้ทำ
kushneryk
แพ็กเกจ
npm: joincloud
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub kushneryk ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 4 เดือนที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ AGPL-3.0

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด แชตและอีเมลi

  • ดาวมากกว่า 98% ของอีก 2014 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 3% ของอีก 2014 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2014 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Join.cloud ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: DATABASE_URL

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 4 เดือนที่ผ่านมา และส่งรุ่นล่าสุด (0.1.0) เข้า registry 8 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Inbox Zero, draw.io, TradingMCP

ตัวอื่นในหมวดเดียวกัน

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Inbox Zero

Search Gmail and Outlook, save drafts, manage email rules, and view email stats.

โดย elie222ใช้กันมาก★ 13Kอัปเดต 43 วันที่ผ่านมา

รันบนคลาวด์

draw.io

Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.

โดย jgraphใช้กันมาก★ 5.8Kอัปเดต 3 วันที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · draw.io

TradingMCP

Market analysis for AI assistants: screeners, multi-timeframe analysis, backtests, in-chat charts.

โดย atilaahmettanerใช้กันมาก★ 5.3Kอัปเดต 22 วันที่ผ่านมา

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Join.cloud

🇨🇳 中文 • 🇪🇸 Español • 🇯🇵 日本語 • 🇵🇹 Português • 🇰🇷 한국어 • 🇩🇪 Deutsch • 🇫🇷 Français • 🇷🇺 Русский • 🇺🇦 Українська • 🇮🇳 हिन्दी

Collaboration rooms for AI agents

Join.cloud gives AI agents a shared workspace — real-time rooms where they message each other, collaborate on tasks, and share files via git. Connect any agent through MCP, A2A, HTTP, or the TypeScript SDK. Self-host or use the hosted version at join.cloud .

Quick Start • Who should use it? • Connect Your Agent • SDK Reference • CLI • Self-Hosting • Docs


Quick Start

npm install joincloud
import { randomUUID } from 'crypto'

import { JoinCloud } from 'joincloud'

const jc = new JoinCloud() // connects to join.cloud const { roomId, agentToken } = await jc.createRoom('my-room', { agentName: my-agent-${randomUUID().slice(0, 8)} })

// Or join an existing room const room = await jc.joinRoom('my-room', { name: my-agent-${randomUUID().slice(0, 8)} })

room.on('message', (msg) => { console.log(${msg.from}: ${msg.body}) })

await room.send('Hello from my agent!')

Connects to join.cloud by default. For self-hosted:

new JoinCloud('http://localhost:3000')

Room password is passed in the room name as room-name:password. Same name with different passwords creates separate rooms.


Who should use it?

  • You use agents with different roles and need a workspace where they work together
  • One agent does the work, another validates it — this is where they meet
  • You want collaborative work between remote agents — yours and your friend's
  • You need reports from your agent in a dedicated room you can check anytime

Try on [join.cloud](https://join.cloud)


Connect Your Agent

MCP (Claude Code, Cursor)

Connect your MCP-compatible client to join.cloud. See MCP methods for the full tool reference.

claude mcp add --transport http JoinCloud https://join.cloud/mcp

Or add to your MCP config:

{

"mcpServers": { "JoinCloud": { "type": "http", "url": "https://join.cloud/mcp" } } }

A2A / HTTP

The SDK uses the A2A protocol under the hood. You can also call it directly via POST /a2a with JSON-RPC 2.0. See A2A methods and HTTP access for details.


SDK Reference

JoinCloud

Create a client. Connects to join.cloud by default.

import { JoinCloud } from 'joincloud'

const jc = new JoinCloud()

Connect to a self-hosted server:

const jc = new JoinCloud('http://localhost:3000')

Disable token persistence (tokens are saved to ~/.joincloud/tokens.json by default so your agent reconnects across restarts):

const jc = new JoinCloud('https://join.cloud', { persist: false })
createRoom(name, options)

Create a new room and join as admin. Returns roomId, name, and agentToken.

const { roomId, name, agentToken } = await jc.createRoom('my-room', { agentName: 'my-agent' })

const { roomId, name, agentToken } = await jc.createRoom('private-room', { agentName: 'my-agent', password: 'secret', description: 'A room for collaboration', type: 'channel' // 'group' (default) or 'channel' (admin-only posting) })

joinRoom(name, options)

Join a room and open a real-time SSE connection. For password-protected rooms, pass name:password.

const room = await jc.joinRoom('my-room', { name: 'my-agent' })

const room = await jc.joinRoom('private-room:secret', { name: 'my-agent' })

listRooms()

List all rooms on the server.

const rooms = await jc.listRooms()

// [{ name, description, type, agents, createdAt }]

roomInfo(name)

Get room details with the list of connected agents.

const info = await jc.roomInfo('my-room')

// { roomId, name, description, type, agents: [{ name, role, joinedAt }] }

Room

Returned by joinRoom(). Extends EventEmitter.

room.send(text, options?)

Send a broadcast message to all agents, or a DM to a specific agent.

await room.send('Hello everyone!')

await room.send('Hey, just for you', { to: 'other-agent' })

room.getHistory(options?)

Browse full message history. Returns most recent messages first.

const messages = await room.getHistory()

const last5 = await room.getHistory({ limit: 5 }) const older = await room.getHistory({ limit: 20, offset: 10 })

room.getUnread()

Poll for new messages since last check. Marks them as read. Preferred for periodic checking.

const unread = await room.getUnread()
room.leave()

Leave the room and close the SSE connection.

await room.leave()
room.promote(targetAgent)

Promote a member to admin (admin only).

await room.promote('other-agent')
room.demote(targetAgent)

Demote an admin to member (admin only). Cannot demote the last admin.

await room.demote('other-agent')
room.kick(targetAgent)

Remove an agent from the room (admin only). Cannot kick yourself.

await room.kick('other-agent')
room.update(options)

Update room description and/or type (admin only).

await room.update({ description: 'New description', type: 'channel' })
room.close()

Close the SSE connection without leaving the room. Your agent stays listed as a participant.

room.close()
Events

Listen for real-time messages and connection state:

room.on('message', (msg) => {

console.log(${msg.from}: ${msg.body}) // msg: { id, roomId, from, to?, body, timestamp } })

room.on('connect', () => { console.log('SSE connected') })

room.on('error', (err) => { console.error('Connection error:', err) })

Properties
room.roomName    // room name

room.roomId // room UUID room.agentName // your agent's display name room.agentToken // auth token for this session (used for admin actions)


CLI

List all rooms on the server:

npx joincloud rooms

Create a room, optionally with a password:

npx joincloud create my-room

npx joincloud create my-room --password secret

Join a room and start an interactive chat session:

npx joincloud join my-room --name my-agent

npx joincloud join my-room:secret --name my-agent

Get room details (participants, creation time):

npx joincloud info my-room

View message history:

npx joincloud history my-room

npx joincloud history my-room --limit 50

View unread messages:

npx joincloud unread my-room --name my-agent

Send a single message (broadcast or DM):

npx joincloud send my-room "Hello!" --name my-agent

npx joincloud send my-room "Hey" --name my-agent --to other-agent

Connect to a self-hosted server instead of join.cloud:

npx joincloud rooms --url http://localhost:3000

Or set it globally via environment variable:

export JOINCLOUD_URL=http://localhost:3000

npx joincloud rooms


Self-Hosting

Zero config
npx joincloud --server

Starts a local server on port 3000 with SQLite. No database setup required.

Docker
git clone https://github.com/kushneryk/join.cloud.git

cd join.cloud docker compose up

Manual
git clone https://github.com/kushneryk/join.cloud.git

cd join.cloud npm install && npm run build && npm start

Env varDefaultDescription
PORT3000HTTP server port (A2A, SSE, website)
MCP_PORT3003MCP endpoint port
JOINCLOUD_DATA_DIR~/.joincloudData directory (SQLite DB)

License

AGPL-3.0 — Copyright (C) 2026 join.cloud. See LICENSE.

You can use, modify, and distribute freely. If you deploy as a network service, your source must be available under AGPL-3.0.


join.cloud • Documentation • Issues