# 실행 중인 세션에 채널을 통해 이벤트 푸시하기

> Clean Markdown view of GeekNews topic #27708. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27708](https://news.hada.io/topic?id=27708)
- GeekNews Markdown: [https://news.hada.io/topic/27708.md](https://news.hada.io/topic/27708.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-21T20:33:34+09:00
- Updated: 2026-03-21T20:33:34+09:00
- Original source: [code.claude.com](https://code.claude.com/docs/en/channels)
- Points: 1
- Comments: 1

## Topic Body

- **Claude Code의 Channels**는 외부 시스템의 메시지나 웹훅을 **실행 중인 세션으로 직접 전달**해 Claude가 즉시 반응하도록 하는 기능
- **MCP 서버**를 통해 이벤트를 주고받으며, 세션이 열려 있는 동안만 이벤트가 도착하므로 **지속 실행 환경**이 필요
- **Telegram**과 **Discord**가 연구 프리뷰로 기본 지원되며, **claude.ai 로그인**이 필수이고 **API 키 인증은 불가**
- 각 채널은 **Bun 기반 플러그인** 형태로 제공되며, `fakechat`을 이용해 로컬 테스트 가능
- 이 기능은 **외부 이벤트를 로컬 세션으로 직접 연결**해 Slack, MCP, Remote Control 등 기존 기능의 공백을 메우는 역할

---

### 실행 중인 세션에 이벤트를 푸시하는 Channels 기능
- **Claude Code의 Channels**는 외부 시스템에서 발생한 메시지, 알림, 웹훅 등을 **실행 중인 세션으로 직접 전달**해 Claude가 즉시 반응하도록 하는 기능
- **MCP 서버**를 통해 이벤트를 전달하며, Claude는 이를 읽고 같은 채널을 통해 응답 가능
- 이벤트는 세션이 열려 있는 동안만 도착하므로, 지속적인 사용을 위해서는 **백그라운드 프로세스나 지속 터미널**에서 실행 필요
- **Telegram**과 **Discord**가 연구 프리뷰 단계에서 기본 지원되며, **claude.ai 로그인**이 필수
- **Console이나 API 키 인증은 지원되지 않음**, Team/Enterprise 조직은 관리자가 명시적으로 기능을 활성화해야 함

### 지원 채널
- 각 채널은 **Bun 기반 플러그인**으로 제공되며, `fakechat`을 통해 로컬에서 테스트 가능
- 지원 채널: **Telegram**, **Discord**
- ## Telegram 설정 절차
  - **BotFather**에서 `/newbot` 명령으로 봇 생성 후 토큰 복사
  - Claude Code에서 `/plugin install telegram@claude-plugins-official` 명령으로 플러그인 설치
  - `/telegram:configure &lt;token&gt;` 명령으로 토큰 설정
  - `claude --channels plugin:telegram@claude-plugins-official` 명령으로 채널 활성화
  - Telegram에서 봇에게 메시지를 보내 **페어링 코드**를 받고 `/telegram:access pair &lt;code&gt;`로 연결
  - `/telegram:access policy allowlist`로 접근 허용 계정 제한
- ## Discord 설정 절차
  - **Discord Developer Portal**에서 새 애플리케이션 생성 후 봇 토큰 복사
  - **Message Content Intent** 활성화
  - **OAuth2 > URL Generator**에서 `bot` 스코프와 메시지 관련 권한 부여 후 서버에 초대
  - `/plugin install discord@claude-plugins-official`로 플러그인 설치
  - `/discord:configure &lt;token&gt;`으로 토큰 설정
  - `claude --channels plugin:discord@claude-plugins-official`로 채널 실행
  - 봇에게 DM을 보내 페어링 코드 수신 후 `/discord:access pair &lt;code&gt;`로 연결
  - `/discord:access policy allowlist`로 접근 제한
  - 직접 플러그인이 없는 시스템을 위해 **사용자 정의 채널**을 개발할 수도 있음

### 빠른 시작
- **Fakechat**은 인증이나 외부 설정 없이 로컬에서 실행 가능한 공식 데모 채널
- Claude Code와 **Bun**이 설치되어 있어야 하며, Team/Enterprise 사용자는 관리자가 채널 기능을 활성화해야 함
- `/plugin install fakechat@claude-plugins-official`로 설치 후
  `claude --channels plugin:fakechat@claude-plugins-official`로 실행
- 브라우저에서 [http://localhost:8787](http://localhost:8787) 접속 후 메시지를 입력하면 Claude Code 세션으로 전달
- Claude의 응답은 브라우저 UI에 표시되며, 권한 요청이 발생하면 터미널에서 승인 필요
- 무인 실행 시 `--dangerously-skip-permissions` 옵션으로 권한 확인을 생략 가능 (신뢰 환경에서만 사용 권장)

### 보안
- 각 채널 플러그인은 **송신자 허용 목록(allowlist)** 을 유지하며, 등록된 ID만 메시지를 전송 가능
- Telegram과 Discord는 **페어링 코드**를 통해 허용 목록을 초기화
  1. 봇에게 메시지 전송
  2. 봇이 페어링 코드 응답
  3. Claude Code 세션에서 코드 승인
  4. 송신자 ID가 허용 목록에 추가
- 세션 실행 시 `--channels`로 활성화할 서버를 지정해야 하며, Team/Enterprise 플랜에서는 조직 설정(`channelsEnabled`)으로 사용 여부를 제어

### 엔터프라이즈 제어
- `channelsEnabled` 설정으로 채널 기능을 관리
  - **Pro/Max (개인 사용자)**: 기본적으로 사용 가능, 세션별 `--channels`로 활성화
  - **Team/Enterprise**: 기본 비활성화, 관리자가 명시적으로 활성화해야 함
- ## 조직에서 채널 활성화
  - **claude.ai → Admin settings → Claude Code → Channels** 경로에서 설정 가능
  - 또는 관리 설정에서 `channelsEnabled: true`로 지정
  - 활성화되면 사용자는 `--channels` 옵션으로 개별 세션에 채널 서버를 추가 가능
  - 비활성 상태에서는 MCP 서버 연결은 유지되지만 채널 메시지는 전달되지 않음

### 연구 프리뷰
- Channels는 **연구 프리뷰 기능**으로, 점진적으로 배포 중
- `--channels` 플래그 구문과 프로토콜은 피드백에 따라 변경될 수 있음
- 현재는 **Anthropic이 관리하는 허용 목록**의 플러그인만 사용 가능
- 비공식 플러그인을 지정하면 Claude Code는 정상 실행되지만 채널은 등록되지 않음
- 개발 중인 채널을 테스트하려면 `--dangerously-load-development-channels` 옵션 사용
- 문제나 피드백은 [Claude Code GitHub 저장소](https://github.com/anthropics/claude-code/issues)에 제출 가능

### Channels와 다른 기능 비교
| 기능 | 역할 | 적합한 용도 |
| --- | --- | --- |
| Claude Code on the web | GitHub에서 복제된 새 클라우드 샌드박스에서 작업 실행 | 비동기적, 독립적인 작업 위임 |
| Claude in Slack | 채널이나 스레드에서 `@Claude` 호출 시 웹 세션 생성 | 팀 대화 맥락에서 즉시 작업 시작 |
| MCP 서버 | Claude가 필요 시 쿼리, 세션으로 이벤트 푸시 없음 | 시스템 데이터 조회나 읽기 전용 접근 |
| Remote Control | claude.ai나 모바일 앱에서 로컬 세션 제어 | 원격에서 진행 중인 세션 조작 |

- ## Channels**는 위 기능들 사이의 공백을 메우며,** 외부 이벤트를 로컬 세션으로 직접 전달
  - **채팅 브리지**: Telegram이나 Discord를 통해 Claude에게 질문하고, 응답은 같은 채팅에서 확인
  - **웹훅 수신기**: CI, 오류 추적기, 배포 파이프라인 등 외부 서비스의 웹훅을 Claude가 열린 세션에서 바로 수신

### 다음 단계
- 플러그인이 없는 시스템을 위해 **직접 채널 개발**
- **Remote Control**을 활용해 이벤트 전달 대신 원격에서 세션 제어
- **Scheduled tasks**로 주기적 폴링 기반 자동화 구성

## Comments



### Comment 53514

- Author: neo
- Created: 2026-03-21T20:33:34+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47448524) 
- Telegram 통합이 Slack이나 Teams보다 먼저 나온 게 의외였음  
  하지만 찾아보니 **MAU(월간 활성 사용자)** 기준으로 Telegram이 약 10억 명으로, Slack(5천만)이나 Teams(3억)보다 훨씬 큼  
  예전에 Snapchat이 Twitter보다 사용자 수가 2배 많다는 걸 알았을 때처럼 놀라웠음
  - Teams의 3억 명 중 단 한 명도 거기서 더 시간을 보내고 싶어하지 않을 것 같음  
    반면 Telegram은 사람들이 실제로 **유용하고 쾌적하게** 느끼는 플랫폼임
  - Telegram의 **bot API**는 지금까지 써본 어떤 API보다도 친절함  
    서버에서 모바일로 알림을 보낼 때 가장 먼저 떠올리는 도구임  
    ntfy.sh처럼 간단하게 설정할 수 있지만, iOS에서 매주 깨지는 일도 없음
  - 나도 Telegram을 메시징용으로는 안 쓰지만, **봇 배포용**으로는 자주 씀  
    몇 줄만으로 명령어, 이미지 업로드, 응답 등을 구현할 수 있고, 계정만 있으면 충분함  
    단순한 도구를 빠르게 만들기에 완벽한 환경임
  - 5분만 투자해서 챗봇 만드는 법을 찾아보면 Telegram이 사실상 유일한 선택지임을 알게 됨  
    iMessage는 폐쇄적이고, WhatsApp은 유료이며, Discord나 Slack은 너무 **무겁고 복잡함**  
    Telegram은 봇을 **1급 시민(first-class)** 으로 취급해서 정말 쉽게 만들 수 있음
  - 수십억 달러 규모의 대기업이 수천 명의 엔지니어와 최고의 모델을 갖고 있음에도,  
    1인 오픈소스 프로젝트인 [Pi Coding Agent](https://pi.dev)가 이미 같은 기능의 플러그인을 여러 개 구현해둔 상황이 웃김  
    [Pi 패키지들](https://pi.dev/packages)은 700개 이상 존재하고, 필요하면 프롬프트 한 줄로 새 확장을 만들 수 있음  

- Claude가 로컬 **세션 기반 통합 구조**를 지향하는 게 흥미로움  
  지금은 사용자의 인증 정보를 활용해 통합을 구축하는 단계로 보임  
  나중에는 Claude가 자체 생태계로 세션을 옮길 수도 있을 것 같음
  - 이런 접근은 **엔터프라이즈 보안 요구**에 대응하는 것으로 보임  
    이미 기업 단말은 폐쇄적이라, 추가적인 외부 API 보안 계층이 필요하지 않음
  - iOS용 Claude가 개인 Git 저장소에서 **Markdown이나 draw.io 다이어그램**을 pull/commit할 수 있으면 좋겠음
  - Amazon의 MCP 설정도 비슷했음  
    모든 권한을 OAuth 토큰으로 관리하고, 토큰을 통해 접근 권한을 제어했음  
    다만 사용자별로 세분화된 권한을 설정하는 게 번거로웠음  

- 이번 변경은 *claws 프로젝트*에 매우 유리함  
  예전에는 Anthropic이 SDK에서 OAuth 토큰 사용을 금지해, 비싼 API 키를 써야 했음  
  이제는 공식적으로 허용된 형태로 MCP를 통해 원하는 **채널 연결**이 가능해짐  
  구조적으로는 기존 *claws*와 반대로, Claude 코드가 MCP 서버를 직접 구동해 통신의 주체가 됨  
  나는 내 **nanoclaw 포크**를 Docker 컨테이너에서 PID 1로 실행하도록 수정했고,  
  Claude 코드의 stdout 로그를 통해 채널과 직접 통신할 수 있게 됨  

- 솔직히 이런 **하이프 기반 도구들**이 너무 급하게 출시된 느낌임  
  Anthropic이라는 회사는 별로지만, **Claude 모델 자체는 훌륭하고 인간적인 느낌**임  
  OpenAI 등이 이걸 얼마나 따라올 수 있을지 궁금함  
  지금은 폐쇄된 생태계를 쓸 수밖에 없지만, 본질적인 모델 개선에 집중하길 바람  
  사실 이런 기능들은 주니어 개발자가 Claude Opus 5랑 대화하며 하루 만에 만든 것처럼 보임
  - 완전 공감함. Claude는 좋지만 **Anthropic 회사는 별로**임  

- ‘채널’ 기능은 내가 회사에서 nanoclaw를 돌리던 이유와 같음  
  이벤트 기반으로 Claude 코드를 트리거하고, 피드백·리뷰·분석을 받는 식으로 **루프를 완성**함  
  왜 MCP가 필요한지는 모르겠지만 바로 써볼 예정임  

- 지금의 한계는 여전히 **터미널이 필요하다는 점**임  
  백그라운드에서 Claude Code를 **데몬 모드**로 돌릴 수 있으면 좋겠음
  - Ctrl-Z 후 `bg` 명령으로 백그라운드 전환하거나, tmux로 세션 유지 가능함  
  - 이미 **클라우드 환경**도 제공하지만, 안정성이 매우 낮음  
  - tmux 세션에서 시작해 계속 돌려두면 됨  
  - 나는 opencode의 서버 명령을 **systemd 유닛**으로 등록해 홈서버에서 돌림  
    데스크톱·모바일 클라이언트로 연결해 쓰고 있음  
    CC의 “remote control” 기능도 비슷하지만 현재는 Mac 전용임  

- Claude가 빠르게 따라잡았음  
  OpenClaw의 핵심 가치는 **채널, 하트비트, 오픈소스 생태계**임
  - 이제 거의 **ClaudeClaw** 수준에 근접함  
    다음 단계는 지속 실행을 위한 클라우드 호스팅일 것 같음
  - 개별 기능 복제보다는 OpenClaw처럼 통합된 구조를 만드는 게 낫다고 생각함
  - OpenClaw의 진짜 성취는 ‘**가장 먼저 나왔다**’는 점뿐임  
    코드 자체는 과도한 설계, 버그, 문서화 부족으로 악명 높음
  - 하트비트는 비용이 많이 들어서, 30분 간격으로만 돌려도 플랜을 다 써버림  
  - 사실 Claude Code나 Codex에서 `/loop` 명령으로 하트비트를 구현할 수도 있음  

- 나는 채널 기능을 활용해 **HTTP API 래퍼**를 만드는 `agent-http`를 만들었음  
  [Agent API](https://github.com/coder/agentapi)와 동일한 인터페이스를 제공하지만,  
  터미널 스크래핑 대신 직접 Claude 코드와 통신함  
  이제 구독만으로 **헤드리스 모드**에서 Claude를 제어할 수 있음  
  - 코드 링크는 [여기](https://github.com/mberg/agent-http/)에 있음  
  - 링크 공유해줄 수 있냐는 질문이 있었음  

- Anthropic이 매주 새로운 제품을 **실험적으로 출시**하는 느낌임  
  실제로 1년 뒤에도 유지될 기능이 얼마나 될지 의문임
  - 그래도 다양한 실험을 통해 **무엇이 시장에서 통할지 테스트**하는 단계로 보임  

- 원격 기능이 추가된 소프트웨어는 결국 **백도어 악용 위험**이 생김  
  따라서 기업 보안 솔루션은 합법적인 Claude Code 인스턴스와  
  악성 인스턴스를 구분할 수 있는 기능을 갖춰야 함
