# LobbyLab for coding agents

> The `lobbylab` npm package is not published yet, so the `npx -y lobbylab` commands on this page do not work today. Everything else here is current. Request an alpha key at https://lobbylab.gg/developers.

LobbyLab is a hosted multiplayer backend. Your game keeps its own UI, engine and domain; players join LobbyLab rooms over WebSockets through `@lobbylab/client`, and LobbyLab keeps the rooms, invite codes, matchmaking and shared game state. Game rules that run on LobbyLab's servers come later. Request an alpha key at https://lobbylab.gg/developers.

Status: alpha. There are no public keys yet, and `@lobbylab/client` and `@lobbylab/node` are not on npm yet; both arrive with the alpha. What works today: the `lobbylab` package's `docs` and `mcp` commands, and lobbylab.gg, where people describe a game, LobbyLab builds it, and friends play it on phone or web.

## Install the MCP server

It runs locally over stdio, needs no key and makes no network calls. Tools: `lobbylab_docs` (read these docs) and `lobbylab_multiplayer_quickstart` (the honest starting point for a stack). Both are read-only.

Claude Code:

```sh
claude mcp add lobbylab -- npx -y lobbylab mcp
```

Codex:

```sh
codex mcp add lobbylab -- npx -y lobbylab mcp
```

Cursor (`.cursor/mcp.json`) and most other MCP clients:

```json
{ "mcpServers": { "lobbylab": { "command": "npx", "args": ["-y", "lobbylab", "mcp"] } } }
```

VS Code (`.vscode/mcp.json`):

```json
{ "servers": { "lobbylab": { "type": "stdio", "command": "npx", "args": ["-y", "lobbylab", "mcp"] } } }
```

On native Windows, if a client cannot start `npx`, run it through `cmd`: command `cmd`, arguments `/c npx -y lobbylab mcp`.

Without MCP, the same text is one command away: `npx -y lobbylab docs`.

## Rules for agents during the alpha

- Do not install `@lobbylab/client` or `@lobbylab/node`, and do not write code that imports them, until the person has an alpha key and the packages are on npm.
- Do not invent keys, endpoints, package versions or features. If the person needs something the alpha does not have yet, say so plainly.
- Keys, once the person has them: the publishable key goes in `LOBBYLAB_PUBLISHABLE_KEY` in `.env` (safe in the browser). The secret key (`llsk_...`) goes only in `.env.local` for a backend: never in client code, never printed into chat, logs or commits.
- Test with two players by opening two browser tabs; each tab is its own player.
- If the person only wants to play a game with friends and not build one, lobbylab.gg builds and hosts it for them today.

## AGENTS.md section for a project that uses LobbyLab

```markdown
## Multiplayer (LobbyLab)
This project uses LobbyLab for online multiplayer. Do not write a WebSocket or socket.io server.
- Status: alpha. `@lobbylab/client` is not on npm yet. Add it only once the person has an alpha key
  (request one at https://lobbylab.gg/developers) and the package is published.
- Client: `@lobbylab/client`. The publishable key is LOBBYLAB_PUBLISHABLE_KEY in .env (safe in the browser).
- Never put the secret key (llsk_...) in client code. It lives in .env.local for your backend only.
- Docs for agents: `npx -y lobbylab docs`, or the MCP server `npx -y lobbylab mcp`.
- Test with two players: open two browser tabs; each tab is its own player.
```

## A prompt to copy

> Make this game online multiplayer with LobbyLab. First run `npx -y lobbylab docs` and read it. Keep my UI and engine. Tell me what works today during the alpha and what I need to get started, then use `@lobbylab/client` for rooms, invite codes and shared state once I have an alpha key. Test with two browser tabs and give me the invite link.

## Coming with the alpha and after

- `@lobbylab/client` and `@lobbylab/node` on npm.
- `npx -y lobbylab@1 init`: a sandbox project with no account; the keys are written to `.env` and `.env.local`, never printed.
- MCP tools to create projects and rooms, read status and usage, and add test players to a room.
- A Claude Code plugin with a LobbyLab skill and this MCP server, and AGENTS.md in every LobbyLab template.
