Claude Code Channels, 터미널 밖에서 AI 에이전트를 제어하는 법

출퇴근 지하철에서 텔레그램으로 “어제 작업하던 API 리팩토링 마저 해줘”라고 보내면, 집에 켜둔 맥에서 Claude Code가 알아서 작업을 진행한다. 3월 20일 Anthropic이 리서치 프리뷰로 공개한 Claude Code Channels가 바로 이 시나리오를 현실로 만들었다.

어바웃코어랩 요약

  • Claude Code Channels는 텔레그램/디스코드를 통해 로컬 Claude Code 세션을 원격 제어하는 양방향 메시징 브릿지다
  • MCP 기반 3계층 보안 모델로 OpenClaw 대비 엔터프라이즈 환경에 적합하다
  • 단, 권한 프롬프트 원격 승인 불가와 2개 플랫폼 제한이 현 시점의 과제다

AI의 진짜 병목은 “지능”이 아니라 “접근성”이다

The Decoder는 이번 출시를 “지능이 아닌 가용성의 혁신”이라고 규정했다. 정확한 표현이다. Claude Code가 아무리 뛰어나도 터미널 앞에 앉아 있어야만 쓸 수 있다면, 그건 24시간 중 터미널 앞에 있는 몇 시간으로 활용이 제한된다는 뜻이다.

Channels는 이 제약을 깬다. 기존에 열려 있는 로컬 세션에 외부 이벤트를 주입(push)하는 구조라서, 새로운 클라우드 인스턴스를 띄우는 게 아니다. 내 맥에서 돌아가고 있는 그 세션, 프로젝트 컨텍스트와 파일 시스템 접근 권한이 살아 있는 그 세션을 텔레그램에서 조종한다.

이 접근이 흥미로운 이유는 또 있다. 같은 구조로 CI 파이프라인 실패 알림, Datadog 경보, 배포 결과 같은 시스템 이벤트도 Claude Code 세션으로 밀어넣을 수 있다. 채팅 브릿지는 시작일 뿐이다.

OpenClaw가 먼저 증명한 시장, Anthropic이 다르게 풀다

이 영역을 먼저 개척한 건 OpenClaw다. Peter Steinberger가 2025년 11월에 약 1시간 만에 만든 이 오픈소스 프로젝트는 GitHub 별 25만 개를 넘기며 폭발적으로 성장했다. 사용자들이 OpenClaw를 24시간 돌리려고 전용 Mac Mini를 사는 현상까지 생겼다.

Anthropic's new channels feature for Claude Code lets external events like CI results or chat messages flow directly into an active session, so Cla...
출처: Anthropic turns Claude Code into an always-on AI agent with new channels feature

그런데 2026년 2월, 문제가 터졌다. CVE-2026-25253이라는 치명적 원격 코드 실행(RCE) 취약점이 발견된 것이다. 악성 링크 하나를 클릭하면 공격자가 사용자의 인증 토큰을 탈취하고, WebSocket으로 로컬 인스턴스에 직접 접속해서 샌드박스를 우회하고 임의 명령을 실행할 수 있었다. 발견 시점에 인터넷에 노출된 OpenClaw 인스턴스 4만 개 이상 중 63%가 이 취약점에 노출되어 있었다(SonicWall).

Anthropic의 Channels는 이 보안 문제에 대해 구조적으로 다른 답을 내놓는다.

항목Claude Code ChannelsOpenClaw
보안 모델3계층 (발신자 허용목록 + 세션별 활성화 + 조직 관리)허용적 기본 설정, 보안은 사용자 책임
지원 플랫폼2개 (Telegram, Discord)7개+ (WhatsApp, iMessage, Slack 등)
모델Claude 전용모델 무관 (GPT-4, 로컬 모델 등)
비용$20-200/월 (Claude 구독)무료/오픈소스 (API 비용 별도)
확장 생태계플러그인 아키텍처, Anthropic 보안 검토5,700+ 커뮤니티 스킬

플랫폼 수만 보면 OpenClaw이 압도적이다. 하지만 보안이 중요한 팀 환경이라면 이야기가 달라진다. 특히 CVE-2026-25253 이후로 기업 환경에서 OpenClaw 도입을 재검토하는 움직임이 있다.

5분이면 끝나는 텔레그램 연결

실제 설정은 생각보다 단순하다. Anthropic 공식 문서 기준으로 텔레그램 연결을 정리하면 이렇다.

Use channels to push messages, alerts, and webhooks into your Claude Code session from an MCP server. Forward CI results, chat messages, and monito...
출처: Push events into a running session with channels – Claude Code Docs

사전 준비: Claude Code v2.1.80 이상, Bun 런타임, claude.ai 로그인

Bundle, install, and run JavaScript & TypeScript — all in Bun. Bun is a new JavaScript runtime with a native bundler, transpiler, task runner, and ...
출처: Bun — A fast all-in-one JavaScript runtime

1단계 — 텔레그램 봇 생성@BotFather에서 /newbot 명령으로 봇을 만들고 토큰을 받는다. 이 토큰은 비밀번호와 동일하게 취급해야 한다.

