새소식

300x250
AI/Claude

Claude Channels vs OpenClaw - 텔레그램으로 Claude Code 제어하기(Anthropic이 OpenClaw에 선전포고?)

  • -
728x90

안녕하세요! 갓대희 입니다.

 

2026년 3월 20일, Anthropic이 Claude Code v2.1.80Channels를 리서치 프리뷰로 추가했다. 이어서 v2.1.81에서 Permission Relay까지 더해졌다. 텔레그램이나 디스코드에서 메시지를 보내면 로컬에서 돌아가는 Claude Code 세션이 그 메시지를 받아 코드를 작성하고, 같은 채팅 앱으로 결과를 돌려준다.

커뮤니티에서는 이를 두고 "OpenClaw 킬러"라고 부른다. 이미 24만 7천+ 스타(3월 초 기준)를 찍은 오픈소스 프로젝트 OpenClaw가 개척한 영역에 Anthropic이 공식적?? 본격적?? 으로 뛰어든 것이다.

 

오늘은 이 두 가지를 직접 비교해보려 한다. 공식 문서 기반으로 아키텍처, 보안, 셋업, 지원 플랫폼과 관련된 내용을 알아보자. 

목차

  1. Channels란 무엇인가
    • Channel = MCP 서버
    • Push vs Pull 패러다임
    • One-way vs Two-way 채널
  2. OpenClaw란 무엇인가
    • 탄생 배경과 성장
    • 서버 기반 Always-on 아키텍처
  3. 아키텍처 비교: 근본적인 차이
    • Channels: 로컬 MCP 이벤트 수신
    • OpenClaw: 서버 기반 상시 실행
    • 핵심 차이점 비교표
  4. 보안 비교
    • Channels: Pairing Code + Allowlist
    • OpenClaw: 커뮤니티 기반 + 보안 이슈
    • 보안 비교표
  5. 지원 플랫폼 비교
  6. Channels 셋업 가이드
    • 요구사항
    • Telegram 설정 (5분)
    • Discord 설정 (10분)
    • Fakechat으로 로컬 테스트
  7. 커스텀 채널 만들기
    • Webhook Receiver 예제
  8. 실전 사용 사례
    • MacStories의 런치 나이트 테스트
    • Permission Relay: 원격 승인
  9. 제한사항과 주의사항
  10. 커뮤니티 반응과 실전 팁
    • 개발자 반응 하이라이트
    • 실전 팁 7가지
    • 커뮤니티 프로젝트
  11. 결론: 어떤 것을 선택할까

 

1. Channels란 무엇인가

Claude Code Channels는 2026년 3월 20일 v2.1.80에서 리서치 프리뷰로 출시되었고, 이어서 v2.1.81에서 Permission Relay가 추가된 Anthropic 공식 기능이다. 핵심은 간단하다 — 외부 시스템의 이벤트를 실행 중인 Claude Code 세션에 밀어 넣는 것이다.

(출처: Claude Code GitHub Releases — v2.1.80 changelog: "Added --channels (research preview)", v2.1.81 changelog: "Added --channels permission relay")

(출처: Channels reference - Claude Code Docs)

 

 

Channel = MCP 서버

Channel의 정체는 MCP(Model Context Protocol) 서버다. MCP는 외부 도구와 데이터 소스를 LLM에 구조적으로 연결하기 위한 오픈 표준 프로토콜이다. Claude Code와 같은 머신에서 실행되며, stdio를 통해 통신한다. Claude Code가 이 서버를 서브프로세스로 스폰하고, 채널은 외부 시스템과 Claude Code 세션 사이의 다리 역할을 한다.

공식 문서의 정의를 그대로 옮기면:

"A channel is an MCP server that pushes events into a Claude Code session so Claude can react to things happening outside the terminal."
(Channel은 MCP server로, Claude Code session 안으로 event를 push해서 terminal 바깥에서 일어나는 일에도 Claude가 반응할 수 있게 해주는 기능입니다.)

채널 서버가 되기 위해 필요한 세 가지 조건:

  1. claude/channel capability를 선언하여 Claude Code가 알림 리스너를 등록하게 한다
  2. notifications/claude/channel 이벤트를 발생시킨다
  3. stdio 트랜스포트로 연결한다 (Claude Code가 서브프로세스로 스폰)

 

ex) 공식 문서 내용 캡쳐

(출처:  Channels reference - Claude Code Docs )

 

 

Push vs Pull — 아키텍처의 핵심 차이

일반 MCP 서버는 수동적(Pull)이다. Claude가 "이 도구 써" 하고 호출할 때까지 가만히 있다.

Channel은 이 관계를 뒤집는다(Push). 외부 이벤트가 발생하는 순간 — 텔레그램 메시지가 도착하든, CI 빌드가 실패하든, Datadog 알림이 울리든 — 즉시 Claude Code 세션에 밀어 넣는다.

이것이 왜 중요한가

기존: 터미널에 앉아서 프롬프트 입력 → Claude 응답 → 터미널 닫으면 끝.
Channels: Claude Code가 백그라운드에서 실행. 외부 이벤트가 도착. Claude가 프로젝트 컨텍스트를 유지한 채 처리. 터미널 앞에 앉아 있을 필요 없음.

 

One-way vs Two-way 채널

Channels는 두 가지 모드를 지원한다:

유형 동작 사용 예시
One-way 외부 → Claude로 이벤트 전달만. 응답 없음. CI 실패 알림, 모니터링 경보, Webhook
Two-way 외부 → Claude + Claude → 외부 (reply tool) 텔레그램/디스코드 채팅, 원격 코드 리뷰

