OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

MiroTalk P2P

Peer-to-peer browser calls for small groups, with a tiny Node.js server and no database

Open source alternative to

Visit MiroTalk P2PGitHubDocumentation

Main features

  • Peer-to-peer video and audio over a WebRTC mesh
  • Screen sharing, recording and picture-in-picture
  • Chat with Markdown and emoji, and file sharing
  • Collaborative whiteboard
  • Background blur or image, processed in the browser
  • Room passwords, host protection, JWT and OpenID Connect login
  • Speech recognition and optional ChatGPT integration
  • REST API and webhooks
  • Embeddable iframe and widget, Slack and Mattermost integrations
  • Interface translated into 133 languages

What MiroTalk P2P does

MiroTalk P2P is a video calling app in which audio and video travel directly between participants’ browsers. The Node.js server delivers the web app and handles signaling, which tells browsers how to reach each other, but it never carries the media. That makes the server very light, and it means the call does not pass through a media server you have to trust or scale.

For a small project it has a long feature list: screen sharing, in-browser recording, picture-in-picture, chat with Markdown and emoji, file sharing, a collaborative whiteboard, background blur or replacement, speech recognition and an optional ChatGPT assistant. Rooms can be embedded in other sites with an iframe or a widget, created through a REST API, and connected to Slack and Mattermost. Webhooks report room events to your own systems.

Privacy and the mesh design

In a mesh every participant sends a separate stream to every other participant. Media is encrypted by WebRTC and goes from browser to browser, or through a TURN relay when a direct path is blocked. The trade-off is upload bandwidth and CPU on each device, which grows with every person who joins, so the MiroTalk documentation describes P2P as suited to private meetings in small groups. For bigger meetings the same author maintains MiroTalk SFU, which uses a media server.

Some features contact outside services. The ChatGPT integration sends prompts to OpenAI. The background effects load the MediaPipe library from jsDelivr and a model file from Google Storage, although the images themselves are processed in the browser. Access controls include room passwords, a host protection mode, JWT credentials and OpenID Connect login.

Self-hosting MiroTalk P2P

Installation takes a few npm commands, or a single Docker image (mirotalk/p2p) with Docker Compose; there is also a Cloudron app. The self-hosting guide targets Ubuntu 22.04 LTS with Node.js LTS. The app listens on port 3000 behind Nginx or Apache with a Let’s Encrypt certificate, and you need a domain with an A record. No database is involved; settings live in a .env file and a config file. A TURN server is recommended so that people behind strict NAT or corporate firewalls can still connect.

Hosted version

The MiroTalk documentation points to MiroTalk Cloud, a hosted MiroTalk WEB platform that can be started for free. p2p.mirotalk.com is a public live demo sponsored by third parties, and the README carries sponsor and affiliate hosting links.

Limitations

The mesh design caps practical meeting size, and quality depends on the weakest participant’s connection. The project is largely the work of one maintainer, with commercial licensing through CodeCanyon. There are no native mobile apps, and the AI features depend on OpenAI.

Who it suits

MiroTalk P2P suits individuals, families, small teams and developers who want private calls for a handful of people on a server that costs almost nothing to run, or a simple video call to embed in a website. Teams that regularly meet in larger groups should look at MiroTalk SFU or Jitsi Meet.

License details

AGPL-3.0. Licenses with different terms are also sold for a one-time fee through CodeCanyon for those who cannot meet the AGPL conditions.

Technical details

Self-hosting needs

  • Node.js
  • TURN server (recommended)

Built with

  • Node.js
  • Express
  • Socket.IO
  • JavaScript

GitHub topics

  • collaboration
  • conferencing
  • decentralized
  • docker-image
  • html-css-javascript
  • javascript
  • livechat
  • meeting
  • mirotalk
  • p2p
  • peer-to-peer
  • screensharing
  • video-call
  • video-chat

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.