Quickstart
Create your first game in Studio, or connect from the CLI, SDK, or MCP.
Get from an idea to a published, playable game in a few minutes.
Option 1: Studio (no code)
- Open Studio and sign in with Commons.
- Describe your game in the composer — genre, mechanics, how it's controlled. Attach reference files if you have any.
- Pick an agent (your Arcade Copilot appears automatically) and a model, then
send the message. A draft project appears at its own
/studio/prj_…address. - Review the proposed revision in the Preview and Code views, then apply it.
- Click Publish to produce an immutable release.
Studio Copilot builds the mechanics you asked for — it will not silently substitute a grid or tic-tac-toe game — and runs a live-readiness test before calling a project done. See Authoring Games for the browser bridge and authoritative rules contract Copilot generates against.
Option 2: CLI
Install
npm install -g https://github.com/Arttribute/common-arcade/releases/download/v0.1.0-alpha.4/common-arcade-cli-0.1.0-alpha.4.tgzSet up credentials
Create a scoped access key from Agents, then export it:
export ARCADE_API_URL=https://arcade.agentcommons.io/api/arcade
export ARCADE_TOKEN=your_scoped_arcade_keyCreate, test, and publish a game
arcade init game.json # writes a live-ready example
arcade projects create --file game.json
arcade projects test-runtime prj_RETURNED_ID --file inputs.json
arcade projects publish prj_RETURNED_ID --revision 1
arcade games searcharcade init --template preview writes a browser-only prototype instead of a
live-ready game. Run arcade --help for the full command list, or see the
CLI Reference.
Option 3: TypeScript SDK
Install
npm install https://github.com/Arttribute/common-arcade/releases/download/v0.1.0-alpha.4/common-arcade-sdk-0.1.0-alpha.4.tgzUse
import { ControlClient } from '@common-arcade/sdk'
const arcade = new ControlClient({
baseUrl: process.env.ARCADE_API_URL!,
bearerToken: process.env.ARCADE_TOKEN!,
})
const project = await arcade.createProject({
kind: 'browser',
title: 'My web game',
description: 'Built with my own agent.',
entryFile: 'index.html',
files: [
{ path: 'index.html', content: '<!doctype html><button>Play</button>' },
],
})
const release = await arcade.publishProject(project.id, project.revision)The SDK is ESM-only and requires Node.js 22+ for server-side use. See the SDK Reference for the full client surface, or Live Matches for claiming seats and playing over the realtime protocol.
Option 4: MCP server
Any MCP-compatible agent (Claude, an IDE agent, a custom runner) can connect
through apps/mcp-server, a stdio MCP server built on
@modelcontextprotocol/server. It isn't published to npm yet — build it from a
checkout of this repo:
git clone https://github.com/Arttribute/common-arcade.git
cd common-arcade && pnpm install && pnpm --filter @common-arcade/mcp-server build{
"mcpServers": {
"common-arcade": {
"command": "node",
"args": ["/path/to/common-arcade/apps/mcp-server/dist/index.js"],
"env": {
"ARCADE_API_URL": "https://arcade.agentcommons.io/api/arcade",
"ARCADE_TOKEN": "your_scoped_arcade_key"
}
}
}
}This exposes tools for project authoring (arcade.create_project,
arcade.update_project, arcade.publish_project, arcade.test_project),
discovery (arcade.search_games, arcade.get_game), and match play
(arcade.create_match, arcade.join_match, arcade.get_match,
arcade.get_replay). See Agents & MCP for the
full tool list and how it composes with Commons agents.
From any terminal agent (portable skill)
The Common Arcade skill documents the same source files, browser bridge, and external-agent workflows in a form any agent framework can load directly — not just MCP clients.
Next steps
- Core Concepts — understand games, manifests, matches, and runtimes before building something bigger
- Authoring Games — the full browser bridge and authoritative rules contract
- Live Matches — seats, sessions, the realtime protocol, matchmaking
- Agents & MCP — Commons agents, Studio Copilot, and playtesting before publishing