Two-way 채널은 reply tool을 노출하여 Claude가 같은 플랫폼으로 메시지를 보낼 수 있게 한다. 여기에 더해, 신뢰된 채널은 permission relay를 통해 도구 사용 승인/거부를 원격에서 할 수 있다.

(출처: Channels reference - Claude Code Docs)

Boris Cherny (Head of Claude Code)의 발표

Channels를 발표한 Boris Cherny(Anthropic, Head of Claude Code)는 Threads에서 다음과 같이 소개했다:
"We just released Claude Code channels in research preview. It allows you to control your Claude Code session through select MCPs, starting with Telegram and Discord."
(Claude는 이제 research preview 단계의 Claude Code channels를 공개했으며, 이를 통해 Telegram이나 Discord 같은 일부 MCP를 이용해 Claude Code 세션을 외부에서 제어할 수 있게 되었습니다.)

커뮤니티에서는 Channels를 Remote Control의 개발자 중심 대응물로 해석하고 있다. Remote Control이 세련된 모바일 UI를 제공한다면, Channels는 개발자가 MCP 프로토콜을 통해 원하는 시스템을 직접 연결할 수 있는 구조다.
(출처: Boris Cherny Threads, 2026-03-20)

 

2. OpenClaw란 무엇인가

 - OpenClaw는 최대한 간단히 설명하고 넘어간다. 

 

탄생 배경과 성장

OpenClaw는 오스트리아 개발자 Peter Steinberger가 만든 오픈소스 AI 에이전트다.

2025년 11월에 Clawdbot이라는 이름으로 처음 공개되었고, Anthropic의 상표 문제로 2026년 1월 27일 Moltbot으로 개명, 약 2일 뒤인 1월 29일 OpenClaw로 최종 변경했다.

GitHub에서 24만 7천+ 스타(3월 초 기준), 4만 7천 포크를 기록하며 폭발적으로 성장했다.

메시징 플랫폼을 통해 LLM 에이전트와 상호작용하는 패턴을 대중화한 프로젝트다. 2026년 2월, Steinberger는 OpenAI에 합류했다.

(출처: OpenClaw - Wikipedia, Fortune)

 

서버 기반 Always-on 아키텍처

OpenClaw의 핵심 차별점은 서버에서 상시 실행된다는 점이다.

아키텍처는 Gateway(클라우드 컨트롤 플레인) + Node(로컬 디바이스)의 하이브리드 구조다.

일반적으로는 EC2/VPS에 Gateway를 띄워 24시간 운영하지만, 로컬에서도 실행할 수 있다. 로컬 PC가 꺼져 있어도 서버 Gateway가 살아있으면 텔레그램 메시지를 보내 작업을 시킬 수 있다.

지원 플랫폼도 압도적이다:

  • WhatsApp, Telegram, Discord, Slack, Signal, iMessage
  • Google Chat, Microsoft Teams, Matrix, Twitch, Zalo, WebChat

다만 이 자유도는 양날의 검이다. OpenClaw 메인테이너 중 한 명은 이렇게 경고했다:

"If you can't understand how to run a command line, this is far too dangerous of a project for you to use safely."
(command line 실행 방법조차 잘 모른다면, 이 프로젝트를 안전하게 다루기에는 위험성이 너무 큽니다.)

그리고 이 경고는 과장이 아니었다. 실제로 심각한 보안 사고들이 연이어 발생했다.

⚠️ OpenClaw 보안 사고 타임라인
  • CVE-2026-25253 (CVSS 8.8): URL 파라미터 인젝션을 통한 1-click RCE. Control UI가 쿼리 스트링의 gatewayUrl을 검증 없이 수용하여, 악성 링크 클릭만으로 WebSocket 연결 시 인증 토큰이 공격자 서버로 전송됨. 에이전트 전체 제어 가능. v2026.1.29에서 패치됨. (출처: SOCRadar)
  • 42,000~135,000+ 공개 노출 인스턴스: 독립 보안 연구원 Maor Dayan이 약 42,000개, SecurityScorecard STRIKE 팀이 135,000+개의 공개 노출 인스턴스를 각각 발견했다. (출처: CrowdStrike 종합 리포트)
  • ClawHub 악성 스킬: Koi Security가 "ClawHavoc" 캠페인을 처음 발견(2,857개 중 341개 악성), 이후 Bitdefender 감사에서 10,700+개 스킬 중 824+개가 악성으로 판명됨. (출처: AuthMind, Koi Security, Bitdefender)
  • Moltbook 데이터 유출: 연관 소셜 네트워크에서 약 3.5만 개 이메일, 150만 개 API 키/에이전트 토큰, 475만 건의 레코드가 유출됨. (출처: Wiz Blog)
  • macOS 스틸러 배포: Trend Micro가 악성 OpenClaw 스킬을 통한 Atomic macOS Stealer 배포를 발견. (출처: Trend Micro)

이 상황에 대응하여 보안 강화 프로젝트들이 등장했다:

  • NVIDIA NemoClaw: GTC 2026(3/16)에서 발표. OpenShell + K3s 컨테이너 샌드박스 + 정책 엔진으로 OpenClaw를 래핑 (출처: TNW)
  • ComposioHQ/secure-openclaw: API 키와 OAuth 토큰을 Composio 인프라로 관리, 평문 저장 방지
  • HKUDS/nanobot: 43만줄 → 4천줄로 축소한 경량 대안. 공격 표면 자체를 줄이는 접근

 

3. 아키텍처 비교: 근본적인 차이

겉보기에는 둘 다 "채팅 앱에서 AI 에이전트를 제어"하는 것이지만, 내부 아키텍처는 근본적으로 다르다.

 

Channels: 로컬 MCP 이벤트 수신 모델

