Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@multiplayer-app/cli

Package Overview
Dependencies
Maintainers
5
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@multiplayer-app/cli - npm Package Compare versions

Comparing version
2.0.31
to
2.0.35
+24
-1
bin/multiplayer.js

@@ -20,3 +20,26 @@ #!/usr/bin/env node

const binName = process.platform === 'win32' ? 'multiplayer.exe' : 'multiplayer'
const rootDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
// In a source checkout (src/index.tsx present), prefer running via bun so that
// locally-added commands work without a full binary rebuild.
const sourceEntry = path.join(rootDir, 'src', 'index.tsx')
if (existsSync(sourceEntry)) {
const bunCandidates = [
path.join(rootDir, 'node_modules', '.bin', 'bun'),
'/opt/homebrew/bin/bun',
'/usr/local/bin/bun',
'bun',
]
for (const bunBin of bunCandidates) {
if (!existsSync(bunBin) && bunBin !== 'bun') continue
try {
execFileSync(bunBin, [sourceEntry, ...process.argv.slice(2)], { stdio: 'inherit' })
process.exit(0)
} catch (err) {
if (err.status !== undefined) process.exit(err.status)
// bun not found at this path, try next
}
}
}
// Walk up from this file looking for the binary in node_modules

@@ -36,3 +59,3 @@ function findBinary() {

// Fallback: sibling dist/ for local dev
const devBin = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'dist', `${platform}-${arch}`, 'bin', binName)
const devBin = path.join(rootDir, 'dist', `${platform}-${arch}`, 'bin', binName)
if (existsSync(devBin)) return devBin

@@ -39,0 +62,0 @@

+12
-10
{
"name": "@multiplayer-app/cli",
"version": "2.0.31",
"version": "2.0.35",
"description": "Multiplayer CLI",

@@ -17,8 +17,8 @@ "type": "module",

"optionalDependencies": {
"@multiplayer-app/cli-darwin-arm64": "2.0.31",
"@multiplayer-app/cli-darwin-x64": "2.0.31",
"@multiplayer-app/cli-linux-x64": "2.0.31",
"@multiplayer-app/cli-linux-arm64": "2.0.31",
"@multiplayer-app/cli-windows-x64": "2.0.31",
"@multiplayer-app/cli-windows-arm64": "2.0.31"
"@multiplayer-app/cli-darwin-arm64": "2.0.35",
"@multiplayer-app/cli-darwin-x64": "2.0.35",
"@multiplayer-app/cli-linux-arm64": "2.0.35",
"@multiplayer-app/cli-linux-x64": "2.0.35",
"@multiplayer-app/cli-windows-arm64": "2.0.35",
"@multiplayer-app/cli-windows-x64": "2.0.35"
},

@@ -33,9 +33,10 @@ "license": "MIT",

"@anthropic-ai/sdk": "^0.78.0",
"@modelcontextprotocol/sdk": "^1.29.0",
"@opentui/core": "0.1.96",
"@opentui/core-darwin-arm64": "0.1.96",
"@opentui/core-darwin-x64": "0.1.96",
"@opentui/core-linux-arm64": "0.1.96",
"@opentui/core-linux-x64": "0.1.96",
"@opentui/core-linux-arm64": "0.1.96",
"@opentui/core-win32-arm64": "0.1.96",
"@opentui/core-win32-x64": "0.1.96",
"@opentui/core-win32-arm64": "0.1.96",
"@opentui/react": "0.1.96",

@@ -58,4 +59,5 @@ "@sindresorhus/tsconfig": "^8.1.0",

"superagent": "10.3.0",
"typescript": "6.0.2"
"typescript": "6.0.2",
"zod": "^4.3.6"
}
}
+74
-10

@@ -17,6 +17,10 @@ # @multiplayer-app/cli

|---------|-------------|
| `multiplayer` | Start the debugging agent (TUI by default) |
| `multiplayer [agent]` | Start the debugging agent (default) |
| `multiplayer releases create` | Register a release |
| `multiplayer deployments create` | Register a deployment |
| `multiplayer sourcemaps upload` | Upload sourcemap files |
| `multiplayer auth login` | Log in via browser OAuth |
| `multiplayer auth logout` | Log out and clear credentials |
| `multiplayer auth status` | Check authentication status |
| `multiplayer mcp` | Start an MCP server for AI agent integration |

@@ -30,3 +34,3 @@ ---

```sh
multiplayer [options]
multiplayer [agent] [options]
```

@@ -75,12 +79,12 @@

[default]
api_key = <your-api-key>
dir = /path/to/repo
model = claude-sonnet-4-6
api_key = <your-api-key>
dir = /path/to/repo
model = claude-sonnet-4-6
max_concurrent = 2
[staging]
api_key = <staging-api-key>
dir = /path/to/staging-repo
model = gpt-4o
model_key = <openai-api-key>
api_key = <staging-api-key>
dir = /path/to/staging-repo
model = gpt-4o
model_key = <openai-api-key>
```

@@ -104,2 +108,12 @@

## Auth
```sh
multiplayer auth login # Log in via browser OAuth flow
multiplayer auth logout # Log out and clear stored credentials
multiplayer auth status # Check current authentication status
```
---
## Releases

@@ -144,3 +158,3 @@

| `--service <name>` | `SERVICE_NAME` | Service name |
| `--release <version>` | `VERSION` | Release version |
| `--release <version>` | `RELEASE` | Release version |
| `--environment <name>` | `ENVIRONMENT` | Environment name |

@@ -182,1 +196,51 @@ | `--base-url <url>` | `BASE_URL` | API base URL (optional) |

```
---
## MCP Server
`multiplayer mcp` starts an [MCP](https://modelcontextprotocol.io) server over stdio, exposing Multiplayer operations as tools that AI agents (Claude Desktop, Claude Code, Cursor, etc.) can call directly.
### Tools
| Tool | Description |
|------|-------------|
| `create_release` | Register a release for a service |
| `create_deployment` | Deploy a release to an environment |
| `upload_sourcemaps` | Upload `.map` files from local directories |
### Setup
Add the server to your MCP client config. Example for Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"multiplayer": {
"command": "multiplayer",
"args": ["mcp"],
"env": {
"MULTIPLAYER_API_KEY": "<your-api-key>"
}
}
}
}
```
Example for Claude Code (`~/.claude/mcp.json`):
```json
{
"mcpServers": {
"multiplayer": {
"command": "multiplayer",
"args": ["mcp"],
"env": {
"MULTIPLAYER_API_KEY": "<your-api-key>"
}
}
}
}
```
Once configured, the AI can create releases, deployments, and upload sourcemaps without any shell commands or manual steps.