본문으로 건너뛰기
claudemods

cc-arcade: 프롬프트 위에서 즐기는 Claude Code 게임 모드

Claude가 작업하는 동안 Claude Code 프롬프트 위에서 스네이크, 테트리스, Doom, 2048 등 9가지 게임을 즐길 수 있습니다.

권한

  • 도구 호출 가로채기Claude가 하는 모든 도구 호출을 볼 수 있고(tool.call / tool.check), 이를 차단하거나 변경할 수 있습니다.
  • UI 변경Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
  • 명령어/도구 추가사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).
  • 데이터 저장플러그인 전용 저장소에 세션 간 데이터를 보관합니다($.store.*).
테스트 버전
v2.1.291
마지막 테스트
필요 버전
Claude Code ≥ 2.1.287
표시 위치
프롬프트 위, 토스트

Claude Code 안에서 설치:

/plugin install cc-arcade --marketplace sezaakgun/cc-arcade
모든 설치 방법 ↓

이 모드는 무엇을 하나요?

cc-arcade는 Seza Akgün(sezaakgun)이 만든 커뮤니티 모드입니다. 이 Claude Code 게임 모드는 Claude가 작업하는 몇 분 동안 Claude Code 프롬프트 위에 작은 게임을 띄웁니다. /arcade를 실행하면 입력창 위에 버튼 한 줄이 나타나는데, 게임마다 버튼이 하나씩 있고 pet, random, auto, close도 있습니다. 하나를 클릭하거나 /arcade tetris처럼 이름을 지정하면 보드가 프롬프트 위 공간을 차지합니다. 보드를 클릭하면 키보드가 보드로 가고, Esc를 누르면 키보드가 프롬프트로 돌아옵니다.

게임은 아홉 가지입니다. 스네이크, 테트리스, Doom(층 4개, 몬스터 3종, 무기 3종이 있는 1인칭 복도 슈팅 게임으로, 하프 블록으로 레이캐스트됨), 2048, 지뢰 찾기, Flappy, Pong, 타자 연습, Space Invaders입니다. 게임마다 세션을 넘어 최고 점수가 유지되며, 최고 기록을 새로 세우면 토스트가 뜹니다. Claude가 턴을 마치면 열려 있는 게임이 일시정지되고 상태 줄이 ● Claude is done과 함께 노란색으로 바뀌므로 답을 놓치지 않습니다.

펫도 있습니다. 펫은 Claude가 하는 일에 따라 자랍니다. 통과한 테스트 실행, 성공한 git commit, Edit·Write·NotebookEdit을 통한 파일 편집은 경험치를 주고 기분을 올리며, 실패한 테스트는 기분을 떨어뜨립니다. 작성자는 이 게임들이 각 장르의 클론이며 원작 퍼블리셔와 관련이 없다고 밝히고 있습니다. README에 따르면 Claude Code 2.1.269 이상, 마우스 입력을 전달하는 대화형 터미널, 박스 그리기 문자와 블록 문자를 지원하는 글꼴이 필요합니다.

데모

녹화 영상에서는 /arcade 선택기를 연 다음 /arcade doom으로 Doom을 엽니다. 프롬프트 위에 레이캐스트 화면과 CLICK HERE TO PLAY 배너가 있는 보드가 나타납니다. 게임은 보드를 클릭한 뒤에만 키보드를 받으므로 영상에서는 실제로 플레이하지 않습니다. 클릭하기 전까지 키 입력은 계속 프롬프트로 갑니다.

설치

설치 블록의 방법 중 아무것이나 사용하십시오. 모두 작성자 자신의 마켓플레이스에서 바로 설치합니다. 그런 다음 아무 세션에서나 /arcade를 실행하십시오. 이미 열려 있는 세션에 설치했다면 먼저 /reload-plugins를 실행하십시오.

$ install cc-arcade

Claude Code 2.1.287 이상 필요