Channels의 데이터 흐름을 도식화하면 이렇다:

📱 Phone (Telegram/Discord)
     ↓ 메시지 전송
☁️  Bot API (Telegram/Discord 서버)
     ↑ 로컬 플러그인이 이벤트 수신 (Telegram: long-polling / Discord: WebSocket)
💻 Local MCP Plugin (Bun 프로세스, 내 머신에서 실행)
     ↓ <channel> 이벤트로 래핑
🤖 Claude Code 세션 (로컬 터미널)
     ↓ 코드 실행, 파일 수정
     ↓ reply tool 호출
💻 Local MCP Plugin → ☁️ Bot API → 📱 결과가 폰에 표시

주요 포인트:

  • 모든 것이 로컬에서 실행된다. MCP 플러그인은 내 머신에서 돌아가며, Bot API에서 이벤트를 수신한다(Telegram은 long-polling, Discord은 WebSocket Gateway 사용).
  • 인바운드 포트가 없다. 내 머신으로 들어오는 연결은 없다. 외부에 노출되는 것은 아무것도 없다.
  • 세션 의존적이다. Claude Code 세션이 종료되면 채널도 함께 종료된다.

 

OpenClaw: 서버 기반 상시 실행 모델

📱 Phone (WhatsApp/Telegram/Discord/Signal/iMessage...)
     ↓ 메시지 전송
☁️  메시징 플랫폼 API
     ↓
🖥️  OpenClaw 서버 (EC2/VPS/Docker — 24시간 실행)
     ↓ LLM API 호출 (Claude, GPT 등)
☁️  AI Provider API
     ↓ 응답
🖥️  OpenClaw 서버 → 메시징 플랫폼 → 📱 결과 표시

핵심 포인트:

  • 서버에서 독립적으로 실행된다. 내 PC가 꺼져 있어도 서버가 살아있으면 동작한다.
  • 다양한 LLM을 지원한다. Claude뿐 아니라 GPT, 기타 LLM도 연결 가능하다.
  • 로컬 파일 시스템에 직접 접근하지 않는다. 서버의 파일 시스템에 접근한다.

 

핵심 차이점 비교표

항목 Claude Code Channels OpenClaw
실행 위치 로컬 머신 (내 PC/Mac) 서버 (EC2, VPS, Docker)
세션 유지 Claude Code 세션 종료 시 함께 종료 서버가 살아있는 한 24/7 상시 실행
기반 기술 MCP 프로토콜 (stdio) 독자 아키텍처 + LLM API
로컬 파일 접근 내 PC의 프로젝트 파일 직접 접근 서버의 파일 시스템만 접근
지원 LLM Claude만 Claude, GPT, 기타 LLM
인바운드 포트 없음 (아웃바운드 연결만) 서버 설정에 따라 다름
제공자 Anthropic 공식 커뮤니티 오픈소스
필요 구독 Pro/Max (claude.ai 로그인 필수) 각 LLM의 API 키
비용 참고

Channels: Claude Pro($20/월) 또는 Max($100~200/월, 5x/20x 티어) 구독이 필요하다. 추가 서버 비용은 없지만, 구독료가 고정 비용으로 발생한다.
OpenClaw: 소프트웨어 자체는 무료 오픈소스다. 다만 사용하려는 LLM의 API 키 비용(사용량 기반)과, 24시간 운영 시 서버 호스팅 비용(EC2/VPS 등)이 별도로 발생한다.

 

Channels 플러그인이 Claude에게 제공하는 도구

텔레그램과 디스코드 플러그인이 Claude에게 노출하는 도구가 다르다. 디스코드가 더 풍부하다:

도구 Telegram Discord 설명
reply O O 메시지 전송. 파일 첨부 가능 (Telegram 50MB, Discord 25MB — 각 플랫폼 Bot API 제한 기준)
react O O 이모지 리액션 추가
edit_message O O 봇이 보낸 메시지 수정 ("작업 중..." → 결과)
fetch_messages X O 최근 메시지 히스토리 조회 (최대 100건)
download_attachment X v 첨부 파일 다운로드 → ~/.claude/channels/discord/inbox/

차이점 : Telegram Bot API는 메시지 히스토리와 검색을 제공하지 않는다. 디스코드는 fetch_messages로 과거 메시지를 조회할 수 있다.

(출처: claude-plugins-official GitHub README)

한 줄 요약

Channels는 "내 PC에서 실행 중인 Claude Code를 원격 제어"하는 것이고, OpenClaw는 "클라우드 서버의 AI 에이전트를 메시징으로 제어"하는 것이다. 근본적으로 다른 접근이다.

 

4. 보안 비교

보안은 이 두 가지를 비교할 때 가장 큰 차이가 나는 영역이다.

 

Channels: Pairing Code + Allowlist + Localhost

Channels는 보안을 여러 단계로 나눠 적용한다:

  • Pairing Code 인증: 텔레그램/디스코드에서 봇에게 메시지를 보내면 페어링 코드가 발급된다. 이 코드를 Claude Code에 입력해야 연결이 완료된다. 봇은 페어링된 유저 ID의 메시지만 처리하고, 같은 디스코드 서버의 다른 사용자 메시지는 무시한다.
  • Allowlist 기반 플러그인: 리서치 프리뷰 기간에는 Anthropic이 승인한 플러그인만 사용 가능하다. 커스텀 채널은 --dangerously-load-development-channels 플래그가 필요하다.
  • Localhost 전용: 인바운드 포트가 없다. 모든 통신은 로컬 플러그인에서 외부 API로의 아웃바운드 연결이다.
  • Sender Allowlist 기반 발신자 검증: 비인가 사용자의 메시지 전송을 차단하는 발신자 허용 목록(allowlist) 메커니즘이 내장되어 있다. (단, 인가된 사용자의 메시지 내 프롬프트 인젝션까지 방지하지는 않는다.)
  • Permission Relay: 도구 사용 승인을 원격 채널로 전달하여, 텔레그램에서 파일 쓰기/명령 실행을 승인/거부할 수 있다.

