Zum Inhalt springen
claudemods

cc-arcade: Die Claude Code Spiele-Mod über dem Prompt

Snake, Tetris, Doom, 2048 und weitere Spiele über dem Prompt von Claude Code, während Claude arbeitet.

Berechtigungen

  • Fängt Tool-Aufrufe abSieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
  • Verändert die OberflächeZeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
  • Fügt Befehle/Tools hinzuRegistriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
  • Speichert DatenBehält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
getestet mit
v2.1.291
zuletzt getestet
erfordert
Claude Code ≥ 2.1.287
Oberflächen
über dem Prompt, Toast

In Claude Code installieren:

/plugin install cc-arcade --marketplace sezaakgun/cc-arcade
Alle Installationswege ↓

Was macht diese Mod?

cc-arcade ist eine Community-Mod von Seza Akgün (sezaakgun). Die Claude Code Spiele-Mod bringt kleine Spiele über den Prompt von Claude Code, für die Minuten, in denen Claude arbeitet. Führe /arcade aus, und über dem Eingabefeld erscheint eine Reihe von Knöpfen, einer pro Spiel plus pet, random, auto und close. Klick einen an oder nenne ihn mit /arcade tetris, und das Spielfeld nimmt den Platz über dem Prompt ein. Klick das Spielfeld an, um ihm die Tastatur zu geben; Esc gibt die Tastatur an den Prompt zurück.

Es gibt neun Spiele: Snake, Tetris, Doom (ein Ego-Korridor-Shooter mit vier Etagen, drei Monstern und drei Waffen, per Raycasting in Halbblöcken gezeichnet), 2048, Minesweeper, Flappy, Pong, einen Tipptest und Space Invaders. Jedes Spiel merkt sich einen Bestwert über Sitzungen hinweg, und ein neuer Bestwert zeigt einen Toast. Wenn Claude einen Turn beendet, pausiert das offene Spiel, und seine Statuszeile wird gelb mit ● Claude is done, damit du die Antwort nicht verpasst.

Außerdem gibt es ein Haustier. Es wächst mit der Arbeit, die Claude erledigt: Ein erfolgreicher Testlauf, ein erfolgreiches git commit und Dateiänderungen über Edit, Write oder NotebookEdit geben ihm XP und heben seine Laune, während fehlschlagende Tests sie drücken. Der Autor weist darauf hin, dass die Spiele Klone ihres Genres sind und nicht mit den ursprünglichen Publishern verbunden sind. Laut README sind Claude Code 2.1.269 oder neuer, ein interaktives Terminal, das die Maus meldet, und eine Schrift mit Rahmen- und Blockzeichen nötig.

Demo

Die Aufnahme öffnet die Auswahl mit /arcade und dann Doom mit /arcade doom. Das Spielfeld erscheint über dem Prompt mit seiner Raycast-Ansicht und einem Banner CLICK HERE TO PLAY; das Spiel bekommt die Tastatur erst nach einem Klick auf das Spielfeld, daher wird im Clip nicht gespielt. Bis zum Klick gehen die Tasten weiterhin an den Prompt.

Installation

Nutze eine beliebige Methode aus dem Installationsblock; alle installieren direkt aus dem eigenen Marketplace des Autors. Führe dann in einer beliebigen Sitzung /arcade aus. Nach einer Installation in eine bereits offene Sitzung führe zuerst /reload-plugins aus.

$ install cc-arcade

Erfordert Claude Code ≥ 2.1.287

Wird aus dem Marketplace des Autors installiert: sezaakgun/cc-arcade

  1. 1.Eine Zeile, direkt in Claude Code

    /plugin install cc-arcade --marketplace sezaakgun/cc-arcade

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add sezaakgun/cc-arcade
    claude plugin install cc-arcade@cc-arcade

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/sezaakgun/cc-arcade
    claude --plugin-dir ./cc-arcade

    Lädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.

So funktioniert es

hooks/register.tsx ist das Hook-Modul. Es registriert /arcade, zeichnet die Auswahl oder das offene Spielfeld an der Render-Stelle AbovePrompt, hält Bestwerte und Haustier in $.store und pausiert das offene Spiel bei turn.complete. Jedes Spielfeld unter hooks/boards/ ist ein Surface-Modul, das als Client-Element eingebunden wird, mit eigener Frame-Uhr, Tastatur und Maus. Die Spielregeln liegen als reine Funktionen in hooks/games/. So wird das Haustier gefüttert, aus hooks/register.tsx:

on('tool.call', async ($, e, next) => {
  const r = await next(e)
  const command = (e as { command?: unknown }).command
  const event = petEvent(e.tool, typeof command === 'string' ? command : undefined, 'deny' in r ? undefined : !r.isError)
  if (!event) return r
  const saved = await $.store.get('pet').catch(() => undefined)
  const current = isPet(saved) ? saved : pet ?? newPet($.clock.now())
  const fed = feed(current, event, $.clock.now())
  pet = fed
  await $.store.set('pet', fed).catch(err => $.ui.log(`cc-arcade: store write failed: ${err}`))
  // ...
  return r
})

Der Hook lässt das Tool mit await next(e) zuerst laufen und gibt dessen Ergebnis unverändert zurück, blockiert oder verändert also nie einen Aufruf. petEvent in hooks/games/pet.ts gleicht den Bash-Befehl mit einer Liste von Test-Runnern (bun test, npm test, pytest, go test, cargo test und andere) und mit git commit ab. Das Haustier wird vor jeder Aktualisierung neu aus dem Speicher gelesen, sodass mehrere Sitzungen nebeneinander dasselbe Haustier füttern. Wenn eine Spielrunde endet, schickt das Spielfeld seinen Punktestand mit surface.post, und ein ui.message-Hook behält ihn, wenn er den gespeicherten Bestwert schlägt.

