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.

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

Supports: Node.js | React | React Native | Go | .Net Python | Ruby | Java

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

Supports: Node.js | Python | Java | .Net | Go | Ruby

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.

CodeWhat it doesLicense
direct-exporterSend OpenTelemetry data to MultiplayerMIT

Supports: Python | Java | .Net | Go | Ruby

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.

CodeWhat it doesLicense
content-captureUtilities for capturing request, response and header contentMIT

Supports: Python | .Net | Go | Ruby

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.

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 or want to report bugs please open a GitHub issue! 💜