한줄 요약
Channels는 실행 중인 Claude Code 세션에 외부 이벤트를 밀어 넣어, 사용자가 터미널 앞에 없을 때도 Claude가 반응하게 만드는 기능이다.1현재는 research preview 단계라서
--channels문법과 프로토콜이 바뀔 수 있다.1
무엇인가
Channels는 Claude Code의 일반적인 대화 입력과 다르게, 외부 시스템이 먼저 세션으로 메시지를 push하는 구조다.1
핵심은 "지금 열려 있는 Claude Code 세션"이 이벤트를 받아 처리한다는 점이다. 그래서 단순한 메신저 연동이라기보다, 실행 중인 세션에 이벤트를 연결하는 채널 계층에 가깝다.12
일방향 알림 채널로도 쓸 수 있고, Claude가 같은 채널로 답장을 보내는 양방향 채널로도 쓸 수 있다.2
어떻게 동작하나
채널은 MCP 서버 형태로 동작한다.12
Claude Code가 세션 시작 시 채널 서버를 서브프로세스로 띄우고, 이 서버가 Telegram·Discord 같은 외부 시스템의 이벤트를 받아 현재 세션으로 전달한다.2
이벤트는 Claude의 컨텍스트 안으로 들어오고, Claude는 이를 읽고 필요한 작업을 수행한다.2
양방향 채널이면 Claude가 reply tool을 호출해 같은 채널로 응답할 수 있다.2
중요한 점은 세션이 열려 있을 때만 이벤트가 도착한다는 것이다. 항상 켜진 상태를 원하면 백그라운드 프로세스, tmux/screen, 원격 서버 같은 지속 실행 환경이 필요하다.1
현재 지원 채널
공식 문서 기준 현재 지원 채널은 다음 3가지다.1
TelegramDiscordfakechat데모 채널
fakechat은 로컬호스트에서 동작하는 데모용 채널이라, 실제 메신저를 붙이기 전에 흐름을 확인하기 좋다.1
사용 조건/준비물
Claude Code가 설치·인증되어 있어야 한다.3
Claude Code 계정은 무료 Claude.ai 플랜이 아니라, Claude Code 접근이 가능한 계정이어야 한다.3
공식 pre-built 채널 플러그인은 Bun이 필요하다.12
Team/Enterprise에서는 조직 관리자가
channelsEnabled를 켜야 실제 채널 메시지가 들어온다.1.mcp.json에 서버가 있다고 해서 자동으로 채널이 활성화되지는 않는다. 현재 세션을 시작할 때--channels로 명시한 서버만 메시지를 push할 수 있다.14
기본 사용 예시
가장 단순한 시작 예시는 다음과 같다.5
claude --channels plugin:fakechat@claude-plugins-official의미는 명확하다.
plugin:fakechat@claude-plugins-official채널 플러그인을 현재 세션에 활성화한다.5이 세션이 살아 있는 동안에만 외부 메시지가 들어온다.1
Telegram/Discord 흐름은 대체로 비슷하다.1
채널 플러그인 설치
봇 토큰 등 자격 증명 설정
--channels로 세션 시작봇 DM 후 pairing code 승인
승인된 sender만 allowlist에 등록
pairing 이후에는 허용된 발신자만 메시지를 밀어 넣을 수 있어서, "아무나 내 세션에 말 거는 구조"는 아니다.1
보안 및 제약
모든 공식 채널 플러그인은 sender allowlist를 유지한다. allowlist에 없는 sender는 무시된다.1
Telegram/Discord는 DM을 보낸 뒤 pairing code를 Claude Code 세션에서 승인하는 방식으로 allowlist를 만든다.1
--channels에 넣지 않은 서버는 현재 세션에 메시지를 push할 수 없다. 설치되어 있거나.mcp.json에 존재하는 것만으로는 부족하다.1unattended 사용 중 권한 확인 프롬프트가 뜨면 세션은 거기서 멈춘다.1
그래서 완전 무인 실행을 하려면
--dangerously-skip-permissions를 고려할 수 있지만, 이 옵션은 이름 그대로 위험성을 전제로 하므로 신뢰 가능한 환경에서만 써야 한다.15research preview 동안에는
--channels가 Anthropic이 승인한 allowlist 플러그인만 받는다. 직접 만든 채널은 별도 개발용 플래그로 테스트해야 한다.12
어떤 경우에 유용한가
자리를 비운 동안 Telegram이나 Discord로 Claude Code 세션에 일을 넘기고 싶을 때 유용하다.1
CI 실패, 모니터링 알림, 웹훅 이벤트를 세션에 바로 밀어 넣어 Claude가 즉시 반응하게 만들 때도 잘 맞는다.24
Scheduled Tasks가 "주기적으로 확인"하는 방식이라면, Channels는 "이벤트가 생겼을 때 바로 반응"하는 방식이다. 실시간성이 필요할수록 Channels 쪽이 더 자연스럽다.6
실무적으로는 "내가 직접 접속해서 조작"하는 인터페이스라기보다, 외부 신호를 이미 돌아가고 있는 세션에 연결하는 자동화 장치로 이해하는 편이 정확하다.12
Channels vs Remote Control vs Slack 간단 비교
Channels
외부 시스템이 실행 중인 로컬 Claude Code 세션으로 이벤트를 push한다.15
Telegram/Discord 같은 채널에서 메시지를 받아 세션이 반응하고, 필요하면 같은 채널로 답한다.12
Remote Control
휴대폰이나 웹에서 내 로컬 세션을 직접 이어서 조작하는 기능이다.5
핵심은 "세션 제어 UI를 원격으로 붙이는 것"이지, 외부 시스템이 이벤트를 주입하는 구조는 아니다.5
Slack
Slack의
@Claude멘션을 감지해, 필요하면 Claude Code on the web 세션으로 라우팅하는 통합이다.7즉 Slack 통합은 Channels와 같은 기능이 아니라, 웹 기반 Claude Code 세션 생성 및 진행을 Slack에서 시작하는 흐름에 가깝다.7
참고할 만한 최신 변경사항
--channels는 Claude Code 2.1.80에서 추가됐다. 공식 changelog 기준 날짜는 2026년 3월 19일이다.8같은 릴리스에서 플러그인 관련 사용 흐름도 단순화됐다. 문서상 plugin install 팁이 한 단계 명령으로 정리되었다.8
최신 동작을 보려면 먼저 버전을 확인하는 편이 좋다.38
claude --version주의
Channels는 아직 research preview다. 문법, 승인 정책, 프로토콜 계약이 바뀔 수 있다는 전제를 두고 써야 한다.1
항상 켜진 세션이 아니면 메시지가 오지 않는다. "메신저 연동만 하면 항상 동작한다"는 기대는 틀리다.1
unattended 운영에서 권한 프롬프트와
--dangerously-skip-permissions는 가장 민감한 지점이다. 자동화 편의보다 세션 안전 범위를 먼저 정해야 한다.15
참고
1Push events into a running session with channels
2Channels reference - Claude Code Docs
3Advanced setup - Claude Code Docs
4Connect Claude Code to tools via MCP
5CLI reference - Claude Code Docs
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.