(출처: Channels reference - Claude Code Docs)

 

OpenClaw: 자유도 높지만 보안은 직접 관리

OpenClaw는 커뮤니티 오픈소스답게 자유도가 높지만, 보안 사고도 발생했다:

Cisco AI 보안팀 발견

Cisco의 AI 보안 연구팀이 서드파티 OpenClaw 스킬을 테스트한 결과, 사용자 모르게 데이터 유출(data exfiltration)과 프롬프트 인젝션이 수행되는 것을 발견했다.
이는 서드파티 스킬 생태계의 검증 체계가 상대적으로 느슨한 점이 한 원인으로 보인다. Cisco 보고서 자체는 OpenClaw 스킬의 취약점에 초점을 맞추고 있으며, 다른 플랫폼과의 직접 비교는 포함하지 않았다.

이 문제에 대응하여 secure-openclaw (ComposioHQ) 같은 보안 강화 포크가 등장했다. 하지만 근본적으로 "취미 프로젝트에서 동작하는 것"과 "엔터프라이즈 보안 리뷰를 통과하는 것"의 차이는 아키텍처 설계 레벨에서 발생한다.

 

보안 비교표

보안 항목 Channels OpenClaw
인증 Pairing Code + 유저 ID 잠금 User ID 기반 인증 지원. 추가로 API 키, OAuth 등 다양한 방식 설정 가능 (직접 관리)
플러그인/스킬 검증 Anthropic 공식 Allowlist (리서치 프리뷰 기간) 커뮤니티 기반. Cisco Skill Scanner 등 서드파티 검증 도구가 등장했으나, 공식 검증 체계는 없음
네트워크 노출 인바운드 포트 없음 (localhost만) 서버 포트 노출 가능. 리버스 프록시 + 방화벽으로 완화 가능하나 설정은 사용자 몫
프롬프트 인젝션 대응 Sender allowlist 기반 발신자 검증 내장 기본 내장 기능은 없으나, Cisco Skill Scanner 등 외부 도구로 스킬 사전 검사 가능
보안 업데이트 Anthropic 공식 업데이트 커뮤니티 주도 (CVE 패치는 비교적 빠르게 대응 — CVE-2026-25253은 며칠 내 패치됨)
권한 제어 Permission Relay (원격 승인/거부) 역할 기반 권한 설정 가능. 세밀도는 설정에 따라 다름
엔터프라이즈 Team/Enterprise 관리자 제어 가능 공식 엔터프라이즈 지원 없음. NVIDIA NemoClaw 등 서드파티 엔터프라이즈 래퍼 존재

 

5. 지원 플랫폼 비교(현 시점 3월 24일 기준)

플랫폼 Channels OpenClaw
Telegram O O
Discord O O
WhatsApp X O
Slack X (별도 Slack 연동 존재) O
Signal X O
iMessage X O
Microsoft Teams X O
Google Chat X O
Matrix X O
Fakechat (로컬 테스트) O X
커스텀 채널/Webhook O (MCP 서버로 직접 구축) O (스킬/플러그인)
플랫폼 수만 보면 OpenClaw가 압도적

하지만 Channels는 플러그인 아키텍처로 설계되어 있어 구조적으로 확장 가능하다.
단, 리서치 프리뷰 기간에는 --channels 플래그가 Anthropic이 관리하는 허용 목록의 공식 플러그인(Telegram, Discord, Fakechat)만 수락한다. 직접 만든 커스텀 채널은 --dangerously-load-development-channels 플래그로만 테스트 가능하다. 참고로 카카오톡은 두 도구 모두 공식적으로 미지원이다. (computer use 등을 활용해서 보낼순 있겠지만 .. )

 

6. Channels 셋업 가이드

요구사항

필수 조건
  • Claude Code v2.1.80 이상
  • claude.ai 로그인 필수 (API 키 인증은 지원하지 않음)
  • Bun 런타임 설치 (프리빌트 플러그인이 Bun 기반, 커스텀 채널은 Node/Deno도 가능) — 미설치 시: curl -fsSL https://bun.sh/install | bash
  • Pro 또는 Max 구독
  • Team/Enterprise는 관리자가 channelsEnabled를 명시적으로 활성화해야 함

(출처: Channels reference - Claude Code Docs)

 

Telegram 설정

Step 1: Telegram 앱 열기 (모바일/데스크톱 모두 가능)

Step 2: 상단 검색창에 @BotFather 검색 → 클릭해서 채팅 시작

 

Step 3: 채팅창에 /newbot 입력 후 전송

Step 4: BotFather가 질문하면 답변 입력

• "봇 이름?" → My claude_code_bot (자유롭게)

• "봇 username?" → my_claude_code_bot (반드시 bot으로 끝나야 함)

Step 5: 토큰 발급 완료! (채팅으로 토큰이 표시됨)

 

Step 2. Claude Code에서 플러그인을 설치한다:

# Telegram 플러그인 설치
/plugin install telegram@claude-plugins-official

# "plugin not found" 오류가 나면 마켓플레이스를 추가/갱신 후 재시도
/plugin marketplace add anthropics/claude-plugins-official   # 마켓플레이스가 없는 경우
/plugin marketplace update claude-plugins-official           # 이미 있지만 오래된 경우

# claude code를 재기동 하자.

# BotFather에서 받은 토큰으로 설정
/telegram:configure <YOUR_BOT_TOKEN>

