Skip to main content

Open Source

Multiplayer's core is open source under MIT: session capture, local-first architecture, deduplication, and coding agent integration. You can read every line of it, self-host it, and verify for yourself that nothing leaves your infrastructure until an issue is actually found.

Scope: what's open, what's not


Multiplayer ships in three tiers.

TierWhat's in itLicense
Open source coreSession capture, local-first caching, deduplication, coding agent integrationMIT
Hosted planEverything in the core, run as a managed service. SSO/SAML, 30-day session retention, email supportProprietary, paid
EnterpriseAudit logs, compliance reporting, team management, etc.Commercial license, paid

If you're evaluating whether self-hosting is right for you: the honest tradeoff is infrastructure ownership versus convenience. Self-hosting means nothing leaves your machines, but you're running Docker Compose, MongoDB, RabbitMQ, Kafka, ClickHouse, and a handful of other services yourself. The hosted plan trades that operational load for a subscription. Neither one changes what data Multiplayer captures or when, that part of the design is the same either way.

For the full reasoning behind open sourcing Multiplayer, see Multiplayer is now open source.

The repos


Debugging agent

The core platform. Web app, backend services, data pipelines, and the coding agent integration layer.

RepoWhat it doesLicense
multiplayer-app/multiplayerThe self-hostable platform: web app, backend services, storage integrations, shared librariesMIT
multiplayer-app/multiplayer-cliTerminal UI for working through debugging sessions and turning fixes into branches or PRsMIT

Data capture: client-side

Multiplayer automatically captures sessions for errors and exceptions at the source. This is ideal to catch bugs as they happen, while you focus on development work.

RepoWhat it doesLicense
session-recorder-browserBrowser SDKMIT
session-recorder-nodeNode.js SDKMIT
session-recorder-reactReact SDKMIT
session-recorder-react-nativeReact Native SDKMIT
session-recorder-goGo SDKMIT
session-recorder-dotnet.NET SDKMIT
session-recorder-pythonPython SDKMIT
session-recorder-rubyRuby SDKMIT
session-recorder-javaJava SDKMIT

You can also install browser tooling to manually trigger a session: a browser extension and an in-app widget. This is ideal for developers or end-users to submit bugs or unexpected behaviors.

RepoWhat it doesLicense
Browser extensionCapture sessions without adding an SDK to your codebaseMIT
Widget repo JavascriptEmbeddable in-app capture widget for web appsMIT
Widget repo React NativeEmbeddable in-app capture widget for mobileMIT

Data capture: backend and infrastructure

How Multiplayer pulls unsampled data out of your existing stack.

Capturing telemetry data

You have 2 primary options for routing your backend data to Multiplayer:

OpenTelemetry Collector. We recommend this option for large, scaled platforms, because it provides more flexibility by having your services send all telemetry to the collector, which then routes specific session recording data to Multiplayer, while routing other data to your existing observability tools.

RepoWhat it doesLicense
multiplayer-otlp-collectorSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-nodeSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-pythonSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-javaSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-dotnetSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-goSend OpenTelemetry data to MultiplayerMIT
multiplayer-otlp-rubySend OpenTelemetry data to MultiplayerMIT

Multiplayer exporter. This is a great choice for new applications or startups because it's simple to set up and doesn't require any additional infrastructure. You can configure our exporter to send all session recording data to Multiplayer while optionally sending a sampled subset of data to your existing observability platform.

RepoWhat it doesLicense
direct-exporter-nodeSend OpenTelemetry data to MultiplayerMIT
direct-exporter-pythonSend OpenTelemetry data to MultiplayerMIT
direct-exporter-javaSend OpenTelemetry data to MultiplayerMIT
direct-exporter-dotnetSend OpenTelemetry data to MultiplayerMIT
direct-exporter-goSend OpenTelemetry data to MultiplayerMIT
direct-exporter-rubySend OpenTelemetry data to MultiplayerMIT

Capturing request/response content and headers

You have 2 primary options for routing request/response content and headers from all your system components to Multiplayer:

Multiplayer Proxy. This option allows you to handle capturing this data outside of your services and it’s ideal for large-scale applications.

RepoWhat it doesLicense
multiplayer-proxyBackend proxy for capturing request/response content and headersMIT

Content-capture libraries. Capture, serialize, and mask request/response and header content directly within your service code. This is an easy way to get started, especially for new projects, as it requires no extra components in your platform.

RepoWhat it doesLicense
content-capture-nodeUtilities for capturing request, response and header contentMIT
content-capture-pythonUtilities for capturing request, response and header contentMIT
content-capture-dotnetUtilities for capturing request, response and header contentMIT
content-capture-goUtilities for capturing request, response and header contentMIT
content-capture-rubyUtilities for capturing request, response and header contentMIT

Run it yourself


The fastest path, from the main repo:

git clone https://github.com/multiplayer-app/multiplayer
cd multiplayer
cp .env.example docker/.env
docker compose -f docker/docker-compose.prod.yml up -d

That starts the full platform, including MongoDB, RabbitMQ, Redis, Kafka, ClickHouse, MinIO, OpenSearch, and the OpenTelemetry collector, using prebuilt images. Docker and Docker Compose are the only requirements for this path.

Prefer to try Multiplayer without standing up infrastructure first? The CLI alone gets you running against the hosted plan in one line:

npm install -g @multiplayer-app/cli
multiplayer

For local development against the platform source itself, including hot reload and PM2 process management, see the full setup guide in the main repo.

Contributing


The contributing guide, branching strategy, and commit conventions live in CONTRIBUTING.md.

One thing worth knowing before you open a PR: we're optimizing for signal over volume. The contributions that move Multiplayer forward are grounded in something you actually hit, a specific bug, a specific edge case, a specific gap you ran into self-hosting. If you're running Multiplayer and something's broken or missing, that's exactly the kind of issue we want to hear about.

Next steps


🚀 If you’re ready to trial Multiplayer with your own app, you can follow the steps in the quickstart.

📌 If you have any questions shoot us an email! 💜