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
- Quelle
- Seza Akgün (sezaakgun) (MIT)
In Claude Code installieren:
/plugin install cc-arcade --marketplace sezaakgun/cc-arcadeWas 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.Eine Zeile, direkt in Claude Code
/plugin install cc-arcade --marketplace sezaakgun/cc-arcadeIn eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.
2.Aus deiner Shell
claude plugin marketplace add sezaakgun/cc-arcade claude plugin install cc-arcade@cc-arcadeFühre danach in jeder bereits geöffneten Sitzung /reload-plugins aus.
3.Ohne Installation ausprobieren
git clone https://github.com/sezaakgun/cc-arcade claude --plugin-dir ./cc-arcadeLä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 randomwählt ein beliebiges Spiel außer dem Haustier und dem zuletzt gespielten./arcade autowä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 listzeigt jedes Spiel mit deinem Bestwert./arcade colorblindstellt Doom auf eine Palette um, die nicht auf Rot gegen Grün setzt, und die Einstellung wird gespeichert./arcade stopschließ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.
/arcadeist ein unbekannter Befehl. Laut README müssen Function Hooks aktiv sein: SetzeCLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1imenv-Block von~/.claude/settings.jsonund 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.
# Ähnliche Mods

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
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.