# 설치 후 반드시 실행 — configure 커맨드를 활성화한다
/reload-plugins

/plugin install telegram@claude-plugins-official

이후 난 claude code 세션을 종료하고 다시 시작하였다.  이후 다음 명령어로 설정

/telegram:configure <YOUR_BOT_TOKEN>

 

Step 3. Channels 플래그로 Claude Code를 시작한다:

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

ex)

 

Step 4. Telegram에서 봇에게 아무 메시지나 보내면 페어링 코드가 발급된다. Claude Code에서 다음 커맨드로 연결을 완료하고, 즉시 allowlist 모드로 전환해 다른 사람의 접근을 차단한다:

# 페어링 코드로 내 계정을 봇에 연결
/telegram:access pair <code>

# 보안: 즉시 allowlist 모드로 전환 (본인 외 접근 차단)
/telegram:access policy allowlist
팁: 파일 첨부 지원

텔레그램에서 Claude Code로 이미지를 보낼 수 있다 — 모바일 앱 디버깅 중 스크린샷을 보내는 용도로 유용하다. 반대로 Claude도 파일을 텔레그램으로 보낼 수 있으며, 이미지는 인라인 렌더링, 기타 파일은 문서로 전송된다 (파일당 50MB 제한 — Telegram Bot API 기준).

ex) /mybots > 여러가지 봇들중 방금 추가한 봇 클릭 > @방금만든봇 클릭

 - /start 입력 또는 클릭 > 아무말이나 걸면 pair 코드를 발급해 준다. 

 - 상기 명령어를 그대로 복사하여 붙여넣으면 알아서 세팅을 진행한다.

 - 페어링 완료. 바로 테스트 해보자.

 - 텔레그램에서 먼저 인사를 해보자. 방가 방가 / 답변이 오는것을 볼 수 있다.

  - 내 PC의 claude code로 돌아가봐도 양쪽으로 메세지가 오가는 모습, 즉 연결된것을 볼 수 있다.

 

Discord 설정

Step 1. Discord Developer Portal에서 New Application 클릭. 이름 설정 후 Bot 메뉴에서 토큰 생성. Privileged Gateway Intents에서 Message Content Intent를 반드시 활성화한다 — 이것 없이는 봇이 메시지 내용을 읽을 수 없다.

 

Step 2. OAuth2 > URL Generator에서 bot 스코프를 선택하고 필요한 권한을 설정한다:

  • View Channels, Send Messages, Send Messages in Threads
  • Read Message History, Attach Files, Add Reactions

생성된 URL로 봇을 서버에 초대한다.

 

Step 3. Claude Code에서 설치 및 설정:

# Discord 플러그인 설치
/plugin install discord@claude-plugins-official

# "plugin not found" 오류가 나면 마켓플레이스를 추가/갱신 후 재시도
/plugin marketplace add anthropics/claude-plugins-official   # 마켓플레이스가 없는 경우
/plugin marketplace update claude-plugins-official           # 이미 있지만 오래된 경우

# 설치 후 반드시 실행 — configure 커맨드를 활성화한다
/reload-plugins

# 봇 토큰 설정
/discord:configure <YOUR_BOT_TOKEN>

# Channels 플래그로 시작
claude --channels plugin:discord@claude-plugins-official

 

Step 4. Discord에서 봇에게 DM을 보내면 페어링 코드가 발급된다. Claude Code에서 다음 커맨드로 연결을 완료하고 즉시 allowlist 모드로 전환한다:

# 페어링 코드로 내 계정을 봇에 연결
/discord:access pair <code>

# 보안: 즉시 allowlist 모드로 전환 (같은 서버의 다른 사용자 접근 차단)
/discord:access policy allowlist

 

Fakechat으로 로컬 테스트

외부 서비스 없이 채널 아키텍처를 테스트하고 싶다면 Fakechat을 사용한다. Anthropic이 공식 제공하는 localhost 데모 채널이다.

/plugin install fakechat@claude-plugins-official
claude --channels plugin:fakechat@claude-plugins-official

브라우저에서 http://localhost:8787에 채팅 UI가 열린다. 메시지를 입력하면 Claude Code 세션에 도착하고, Claude가 응답하면 브라우저에 표시된다. 인증도, 외부 서비스도, API 키도 필요 없다.

추천: Fakechat으로 먼저 이해하기

이벤트 흐름을 이해한 뒤에 Telegram이나 Discord로 전환하는 것을 권장한다. Fakechat으로 <channel> 태그가 어떻게 생성되고, reply tool이 어떻게 동작하는지 먼저 체험할 수 있다.

(출처: DEV.to - Claude Code Channels: How Anthropic Built a Two-Way Bridge)

 

7. 커스텀 채널 만들기

Channels의 유용한 점은 직접 채널을 만들 수 있다는 점에 있다.

CI 파이프라인, 모니터링 시스템, 커스텀 Webhook 등을 Claude Code 세션에 연결할 수 있다.

 

Webhook Receiver 예제

공식 문서의 예제를 기반으로, HTTP POST를 받아 Claude Code 세션에 전달하는 최소 채널 서버를 만들어 본다. 먼저 프로젝트를 세팅한다:

mkdir webhook-channel && cd webhook-channel
bun add @modelcontextprotocol/sdk
// webhook.ts — 전체 채널 서버 (Bun)
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

// MCP 서버 생성 + 채널 capability 선언
const mcp = new Server(
  { name: 'webhook', version: '0.0.1' },
  {
    // 이 키가 채널의 핵심 — Claude Code가 알림 리스너를 등록한다
    capabilities: { experimental: { 'claude/channel': {} } },
    // Claude의 시스템 프롬프트에 추가되어 이벤트 처리 방법을 안내
    instructions: 'Events from the webhook channel arrive as <channel source="webhook" ...>. Read them and act, no reply expected.'
  }
);

