업무 중간에 즐길 수 있도록 Claude에게 체스판을 만들어 줬습니다
I gave claude a chessboard so we can play in between work sessions
핵심 요약
Claude와 터미널에서 직접 체스를 둘 수 있는 오픈소스 프로젝트를 개발하여 공유했습니다.
- 체스 기능 구현 — 터미널에서 Claude와 직접 대국이 가능한 체스판 환경을 구축함
- 엔진 없는 플레이 — 별도의 체스 엔진 없이 Claude가 직접 수를 읽고 판단하도록 설계됨
- 재치 있는 대사 — Claude가 자신의 수를 설명하거나 실수를 자책하는 등 흥미로운 반응을 보임
- 오픈소스 공개 — npx 명령어로 로컬에서 바로 실행 가능한 MIT 라이선스 프로젝트임
심심해서 claude code한테 체스판을 쥐여줘 봤다. 평소에 일할 때 터미널에서 claude랑 붙어 사는데, 잠깐 머리 식힐 겸 딴짓 좀 할 방법이 없을까 싶더라고. 체스를 좋아하기도 하고, claude한테 체스판 던져주고 미니게임처럼 한 판 둔 다음에 다시 일 모드로 돌아오면 어떨까 궁금했거든.
세션에서 /chess라고 치면 브라우저에 체스판이 딱 뜨고, 방금까지 일하던 그 claude가 바로 내 상대가 되는 식이야.
내가 체스판에서 수를 두면, 서버가 chess.js를 써서 규칙에 맞는 수인지 확인해. 그다음에 FEN 표기법으로 변환해서 tmux 푸시나 일반 터미널의 롱폴링 방식으로 채팅창에 쏴주면 claude가 그걸 받아. 그럼 claude가 CLI로 응답하고 체스판이 업데이트되는 구조지.
뒤에 엔진 같은 건 하나도 없어. 스톡피시(Stockfish) 같은 거 전혀 없고, 그냥 claude가 직접 판 읽고 생각하는 거야. 이게 진짜 재밌는 게, 지가 둔 수에 대해서 나름대로 고민하고 설명까지 하더라고.
몇 가지 인상 깊었던 멘트들 좀 봐봐.
"Nxe4 — 공짜 폰이네. e4는 아무것도 지키고 있지 않았어. 캐슬링은 그럴싸해 보였지만, 결과적으로 폰을 그냥 내주는 꼴이 됐군."
퀸 따먹힐 뻔했을 때는 지가 알아서 실토하더라:
"솔직히 처음엔 c6랑 g4 폰을 동시에 노리는 화려한 Qd7을 생각했어. 근데 네 폰이 내 퀸을 그냥 잡아먹는다는 걸 뒤늦게 깨달았지. 큰일 날 뻔했네."
심리전도 걸어:
"h3 — 비숍한테 의중을 묻는 수야. f3에서 교환하면 나중에 판이 열렸을 때 내가 비숍 쌍을 가져가게 될 거고, 뒤로 빼면 그냥 턴 낭비하는 거지."
심지어 불리한 상황에서는 이런 시적인 소리도 함 ㅋㅋ:
"네 d6, f4, h7 폰들은 다 장기 입원 환자들이고, 내 기물들은 더 좋은 병실을 차지하고 있지."
원하면 실제 체스 시계도 쓸 수 있어(래피드나 클래식 모드 가능, 시간 초과로 패배 가능함). 무승부 제안, 기권, 무르기 기능도 다 있고. 완전 로컬에서 돌아가고 npx 명령어 하나면 끝이야. 라이선스는 MIT고. 체스판 자체는 상대가 누구든 상관없어서, 터미널 에이전트라면 누구든 저 자리에 앉힐 수 있어.
저장소: https://github.com/santiagoogaitnas/claude-chess
다들 써보고 의견 좀 알려줘!


