클로드 코드 제한에 도달한 후 Gemini CLI 및 Codex용 텔레그램 브리지

발행: (2026년 3월 29일 AM 02:30 GMT+9)
7 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you’ve already provided) here? Once I have the article, I’ll translate it into Korean while preserving the original formatting, markdown, and any code blocks or URLs.

배경

Claude Code 사용 제한 때문에 불편한 깨달음을 얻게 되었습니다: 제가 의존하게 된 것은 단순히 모델이 아니라 워크플로우였습니다.
휴대폰으로 에이전트에게 작업을 보내고, 답변을 기다린 뒤, 책상에 없을 때 다음 단계를 보내는 것에 익숙해지면, 터미널만 사용하는 일반적인 사용 방식이 원시적으로 느껴집니다.

Claude Code Channels는 사이드 프로젝트 작업 방식을 바꾸어 놓았습니다. 카페에 있든, 밖을 걸어 다니든, 여행 중이든 텔레그램을 통해 레포를 진행할 수 있었습니다. 이는 개발의 전체적인 형태를 바꾸죠: “지금 앉아서 코딩해야 한다”는 생각을 멈추고 “지금 바로 다음 명령을 보내고 결과는 나중에 검토한다”는 식으로 생각하게 됩니다.

사용 제한에 도달했을 때, 저는 다른 챗봇을 원한 것이 아니라 그 루프를 다시 원했습니다. Gemini CLI와 Codex는 이미 제 머신에 있었지만, 동일한 원격, 비동기, 모바일 친화적인 상호작용 모델이 부족했습니다. 그래서 저는 작은 텔레그램 브리지를 만들었습니다.

디자인

The bridge is intentionally local‑first and minimal:

  • 로컬 Node.js 프로세스가 Telegram Bot API를 폴링합니다.
  • 특정 채팅으로부터 프롬프트를 받아들입니다.
  • 로컬 저장소에 대해 Gemini CLI 또는 Codex를 실행합니다.
  • stdoutstderr를 Telegram으로 다시 전송합니다.

호스팅된 백엔드도 없고, 추가적인 제어 평면도 없으며, Telegram과 저장소가 위치한 머신 사이에 미스터리 서비스도 없습니다. 이러한 단순성 덕분에 도구를 더 쉽게 검사하고, 신뢰하며, 디버그할 수 있습니다.

Source:

구현

저장소

  • codex-telegram-integration
  • gemini-telegram-integration_v2

두 저장소 모두 다음 위치에 공개되어 있습니다:

핵심 루프 (단순화)

// telegram-bridge.js
const { Bot } = require('node-telegram-bot-api');
const { exec } = require('child_process');

const bot = new Bot(process.env.TELEGRAM_TOKEN, { polling: true });

bot.on('message', (msg) => {
  const chatId = msg.chat.id;
  const prompt = msg.text;

  // Determine which tool to run (Gemini or Codex) based on command or context
  const command = buildCommand(prompt); // custom function

  const child = exec(command, { cwd: '/path/to/repo' });

  bot.sendChatAction(chatId, 'typing');

  let stdout = '';
  let stderr = '';

  child.stdout.on('data', (data) => { stdout += data; });
  child.stderr.on('data', (data) => { stderr += data; });

  child.on('close', (code) => {
    const response = formatOutput(stdout, stderr);
    bot.sendMessage(chatId, response, { parse_mode: 'Markdown' });
  });
});

세션 관리

  • /sessions – 현재 활성 세션 목록을 표시합니다.
  • /resume – 이전 세션을 재개합니다.
  • /reset-session – 현재 채팅의 컨텍스트를 초기화합니다.

이 명령어들은 여러 메시지에 걸쳐 어시스턴트의 컨텍스트를 유지해 주어, UX가 반복적인 설정 메시지와 불필요한 토큰 소모로 무너지는 것을 방지합니다.

편의 기능

  • 명령어 실행 중 타이핑 표시.
  • 원시 스택 트레이스를 출력하는 대신 정리된 오류 요약 제공.
  • 가독성을 위해 Markdown 스타일 파일 링크 정리.
  • 슬래시 명령어를 매번 입력할 필요 없이, 비명령어 메시지는 기본적으로 프롬프트로 처리됩니다.

제한 사항 및 고려 사항

  • 브리지는 Claude Code Channels를 정확히 재현하지 않으며, “휴대폰에서 프롬프트 전송 → 홈 머신이 작업 수행 → 나중에 유용한 답변 읽기”라는 핵심 루프를 복원합니다.
  • 모델 할당량은 여전히 적용되며, 특히 Gemini에 적용됩니다.
  • 파괴적인 작업(예: git commit, git push, 배포)은 추가 안전 검사를 거쳐야 합니다.
  • 실수로 오용되는 것을 방지하기 위해 브리지와 상호작용할 수 있는 텔레그램 채팅을 엄격히 제한하십시오.

Conclusion

이는 임시 방편이며 완성된 플랫폼은 아니지만, 실용적인 엔지니어링 접근 방식을 보여줍니다: 가볍고 로컬‑우선적인 텔레그램 브리지를 통해 누락된 기능을 즉시 복구할 수 있습니다. Claude Code Channels에 익숙해졌고 오늘날 Gemini CLI나 Codex용으로 비슷한 것이 필요하다면, 이와 같은 작은 브리지를 구축하는 것이 놀라울 정도로 효과적일 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

나는 한국 AI API를 만들었다

문제: 전 세계에 8천만 명이 넘는 한국어 사용자가 있으며, 수천 개의 기업이 한국어 텍스트를 처리해야 합니다—뉴스 모니터링, K‑content 번역, 마...