// stdio로 Claude Code에 연결
await mcp.connect(new StdioServerTransport());

// HTTP 서버 — POST를 받아 Claude에 전달
Bun.serve({
  port: 8788,
  hostname: '127.0.0.1', // localhost 전용
  async fetch(req) {
    const body = await req.text();
    await mcp.notification({
      method: 'notifications/claude/channel',
      params: {
        content: body,
        meta: { path: new URL(req.url).pathname, method: req.method }
        // ⚠️ meta 키에 하이픈(-) 포함 시 Claude Code가 자동으로 무시함
        // 예: 'content-type' → 사용 불가 / 'contentType' → 정상 작동
      }
    });
    return new Response('ok');
  }
});

 

MCP 설정 파일 (.mcp.json):

{
  "mcpServers": {
    "webhook": {
      "command": "bun",
      "args": ["./webhook.ts"]
    }
  }
}

 

테스트:

# 개발 채널 로딩 (리서치 프리뷰 기간 필수)
claude --dangerously-load-development-channels server:webhook

# 다른 터미널에서 CI 실패 시뮬레이션
curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"

Claude Code 세션에 이렇게 도착한다:

<channel source="webhook" path="/" method="POST">
  build failed on main: https://ci.example.com/run/1234
</channel>

Claude가 이 메시지를 받아 파일을 읽고, 명령을 실행하고, 빌드 실패를 분석하기 시작한다.

(출처: Channels reference - Claude Code Docs)

 

8. 활용 사례

MacStories의 런치 나이트 테스트

Channels의 실전 가능성을 가장 잘 보여준 것은 MacStories의 런치 나이트 리뷰다. 출시 당일, 터미널을 한 번도 건드리지 않고 아이폰의 텔레그램만으로 다음을 수행했다:

  • iOS 프로젝트 빌드 + 배포: xcodebuild로 iOS 앱을 빌드하고, 채팅 중이던 아이폰에 무선으로 배포
  • Readwise Reader CLI: "NPC" 태그가 붙은 83개 글 목록 수집
  • 팟캐스트 오디오 트랜스크립션: Claude Code 스킬로 오디오 변환 → 정리 → TXT, SRT, 마크다운 리포트를 아이폰으로 수신
중요: --dangerously-skip-permissions 트레이드오프

MacStories 테스트에서는 --dangerously-skip-permissions 플래그를 사용했다. 이 플래그 없이는 파일 쓰기, 명령 실행, 빌드 등 매 단계마다 터미널에서 권한 승인이 필요하다.

현재의 트레이드오프: 완전한 원격 제어 또는 권한 안전성. 둘 다는 아직 안 된다. Permission Relay 기능이 이 격차를 줄이는 방향이지만, 아직 초기 단계이다.

(출처: DEV.to - Channels 아키텍처 분석)

 

Permission Relay: 원격에서 도구 승인하기

Permission Relay는 --dangerously-skip-permissions의 대안이 될 수 있는 기능이다. 채널을 통해 도구 사용 승인 요청을 원격으로 전달한다:

  1. Claude가 파일 쓰기 등 권한이 필요한 도구를 호출하려 한다
  2. 승인 요청이 텔레그램/디스코드 채팅으로 전달된다
  3. 사용자가 채팅에서 승인/거부를 선택한다
  4. 결과가 Claude Code 세션에 전달되어 실행이 계속된다

이를 통해 터미널 앞에 앉아있지 않으면서도 권한 제어를 유지할 수 있다. 다만, 공식 문서에서 이 기능은 신뢰된 발신자 경로가 있는 채널에서만 작동하며, sender allowlist가 올바르게 설정되어야 한다고 명시하고 있다.

(출처: Channels reference - Claude Code Docs)

 

9. 제한사항과 주의사항

Channels의 제한사항

  • 세션 종료 시 비활성: Claude Code 세션이 종료되면 채널도 함께 종료된다. PC를 잠그거나 Claude Code를 닫으면 메시지를 받을 수 없다. 팁: tmuxscreen 안에서 claude --channels ...를 실행하면 터미널을 닫아도 세션이 유지된다.
  • 메시지 히스토리 없음 (Telegram): Telegram Bot API는 메시지 히스토리를 제공하지 않는다. 세션이 꺼져 있을 때 보낸 메시지는 유실된다.
  • 리서치 프리뷰: --channels 플래그 문법과 알림 프로토콜이 변경될 수 있다. 안정 릴리스 시점은 공식적으로 발표되지 않았다.
  • API 키 미지원: claude.ai 로그인만 지원한다. Console이나 API 키 인증으로는 사용할 수 없다.
  • 권한 관리: --dangerously-skip-permissions 없이는 매번 터미널에서 승인이 필요하다. Permission Relay가 대안이지만 아직 초기 단계다.

 

OpenClaw의 제한사항

  • 보안 직접 관리: 서드파티 스킬의 보안 검증이 사용자 책임이다. Cisco가 발견한 데이터 유출 사례처럼, 검증 없이 스킬을 설치하면 위험하다.
  • 서버 운영 비용: 24시간 실행을 위해 EC2/VPS 비용이 추가로 발생한다.
  • 설정 복잡도: 다양한 플랫폼 지원은 장점이지만, 초기 설정의 복잡도도 높다.
  • 로컬 프로젝트 접근 한계: 내 PC의 프로젝트 파일에 직접 접근할 수 없다. 서버에 코드를 배치해야 한다.

 

10. 커뮤니티 반응과 실전 팁