작성자의 마켓플레이스에서 설치: sezaakgun/cc-arcade

  1. 1.Claude Code 안에서 한 줄로

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

    실행 중인 세션(v2.1.275 이상)에 붙여 넣으세요. Claude Code가 먼저 마켓플레이스 추가 여부를 묻습니다.

  2. 2.셸에서 설치

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

    그런 다음 이미 열려 있는 세션에서 /reload-plugins를 실행하세요.

  3. 3.설치하지 않고 사용해 보기

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

    한 세션에서만 모드를 불러옵니다. 설정에는 아무것도 추가되지 않습니다.

작동 방식

hooks/register.tsx는 훅 모듈입니다. /arcade를 등록하고, AbovePrompt 렌더 사이트에 선택기나 열린 보드를 그리고, 최고 점수와 펫을 $.store에 보관하며, turn.complete에서 열린 게임을 일시정지합니다. hooks/boards/ 아래의 각 보드는 Client 요소로 마운트되는 서피스 모듈로, 자체 프레임 시계, 키보드, 마우스를 가집니다. 게임 규칙은 hooks/games/에 순수 함수로 들어 있습니다. 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
})

이 훅은 await next(e)로 도구를 먼저 실행하게 한 뒤 그 결과를 바꾸지 않고 반환하므로, 호출을 막거나 바꾸는 일이 없습니다. hooks/games/pet.ts의 petEvent는 Bash 명령을 테스트 러너 목록(bun test, npm test, pytest, go test, cargo test 등) 및 git commit과 대조합니다. 펫은 매번 갱신하기 전에 저장소에서 다시 읽으므로, 여러 세션을 나란히 열어도 같은 펫을 키웁니다. 게임 한 판이 끝나면 보드가 surface.post로 점수를 보내고, ui.message 훅이 저장된 최고 점수보다 높으면 이를 저장합니다.

사용자 지정

모든 옵션은 /arcade로 다룹니다.

  • /arcade는 선택기를 열고, /arcade <game>은 게임 하나를 바로 엽니다.
  • /arcade random은 펫과 방금 한 게임을 제외한 아무 게임이나 고릅니다.
  • /arcade auto는 상황에 맞게 고릅니다. 지난 5분 안에 테스트 실행이 실패했다면 펫을, Claude가 1분 이상 작업했다면 더 긴 게임을, 작업 중이면 짧은 한 판을, 대기 중이면 2048이나 지뢰 찾기를 고릅니다.
  • /arcade list는 모든 게임과 최고 점수를 보여 줍니다.
  • /arcade colorblind는 Doom을 빨강과 초록의 대비에 의존하지 않는 팔레트로 바꾸며, 이 설정은 기억됩니다.
  • /arcade stop은 아케이드를 닫습니다.

권한 및 안전

저희는 실행하기 전에 플러그인이 불러오는 모든 파일을 읽었습니다. 플러그인은 네트워크 호출을 하지 않고, 명령을 실행하지 않으며, 파일을 읽거나 쓰지 않습니다. UI 변경은 프롬프트 위의 보드와 토스트에 해당합니다. 명령/도구 추가는 /arcade에 해당합니다. 데이터 저장은 최고 점수, 펫, 색각 이상 모드 설정에 해당하며, 모두 플러그인 자체의 $.store에 있습니다.

도구 호출 가로채기는 매처 없이 모든 tool.call을 훅하기 때문에 표시되며, 그래서 각 Bash 명령의 텍스트와 호출 실패 여부를 봅니다. 관찰만 합니다. 호출이 끝나기를 기다렸다가 결과를 그대로 반환하며, 명령 텍스트는 저장하지 않고 카운터만 저장합니다. claude plugin validate는 경고를 보고하지 않았습니다.

도구 호출 가로채기
Claude가 하는 모든 도구 호출을 볼 수 있고(tool.call / tool.check), 이를 차단하거나 변경할 수 있습니다.
UI 변경
Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
명령어/도구 추가
사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).
데이터 저장
플러그인 전용 저장소에 세션 간 데이터를 보관합니다($.store.*).