2단계 — 플러그인 설치 및 토큰 등록:

/plugin install telegram@claude-plugins-official
/telegram:configure <your-bot-token>

3단계 — Channels 모드로 재시작:

claude --channels plugin:telegram@claude-plugins-official

4단계 — 페어링 및 보안 설정: 텔레그램에서 봇에 메시지를 보내면 6자리 페어링 코드가 온다. Claude Code에서 승인한 뒤, 반드시 허용목록 모드로 전환한다.

/telegram:access pair <pairing-code>
/telegram:access policy allowlist

기본 페어링 모드에서는 봇에 메시지를 보내는 누구에게나 페어링 코드가 노출되므로, 허용목록 전환은 선택이 아니라 필수다.

한 가지 주의할 점이 있다. --channels 플래그는 매 세션마다 붙여야 한다. .mcp.json에 등록만 해놓으면 채널 메시지를 수신하지 않는다. 상시 운영이 필요하면 tmux나 screen 같은 영구 터미널에서 세션을 띄워두는 게 현실적이다.

보안은 잘 풀었지만, 권한 승인은 아직 숙제다

Channels의 3계층 보안 모델은 잘 설계되어 있다. 발신자 ID 기준 허용목록, 세션별 명시적 활성화, 조직 수준 관리자 제어까지 — 기업 환경에서 요구하는 수준을 갖췄다.

그런데 한 가지 빠진 퍼즐이 있다. Claude가 파일 쓰기나 명령 실행 같은 권한이 필요한 작업을 만나면 세션이 멈춘다. 텔레그램이나 디스코드에서 “승인” 버튼을 누를 수 없다. 선택지가 두 개뿐인데, 하나는 물리적으로 터미널 앞에 돌아가는 것이고, 다른 하나는 --dangerously-skip-permissions 플래그로 모든 권한을 열어버리는 것이다.

이름에 “dangerously”가 들어간 플래그를 쓰라니, 솔직히 좀 아이러니하다. 3계층 보안을 쌓아놓고 권한 승인에서 “전부 허용 아니면 직접 와라”는 이분법이 되어버리는 셈이다.

DEV Community의 비교 분석도 이 지점을 핵심 마찰점으로 꼽았다. 리서치 프리뷰 기간 동안 원격 권한 승인 메커니즘이 추가되지 않으면, 실무에서의 활용 범위가 상당히 제한될 수밖에 없다.

채팅 브릿지 너머의 가능성

Channels의 진짜 잠재력은 채팅 브릿지가 아니라 커스텀 Webhook 채널에 있다. MCP 표준 위에 구축된 아키텍처 덕분에, 어떤 시스템이든 HTTP POST로 Claude Code 세션에 이벤트를 밀어넣을 수 있다.

// CI 실패 알림을 Claude Code로 전달하는 Webhook 채널 예시
Bun.serve({
  port: 8788,
  hostname: '127.0.0.1',
  async fetch(req) {
    const body = await req.text()
    await mcp.notification({
      method: 'notifications/claude/channel',
      params: { content: body },
    })
    return new Response('ok')
  },
})

GitHub Actions 빌드가 실패하면 Claude Code가 자동으로 원인을 분석하고, PagerDuty 경보가 오면 관련 로그를 찾아 요약하는 식이다. 개발자가 별도로 구축해야 하지만, 플러그인으로 패키징해서 마켓플레이스에 배포할 수도 있다.

물론 이게 모든 문제의 정답은 아니다. 커스텀 채널은 --dangerously-load-development-channels 플래그가 필요한 리서치 프리뷰 상태이고, 공식 마켓플레이스에 올리려면 Anthropic 보안 검토를 받아야 한다. 생태계가 성숙하려면 시간이 걸린다.

누가 쓰면 좋을까

상황추천이유
보안이 중요한 팀/기업Claude Code Channels3계층 보안, 관리자 제어
다양한 플랫폼이 필요한 개인OpenClaw7개+ 플랫폼, 무료, 모델 무관
CI/CD 파이프라인 연동커스텀 Webhook 채널HTTP POST로 모든 시스템 연결
빠른 개념 검증Fakechat 데모외부 의존성 없이 localhost:8787 테스트

마무리

결국 Channels가 해결하려는 문제는 명확하다. AI 코딩 에이전트를 터미널에서 꺼내는 것이다. 보안 모델은 잘 설계했고, 아키텍처도 확장 가능하게 만들었다. 하지만 권한 승인 문제를 풀지 않으면 “터미널에서 꺼냈는데 결국 터미널로 돌아와야 하는” 어색한 상황이 반복될 수밖에 없다.

당장 시도해볼 수 있는 건 Fakechat 데모로 개념을 확인한 뒤, 텔레그램 봇을 5분 안에 세팅해서 직접 체험해보는 것이다. 리서치 프리뷰라 프로덕션에 바로 넣기엔 이르지만, AI 에이전트의 “가용성” 문제가 어떤 방향으로 풀리고 있는지 감을 잡기에는 충분하다.


참고 자료