Channels 발표 직후, 개발자 커뮤니티의 반응은 폭발적이었다. 

 

개발자 반응 하이라이트

Ethan Mollick (와튼 교수, AI 인플루언서)

"Claude 팀이 OpenClaw 같은 것에서 배우고 이런 기능을 매일같이 출시할 수 있다는 것은, AI 기반 코딩 팀에게 매우 다른 소프트웨어 개발 프로세스가 가능하다는 강력한 논거다."

Boris Vagner (개발자)

"Claude Code는 지금 차원이 다르다. 어제 Dispatch를 세팅하고 폰에서 기능 추가, 업데이트 배포를 마찰 없이 해냈다. 2시간 전에 Discord + Telegram 채널이 나왔는데, 세팅하고 나니 정말 놀랍다."

Sarvesh Shrivastava (개발자)

"무슨 일이 일어난 건지 이해하겠는가 — 이제 텔레그램으로 Claude Code에 문자를 보내면, 내가 자리를 비운 사이에 컴퓨터가 작업을 하고 있고, 돌아오면 완성된 작업이 있다. 몇 주 전까지만 해도 AI 에이전트를 위해 Mac Mini를 24시간 돌려야 했는데."
흥미로운 관점 — Daniel San

"Claude Code Channels가 나왔다. 세션을 텔레그램/디스코드로 제어할 수 있다. 하지만 우리는 이미 앱과 Remote Control로 이걸 할 수 있었다. 그런데 왜 메시징 플랫폼인가? 이 플랫폼들이 완전히 다른 수준의 인터랙션을 열어주기 때문이다."

반면, 일본의 한 CEO는 좀 더 냉정한 평가를 내놓기도 했다:

"Claude Code Channels를 즉시 구현해봤다. Discord 연결까지 약 5분. 다만 Discord에서 다른 폴더를 실행할 수 없어서 Remote Control과 큰 차이를 느끼지 못했다." — Chaen (Digirise CEO)

 

커뮤니티에 기반의 팁

Tip 1. "Channels are not currently available" 오류 해결

~/.claude/settings.json에서 텔레메트리 관련 환경변수가 설정되어 있으면 Channels가 비활성화된다. 해결법:

# settings.json에서 DISABLE_TELEMETRY 환경변수를 완전히 제거해야 한다
# 값을 0으로 설정해도 동작하지 않는다 — 키 자체를 삭제해야 한다
jq 'del(.env.DISABLE_TELEMETRY)' ~/.claude/settings.json > /tmp/s.json && mv /tmp/s.json ~/.claude/settings.json

(출처: @janxin, X) ⚠️ 커뮤니티 팁이며 공식 문서 미확인. 적용 전 백업 권장 한다.

Tip 2. 응답 시간 기대치

커뮤니티 테스트 결과, 대략적인 응답 시간은 다음과 같다:

작업 유형 대략적 응답 시간
메시지 → Claude 반응 시작 약 3~5초
간단한 명령 (테스트 실행, 파일 확인) 10~30초
복잡한 작업 (빌드, 대규모 파일 작업) 수 분

⚠️ 이 수치는 커뮤니티 경험 기반의 추정이며, 네트워크 환경과 작업 복잡도에 따라 달라질 수 있다.

Tip 3. 토큰 사용량 주의

채널을 통한 모든 활동은 Claude Code 토큰 쿼터를 소비한다. Pro 플랜 사용자는 장시간 비동기 작업 시 일일 한도에 도달할 수 있으므로, 작업 범위를 특정 프로젝트 디렉토리로 제한하는 것이 좋다.

Tip 4. skip-permissions 보안 가이드

ShareUHack의 핸즈온 리뷰에 따르면: 모니터링 용도에는 기본 모드를, 자동 작업에는 --dangerously-skip-permissions를 사용하되 작업 범위를 특정 프로젝트 디렉토리로 제한할 것을 권장한다. "누가 메시지를 보내는가"는 보호하지만, "Claude가 메시지를 받은 후 무엇을 하는가"는 skip-permissions 모드에서 보호할 수 없다.

Tip 5. 텔레그램 + 디스코드 동시 사용

--channels 플래그에 플러그인을 공백으로 구분하면 두 채널을 동시에 실행할 수 있다:

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

각 채널은 독립적이다. 텔레그램 메시지에는 텔레그램으로, 디스코드 메시지에는 디스코드로 응답한다.

Tip 6. tmux 자동 재시작으로 세션 유지

세션이 크래시되더라도 자동으로 재시작되는 패턴:

# 크래시 시 5초 후 자동 재시작
tmux new -s claude-channels 'while true; do claude --channels plugin:telegram@claude-plugins-official; sleep 5; done'

# 나중에 다시 붙기
tmux attach -t claude-channels

"낮에 외출, 밤에 복귀" 패턴에 적합하다. 다만 진정한 24/7 데몬은 아니므로, 상시 실행이 필요하면 OpenClaw가 여전히 더 적합하다.

보안 필수: 페어링 직후 allowlist 모드로 전환 (섹션 6의 Step 4에서 이미 다룸)

페어링 모드에서는 봇에게 메시지를 보내는 누구나 페어링 코드를 받을 수 있다. 셋업 가이드(섹션 6)의 Step 4에서 이미 다뤘지만 다시 강조한다 — 페어링 직후 반드시 실행해야 한다:

/telegram:access policy allowlist
/discord:access policy allowlist

 

커뮤니티가 가장 원하는 기능