Anpassen

Alle Optionen laufen über /arcade:

  • /arcade öffnet die Auswahl; /arcade <game> öffnet ein Spiel direkt.
  • /arcade random wählt ein beliebiges Spiel außer dem Haustier und dem zuletzt gespielten.
  • /arcade auto wählt passend zur Situation: das Haustier, wenn in den letzten fünf Minuten ein Testlauf fehlschlug, ein längeres Spiel, wenn Claude eine Minute oder länger gearbeitet hat, eine kurze Runde, während Claude arbeitet, und 2048 oder Minesweeper im Leerlauf.
  • /arcade list zeigt jedes Spiel mit deinem Bestwert.
  • /arcade colorblind stellt Doom auf eine Palette um, die nicht auf Rot gegen Grün setzt, und die Einstellung wird gespeichert.
  • /arcade stop schließt die Arcade.

Berechtigungen & Sicherheit

Wir haben jede Datei gelesen, die das Plugin lädt, bevor wir es ausgeführt haben. Das Plugin stellt keine Netzwerkaufrufe, führt keine Befehle aus und liest oder schreibt keine Dateien. Ändert die UI betrifft die Spielfelder über dem Prompt und die Toasts. Fügt Befehle/Tools hinzu betrifft /arcade. Speichert Daten betrifft die Bestwerte, das Haustier und die Farbenblind-Einstellung, alles im eigenen $.store des Plugins.

Fängt Tool-Aufrufe ab erscheint, weil es sich ohne Matcher an jeden tool.call hängt und so den Text jedes Bash-Befehls sieht und ob der Aufruf fehlschlug. Es beobachtet nur: Es wartet, bis der Aufruf fertig ist, gibt das Ergebnis unverändert zurück und speichert nur Zähler, nie den Befehlstext. claude plugin validate meldete keine Warnungen.

Fängt Tool-Aufrufe ab
Sieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
Verändert die Oberfläche
Zeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
Fügt Befehle/Tools hinzu
Registriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
Speichert Daten
Behält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).

Kompatibilität & Fehlerbehebung

Wir haben die Mod mit Claude Code 2.1.291 unter macOS validiert, und die 32 bun test-Unit-Tests des Autors laufen durch. claude plugin test kann sie nicht laden, weil sie bun:test importieren. In claude -p, der Desktop-App und mobil wird nichts gezeichnet; das Spielfeld braucht ein interaktives Terminal.

  • /arcade ist ein unbekannter Befehl. Laut README müssen Function Hooks aktiv sein: Setze CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 im env-Block von ~/.claude/settings.json und prüfe in /plugin, ob das Plugin geladen ist.
  • Tasten landen im Prompt. Klick zuerst das Spielfeld an.
  • Klicks bewirken nichts. Dein Terminal meldet die Maus nicht. /arcade <game> öffnet trotzdem ein Spiel, aber ohne Klick bekommt ein Spielfeld nicht die Tastatur.
  • Kästchen statt Blöcken. Nutze eine Terminalschrift mit Rahmen- und Blockzeichen.

Ein höheres Terminal ergibt größere Spielfelder; das Band bekommt etwa die halbe Terminalhöhe.

FAQ

Welche Spiele sind in cc-arcade enthalten?
Snake, Tetris, Doom (ein kleiner Raycast-Korridor-Shooter, keine Portierung), 2048, Minesweeper, Flappy, Pong gegen den Computer, ein Tipptest und Space Invaders. Dazu kommt ein Haustier, das wächst, während Claude arbeitet.
Warum landen meine Tasten im Prompt statt im Spiel?
Ein Spielfeld bekommt die Tastatur erst, nachdem du es angeklickt hast. Mit Esc gibst du die Tastatur an den Prompt zurück. Dafür muss dein Terminal Mausklicks melden.
Verpasse ich Claudes Antwort, während ich spiele?
Nein. Wenn der Turn endet, pausiert das offene Spiel, und seine Statuszeile wird gelb und beginnt mit „● Claude is done“. Drück eine Taste, um weiterzuspielen, oder Esc, um die Antwort zu lesen.
Verbraucht das Spielen Tokens?
Nein. Das Plugin beantwortet jeden Klick und jeden Befehl selbst, ohne das Modell aufzurufen, und stellt keine Netzwerkaufrufe.
Was sieht das Haustier?
Es hängt sich an jeden Tool-Aufruf, um zu prüfen, ob ein Bash-Befehl ein Testlauf oder ein git commit war oder ob Claude eine Datei bearbeitet hat. Gespeichert werden nur Zähler im eigenen Speicher des Plugins; Befehlstext, Pfade und Prompts werden nicht behalten.
Tool-Call-Zähler in Claude Code

Tool-Call-Zähler

Zählt Claudes Tool-Aufrufe pro Turn und Sitzung, zeigt sie neben dem Spinner und ergänzt /tally als Übersicht.

  • Spinner
  • Verlauf
  • Statuszeile
  • Fängt Tool-Aufrufe ab
  • Verändert die Oberfläche
  • Fügt Befehle/Tools hinzu

getestet mit v2.1.291

Fertig-Toast in Claude Code

Fertig-Toast

Toast „Done in 2m 14s“ und kurzer Klang, wenn ein langer Claude-Turn endet, optional mit Desktop-Benachrichtigung.

  • Toast
  • Führt Befehle aus
  • Verändert die Oberfläche
  • Spielt Ton ab

getestet mit v2.1.291

Mehr in Timer, Todos, Standups, Slash-Commands.