호환성 및 문제 해결

macOS에서 Claude Code 2.1.291로 검증했으며, 작성자의 bun test 단위 테스트 32개가 통과합니다. 이 테스트는 bun:test를 import하므로 claude plugin test로는 불러올 수 없습니다. claude -p, 데스크톱 앱, 모바일에서는 아무것도 그려지지 않습니다. 보드에는 대화형 터미널이 필요합니다.

  • /arcade가 알 수 없는 명령으로 나옵니다. README에 따르면 함수 훅이 켜져 있어야 합니다. ~/.claude/settings.json의 env 블록에 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1을 설정하고, /plugin에서 플러그인이 로드되었는지 확인하십시오.
  • 키 입력이 프롬프트로 갑니다. 먼저 보드를 클릭하십시오.
  • 클릭해도 반응이 없습니다. 터미널이 마우스 입력을 전달하지 않는 것입니다. /arcade <game>으로 게임을 열 수는 있지만, 클릭 없이는 보드가 키보드를 받을 수 없습니다.
  • 블록 대신 네모 상자가 보입니다. 박스 그리기 문자와 블록 문자를 지원하는 터미널 글꼴을 사용하십시오.

터미널이 높을수록 보드가 커집니다. 띠는 터미널 높이의 약 절반을 차지합니다.

자주 묻는 질문

cc-arcade에는 어떤 게임이 들어 있나요?
스네이크, 테트리스, Doom(이식판이 아닌 작은 레이캐스트 복도 슈팅 게임), 2048, 지뢰 찾기, Flappy, 컴퓨터와 하는 Pong, 타자 연습, Space Invaders입니다. Claude가 일할수록 자라는 펫도 있습니다.
키 입력이 게임 대신 프롬프트로 가는 이유는 무엇인가요?
보드는 클릭한 뒤에만 키보드를 받습니다. Esc를 누르면 키보드가 프롬프트로 돌아갑니다. 이 기능이 작동하려면 터미널이 마우스 클릭을 전달해야 합니다.
게임하다가 Claude의 답을 놓치지 않을까요?
아닙니다. 턴이 끝나면 열려 있는 게임이 일시정지되고, 상태 줄이 노란색으로 바뀌며 '● Claude is done'으로 시작합니다. 아무 키나 누르면 계속하고, Esc를 누르면 답을 읽으러 갈 수 있습니다.
게임을 하면 토큰이 쓰이나요?
아닙니다. 플러그인이 모든 클릭과 명령에 모델 호출 없이 직접 응답하며, 네트워크 호출도 하지 않습니다.
펫은 무엇을 보나요?
모든 도구 호출을 훅해 Bash 명령이 테스트 실행이나 git commit이었는지, 또는 Claude가 파일을 편집했는지 확인합니다. 플러그인 자체 저장소에는 카운터만 저장되며, 명령 텍스트·경로·프롬프트는 보관하지 않습니다.
Claude Code에서 실행 중인 도구 호출 카운터

도구 호출 카운터

Claude의 도구 호출을 턴별·세션별로 세어 스피너 옆에 표시하고, 상세 내역을 보는 /tally 명령을 추가합니다.

  • 스피너
  • 대화 기록
  • 상태 표시줄
  • 도구 호출 가로채기
  • UI 변경
  • 명령어/도구 추가

v2.1.291에서 테스트됨

Claude Code에서 실행 중인 완료 토스트

완료 토스트

긴 Claude 턴이 끝나면 "Done in 2m 14s" 토스트와 짧은 알림음을 내고, 데스크톱 알림도 선택적으로 보냅니다.

  • 토스트
  • 명령어 실행
  • UI 변경
  • 소리 재생

v2.1.291에서 테스트됨

더 보기: 타이머, 할 일, 스탠드업, 슬래시 명령.