X와 Hacker News에서 반복적으로 등장하는 기능 요청:

  1. iMessage 지원 — 압도적 1위 요청. Apple 생태계 사용자의 숙원
  2. Slack 연동 — 이미 Claude Code에 별도 Slack 통합이 있지만, Channels 형태의 양방향 연동 요청
  3. 데몬화/영구 세션 — 세션 종료 없이 항시 실행되는 Channels 모드
  4. WhatsApp 통합 — OpenClaw 사용자들이 가장 아쉬워하는 플랫폼

 

Channels 위에 만들어진 커뮤니티 프로젝트

출시 며칠 만에 개발자들이 Channels API 위에 흥미로운 확장을 만들기 시작했다:

  • Agent HTTP: Channels를 HTTP API로 래핑하여, REST 호출로 Claude Code를 원격 제어하는 프로젝트 (HN)
  • Discord-to-tmux 브릿지: 디스코드 메시지를 tmux 세션과 연동. 권한 프롬프트를 디스코드로 전달하는 기능 포함 (HN, GitHub)
  • claude-hub: GitHub Webhook 서비스. PR과 이슈에서 @멘션으로 Claude Code가 코드 지원을 제공 (GitHub)
  • Codeman: Claude Code 세션을 WebUI로 관리. 권한 프롬프트 시 데스크톱 알림 지원 (GitHub)
전반적 분위기

대체로 긍정적. "폰에서 문자 보내면 집 컴퓨터가 코드를 짠다"는 패러다임에 대한 흥분이 지배적이다. 다만 "Remote Control과 큰 차이 없다"는 냉정한 시각과, 토큰 비용skip-permissions 보안 우려도 20% 정도 존재한다. "OpenClaw 킬러"라는 프레이밍은 화제가 되었지만, 20개 이상의 플랫폼 지원과 모델 유연성을 가진 OpenClaw의 장점을 지적하는 반론도 있다.

 

11. 결론: 어떤 것을 선택할까

Channels와 OpenClaw는 "채팅 앱으로 AI를 제어한다"는 같은 겉모습 아래 근본적으로 다른 철학을 품고 있다.

이런 사람에게 Channels가 맞다 OpenClaw가 맞다
사용 목적 로컬 프로젝트를 원격 제어하고 싶다 24시간 상시 AI 비서가 필요하다
보안 요구 공식 지원 + 관리형 보안이 중요하다 자유도와 커스터마이징이 중요하다
플랫폼 텔레그램/디스코드면 충분하다 WhatsApp, Signal 등 다양한 앱이 필요하다
인프라 추가 서버 없이 내 PC만 쓰고 싶다 서버를 운영할 수 있다
LLM 선택 Claude Code 생태계에 올인했다 여러 LLM을 혼합 사용한다
핵심 요약
  • Channels는 Anthropic 공식, MCP 기반, 로컬 실행, 높은 보안. 세션 의존적이지만 로컬 프로젝트에 직접 접근 가능.
  • OpenClaw는 오픈소스, 서버 기반, 20개+ 플랫폼, 24/7 상시 실행. 자유도 높지만 보안은 직접 관리.
  • 둘 다 리서치 프리뷰 / 초기 단계라는 점에서 "어떤 것이 절대적으로 낫다"고 단정하기는 이르다.
  • Channels의 플러그인 아키텍처는 향후 플랫폼 확장 가능성을 열어두고 있다.

개인적으로는 Claude Code를 주력으로 사용하는 개발자라면 Channels부터 시도해보는 것을 추천한다.

Fakechat으로 5분이면 체험할 수 있고, Telegram 설정도 5분이면 끝난다. 로컬 프로젝트에 직접 접근할 수 있다는 점이 실무에서는 결정적인 차이를 만든다.

 

반면 당장은 "다양한 메시징 플랫폼에서 접근해야 한다"라면 OpenClaw가 더 적합하다. 물론 보안 설정에 충분한 주의를 기울여야 한다.

커뮤니티 반응과 향후 전망

Channels 발표는 Hacker News에서 상위권에 올라 큰 관심을 모았다. "나도 지난주에 이걸 만들고 있었는데"라는 댓글이 다수 — 그만큼 수요가 컸다는 방증이다. 개발자들은 이미 Channels 위에 Agent HTTP(HTTP API 래퍼), Discord-to-tmux 브릿지 등 확장 프로젝트를 만들고 있다.
(출처: HN: Push events into a running session with channels)

Channels는 리서치 프리뷰 단계이며, Anthropic은 피드백을 기반으로 지원 플랫폼을 확장할 계획이다. OpenClaw가 개척한 "AI 에이전트를 메시징으로 제어"하는 패러다임이 이제 공식 제품으로 흡수되고 있다. 이 경쟁은 개발자 생태계 전체에 긍정적이다.

그런데 "OpenClaw 킬러"라는 말을 듣기엔 해당 기능으로만은 부족 하다.

 

Channels가 "메시징으로 Claude Code를 제어"하는 영역을 공략했다면, Anthropic에는 또 다른 카드가 있다 — Claude Computer Use. 텍스트 명령이 아니라 실제로 마우스를 클릭하고, 브라우저를 열고, GUI 앱을 조작하는 기능이다. OpenClaw가 "항상 켜진 메시징 에이전트"로 강점을 가진다면, Computer Use는 "화면을 직접 보는 에이전트"라는 전혀 다른 차원을 열어준다.

두 기능이 결합되면 — 텔레그램에서 명령을 보내고, Claude가 PC 화면을 조작하여 결과를 돌려주는 시나리오 — OpenClaw가 점령하던 영역이 상당 부분 대체될 수 있다. 이 주제는 다음 글에서 자세히 다룬다.

▶ 다음 글: Claude Computer Use 완전 정복 — 화면을 직접 제어하는 AI 에이전트

 

참고 자료

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.

💡 AI 관련 질문이 있나요? 눌러보세요!