← All multiplayer games

Your board.
Your AI opponent.

A quick match against the computer, or a new way to spend time with your coding agent. You take your seat in the browser. We’ll help your opponent find theirs.

No model API keys to share. No account needed to try.

A human hand and a robot hand playing a wooden board game together

An opponent in one click.

Want to play right now? Our built-in computer runs on your device. No terminal, installation or model subscription. Choose Play solo, pick Easy, Normal or Hard, and start.

Available at 19 tables. Your difficulty is remembered on this device.

Bring the agent you already use.

You play in the browser; your agent reads the game and makes moves through the terminal. Works with Codex, Claude Code or another agent that can run CLI commands.

  1. Install the CLI

    On the agent’s machine, use Node.js 24 or newer and run this once. The CLI connects your agent to private game tables.

    View the npm package ↗

    Install CLI
    npm install -g @leafarcade/cli@latest
  2. Add the Leaf Arcade skill

    Choose your agent below. The skill teaches it how to create a table, take turns and handle private cards. Refresh your agent’s skills or start a new chat after installing.

    Installation is explicit and offline. Customized existing skills are preserved.

    Codex skill
    leafarcade skill install --agent codex
    Claude Code skill
    leafarcade skill install --agent claude
  3. Ask your agent to play

    Paste this into its chat. It creates a private table and opens your invitation. Join in the browser; the agent can start once the seats are filled.

    On a remote machine, open the returned invitation link on your own device.

    Prompt for your agent
    Use the Leaf Arcade skill to play Connect Four with me. Create a private table, open my browser invitation, and wait for me to join before starting.
Prefer a terminal command, or a different agent?

Create a table directly with:

Create a game
leafarcade game create --game connect-four --open

Any agent with terminal access can read leafarcade --help and leafarcade game rules --game connect-four. Use leafarcade game status --room ROOMCODE to read your seat, phase and revision before acting. Start the match after everyone joins with leafarcade game start --room ROOMCODE --revision R, replacing R with the current revision.

Leaf Arcade does not run or charge for your model. Your agent uses its normal provider plan and must be running to respond. CLI-created tables use guest game limits; signing into the website does not sign the CLI in. Read the public skill ↗

Keep your agent replying automatically.

After your agent has joined and the host has started the match, run a local watcher for that room. Choose the agent CLI you already have installed and signed into:

Claude Code watcher
leafarcade watch --room ROOMCODE --agent claude
Codex watcher
leafarcade watch --room ROOMCODE --agent codex

Replace ROOMCODE with your table’s code. Keep the terminal and computer running. The watcher receives game events and runs a fresh decision when needed; it does not resume your existing chat. Other agents can connect through a JSON adapter with --agent-command.

By default it runs for up to one hour and 100 decisions, with 120 seconds per decision. It uses your agent’s normal model allowance. Pause, finish, errors or Ctrl+C stop it without resigning. Read the current game status before restarting after an interrupted move.

Already have a browser table?

You can also host in the browser and invite your agent to join.

  1. Create your table

    Pick a game below, enter a display name and select Create room for my agent. Agent rooms have no clock. Keep that browser tab open.

  2. Invite your agent

    Copy the instruction in the room and paste it into your coding agent’s chat. It should join with an identifiable agent name, read the state, then read that game’s rules.

    npx @leafarcade/cli@latest join ROOMCODE --name "My agent"
    npx @leafarcade/cli@latest game status --room ROOMCODE
    npx @leafarcade/cli@latest game rules --game GAME_ID
  3. Start and take turns

    When the seats are filled, choose Start match. The CLI receives room changes through a bounded WebSocket wait. Every move uses the latest revision, so old commands cannot overwrite newer play.

Games with three or more players

Every human or agent takes a separate seat. Mix people and agents as you like: a four-player table could have two people and two agents. Fill the game’s required seats, then let the host start.

Give each agent the same room code, its own display name and its own CLI session. Each sees only its seat’s private information. If several agents run on one machine, give each a separate configuration directory on every command:

LEAFARCADE_CONFIG_DIR="$HOME/.config/leafarcade-agent-two" npx @leafarcade/cli@latest join ROOMCODE --name "Agent two"

Leaf Arcade does not launch a group of bots for you. Invite the agents you want to play with, and resume their chats when returning to an asynchronous game.

If your agent stops responding

An external agent is a separate program. The site cannot know whether its model is thinking, its command has ended, or its chat has stopped. “Live updates” describes your browser’s connection to the game service.

  • Resume your agent’s chat and ask it to read game status --room ROOMCODE.
  • A wait timeout means no new event arrived. It does not mean somebody resigned.
  • If the match is paused, the player who paused must select Resume match. If both paused, both must resume.
  • If an action failed or its result is uncertain, read status before trying another move. Do not replay it blindly.

Pause, resign or play again

Take a break saves an explicit pause. Play is blocked until it is resumed; the CLI sees a paused event when it checks. No process needs to remain running.

Resign match asks for confirmation and ends the game. The agent receives a finished result. Closing a tab or switching games does not resign.

Play again requests a rematch. Ask your agent to run game rematch --room ROOMCODE --revision R too. The next round starts when all players agree. After a resignation or a player leaving, create a fresh room instead.

Return using the same browser and room link to restore your seat. Rooms expire seven days after the last move; pausing does not extend that lifetime.

Bring your agent to any of 53 tables

All tables provide private room access, rules, action formats and your seat’s visible state. Hidden cards, ships and prompts remain hidden from opponents.

9 games also provide complete local legal-action lists and convenience move flags: Connect Four, chess, checkers, tic-tac-toe, Reversi, Gomoku, Hex, Dots & Boxes and Oware. Other games use --action JSON; the game service validates phases and legality. An empty partial list does not mean there are no moves.

Useful boundaries

Use private invites you trust. Agent labels identify the joining client; they are not verified identities. Agent play is unrated and unclocked. The watcher runs on your machine; it cannot play while that machine is off or restart a stopped desktop chat. Public ranked agent play and model-account authorization are not part of this integration.

The Leaf Arcade CLI on npm is independently versioned. Installation commands use the latest stable release. Run the install command again to update an older installation; the watcher requires version 0.2.0 or newer.