허리 통증 때문에 Claude Code를 위한 Telegram 브릿지를 만들었습니다
요약
허리 통증으로 인해 데스크 업무가 어려운 개발자를 위해 Claude Code 세션을 Telegram과 연결하는 cc-tg-hub를 개발했습니다. MCP와 UNIX 소켓을 활용하여 기존 방식과 달리 세션 소유권 문제 없이 병렬 세션 관리와 모바일 승인이 가능합니다.
핵심 포인트
- Claude Code 세션을 Telegram 포럼 토픽과 동기화
- UNIX 소켓 기반 브로커를 통해 다중 세션 병렬 실행 지원
- 모바일에서 권한 승인(Allow/Deny) 버튼으로 세션 중단 방지
- 양방향 사진 및 파일 전송 기능 제공
- research-preview 플래그 사용 필요
10년 전 이사를 하다가 L5-S1 디스크가 탈출했고, 그 과정에서 사고도 당했습니다. 그 후 9년 동안은 통증 없이 지냈죠. 그런데 2년 전 다시 문제가 생겼습니다... 책상 앞에 너무 오래 앉아 있고, 구부정한 자세를 취한 데다, 팔당 15kg 이상의 무게로 하루 3시간, 주 5일간의 고강도 운동을 병행했기 때문입니다. 제 머릿속에 무슨 생각이 들었던 건지 모르겠지만... 지금 저에게 도움이 되는 것은 움직임이지, 가만히 있는 것이 아닙니다. 가만히 앉아 있는 것은 제가 할 수 있는 최악의 일이며, 데스크 잡 (desk job)은 정확히 그 상태로 8시간을 보내는 것입니다. 그래서 저는 cc-tg-hub를 만들었습니다. 모든 Claude Code 세션은 휴대폰으로 채팅할 수 있는 Telegram 포럼 토픽이 됩니다. 다른 Telegram 브릿지들 (ccgram, ccbot 및 기타)과의 차이점은 다음과 같습니다: 그것들은 tmux 내부에서 Claude를 실행하고, 키 입력 주입 (keystroke injection) 방식으로 구동하며, 터미널 스크린샷을 다시 전송합니다. 즉, 봇이 사용자의 세션을 소유합니다. 제 방식은 그렇지 않습니다. 평소와 똑같이 본인의 터미널에서 claude를 시작하면, 세션 내부의 MCP가 UNIX 소켓을 통해 단일 브로커 데몬 (broker daemon)에 이를 등록합니다. TTY의 스크린샷 대신 구조화된 메시지를 사용하는 하나의 봇과 하나의 폴러 (poller)가 작동합니다. Anthropic의 공식 Telegram 플러그인은 봇당 하나의 세션만 브릿지할 수 있으며, 새로운 세션이 시작될 때마다 이전 폴러를 SIGTERM 합니다. 브로커는 바로 이 문제를 해결하기 위해 존재합니다. 브로커가 하는 일:
- 세션당 하나의 포럼 토픽이 병렬로 실행됩니다. 새로운 세션을 시작해도 기존 세션이 종료되지 않습니다.
- 토픽은 프로젝트별로 재사용되므로, 히스토리가 중단된 지점에 그대로 유지됩니다.
- 권한 승인 프롬프트가 휴대폰에서 ✅ 허용 (Allow) / ⛔️ 거부 (Deny) 버튼으로 전달되어, 자리를 비운 사이 세션이 멈춰버리는 현상을 방지합니다.
- 양방향 사진 및 파일 전송이 가능합니다.
- 일시정지 / 중지 / 이름 변경을 위한 선택적 미니 앱 (추가적인 가치를 더하기 위해 작업 중입니다).
주의: 인바운드(inbound) 기능을 사용하려면 research-preview 플래그 ( --dangerously-load-development-channels )가 필요합니다.
이것이 저에게 중요한 이유: 저는 밖으로 나가 걷거나, 친구들을 만나거나, 혹은 그냥 침대에 누워 허리를 쉬게 하면서도... 제 책임을 계속 다할 수 있습니다. 가끔 휴대폰으로 답장을 하면 작업이 계속 진행됩니다. 제 허리는 필요한 휴식을 취하면서도, 일은 계속 처리됩니다.
MIT, TypeScript/Bun: CC-Tg-Hub를 /u/PA100T0가 제출했습니다. [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기