AI 코딩 에이전트를 관리한다는 것은 보통 터미널이나 IDE에 붙어 있어야 한다는 뜻입니다. Hermes는 이미 쓰고 있는 채팅 앱을 하나의 지속 실행 에이전트를 제어하는 화면으로 바꿔, 이 전제를 뒤집습니다.
Hermes의 핵심: 20개 표면에서 쓰는 Claude 에이전트
Hermes는 Nous Research가 만든 오픈소스 셀프호스팅 AI 에이전트 런타임입니다. 하나의 지속 프로세스로 실행되며, 여러 채팅 프런트엔드를 공유 에이전트 코어로 연결합니다 . Telegram, Slack, Discord, WhatsApp, Signal, Matrix와 20개 이상의 다른 표면은 별도 에이전트가 아니라 어댑터입니다. 어느 표면에서 프롬프트를 보내든 같은 대화 상태, 메모리, 스킬, cron 작업, 도구 권한이 보입니다 . 라이선스는 MIT이며, 현재 릴리스는 2026년 7월 8일 무렵 공개된 v0.18.2입니다 .
모델 측면에서 Hermes는 Anthropic, OpenRouter, Bedrock, Azure Foundry, Gemini, DeepSeek, 로컬 엔드포인트 전반의 300개 이상 모델로 라우팅합니다. 다만 다단계 도구 워크플로에는 최소 64K 토큰 컨텍스트 창을 가진 모델이 필요합니다. 이는 권장사항이 아니라 반드시 지켜야 하는 제약입니다 .
짚고 넘어갈 차이는 이렇습니다. Anthropic의 자체 Claude Code Channels는 Telegram, Discord, iMessage를 다루는 리서치 프리뷰입니다 . Hermes의 Slack 범위, WhatsApp 지원, 셀프호스팅 방식은 Anthropic 네이티브 통합이 아니라 자체 게이트웨이 계층에서 나옵니다. 초기 워크스루가 매력을 설명하듯, 핵심은 "어디서든 명령을 내릴 수 있다"는 점입니다 . 에이전트 설정은 한 번만 작성하고 어디에나 노출합니다. 인증 로직을 중복할 필요도, 앱별로 세션을 고립할 필요도 없습니다.
Hermes 설치 전에 준비할 것

설치 프로그램을 실행하기 전에 네 가지를 맞춰 두세요. 지원 OS, 하나의 추론 제공자, 그리고 노출하려는 채팅 앱 자격 증명입니다. 이것들이 준비되어 있으면 설정은 몇 분이면 끝납니다. 하나라도 빠지면 게이트웨이는 바로 그 빠진 지점에서 실패합니다.
- 운영체제. Hermes는 Linux, macOS, WSL2에서 한 줄 스크립트로 설치됩니다. Windows는 네이티브 PowerShell 경로인
iex (irm https://hermes-agent.nousresearch.com/install.ps1)를 쓰며, Android용 Termux도 지원합니다 . - 추론 제공자. 하나를 고르고 API 키를 준비하세요. Hermes가 다단계 도구 워크플로를 처리하려면 최소 64K 토큰 컨텍스트 창을 가진 모델이 필요합니다 . Nous Portal, Anthropic direct, OpenRouter, 로컬 Ollama 호환 엔드포인트는 모두 요건을 충족하며, 지원되는 300개 이상 모델 범위에 포함됩니다 .
- Telegram. @BotFather의
/newbot으로 봇을 만들고 토큰을 기록한 뒤, @userinfobot에서 숫자 사용자 ID를 확인하세요. 이 ID가TELEGRAM_ALLOWED_USERS허용 목록 값이 됩니다. - Slack. 토큰은 하나가 아니라 두 개가 필요합니다. API 호출용 봇 토큰(
xoxb-)과 Socket Mode용 앱 레벨 토큰(xapp-)입니다 . Hermes가 Slack 앱 매니페스트를 자동 생성하므로 이벤트 구독을 직접 정의할 필요는 없습니다.
Hermes 설치와 Telegram, Slack 설정

Hermes는 명령 하나로 설치한 뒤, 일반 CLI 채팅이 정상 동작하는지 확인하고, 그다음 메시징 화면을 연결하면 됩니다. Linux, macOS, WSL2, Termux에서는 공식 원라인 설치 명령이 curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash입니다. 이 명령은 uv로 Python 3.11을 준비하고, Node.js v22, ripgrep, ffmpeg를 설치하며, 저장소를 클론하고 전역 hermes 명령을 설치합니다 . 이후 바이너리가 인식되도록 셸을 다시 로드하세요.
빠른 답: 원라인 설치 프로그램을 실행한 다음 hermes setup으로 provider와 모델을 선택하세요. 어떤 gateway든 켜기 전에 일반 CLI 채팅이 성공하는지 먼저 확인해야 합니다. gateway는 아래에서 이미 잘 작동하거나 망가져 있는 provider, 도구, 터미널 설정을 그대로 노출하므로, 건강한 기반을 먼저 만드는 것이 중요합니다 .
문서가 단계별 경로를 권하는 데는 이유가 있습니다. hermes setup을 실행하고, inference provider 하나와 최소 64K 토큰 컨텍스트 창을 가진 모델을 선택한 뒤 터미널에서 메시지를 보내세요. 이 기본 채팅이 답하면 모델 계층은 정상입니다. 실패한다면 두 개의 채팅 앱을 연결한 뒤가 아니라 여기서 고쳐야 합니다 .
Telegram. ~/.hermes/.env에 TELEGRAM_BOT_TOKEN과 TELEGRAM_ALLOWED_USERS를 설정하거나, hermes gateway setup을 실행해 Telegram을 선택한 다음 hermes gateway start로 계층을 시작하세요. 봇은 텍스트, 이미지, 파일, 음성을 처리합니다. 음성은 설정에 따라 로컬 faster-whisper, Groq Whisper, OpenAI Whisper로 전사됩니다 .
Slack. hermes slack manifest --agent-view --write로 앱 정의를 생성하고, 출력물을 Slack의 앱 매니페스트 생성 흐름에 붙여 넣은 뒤, 앱을 워크스페이스에 설치하고 ~/.hermes/.env에 SLACK_BOT_TOKEN과 SLACK_APP_TOKEN을 설정하세요. 초반에 꼭 짚고 넘어갈 점이 하나 있습니다. 봇은 채널에 자동 참여하지 않으므로, 읽게 하려는 각 채널에서 /invite @Hermes Agent로 명시적으로 초대해야 합니다 .
| 플랫폼 | ~/.hermes/.env의 토큰 | 첫 수동 단계 |
|---|---|---|
| Telegram | TELEGRAM_BOT_TOKEN, TELEGRAM_ALLOWED_USERS | @BotFather의 /newbot으로 봇 생성 |
| Slack | SLACK_BOT_TOKEN (xoxb-), SLACK_APP_TOKEN (xapp-) | 생성된 매니페스트를 붙여 넣은 뒤 /invite |
지속 실행을 위해 hermes gateway는 macOS에서는 launchd 서비스로, Linux에서는 systemd unit으로 스스로 등록됩니다. 그래서 재부팅 후에도 살아남고 터미널 세션을 열어두지 않아도 계속 응답합니다 . 단일 gateway의 장점은 양쪽 화면이 모두 하나의 agent core로 이어진다는 점입니다. 아래 검증된 스니펫이 그 구조를 보여줍니다. 이름 붙은 front-end 20개가 모두 하나의 session으로 라우팅되며, 실행 시 front-end마다 한 줄씩 정상 출력되었습니다.
class ClaudeSession:
def ask(self, prompt):
return f"Claude session handled: {prompt}"
front_ends = [f"frontend-{i:02d}" for i in range(1, 21)]
session = ClaudeSession()
print("One Claude session, 20 front-ends -- that's Hermes")
for front_end in front_ends:
print(f"{front_end}: {session.ask('ping')}")Telegram이나 Slack에서 Claude Code 실행하기

gateway가 실행되면 채팅 메시지가 Claude Code 호출이 됩니다. Hermes는 Anthropic의 Claude Code CLI를 두 가지 delegation mode로 구동합니다 . Print mode는 일회성 작업을 실행하고 종료합니다. 예를 들어 claude -p 'task' --allowedTools 'Read,Edit' --max-turns 10처럼 실행하며, 권한 대화상자를 건너뛰고 구조화된 JSON을 캡처하므로 CI 스타일 채팅 트리거에 자연스럽게 맞습니다. 반면 interactive mode는 tmux를 통해 전체 PTY를 오케스트레이션하므로, /review나 /compact 같은 slash command를 쓰면서 프롬프트를 주입하고 진행 상황을 볼 수 있습니다.
"Print mode runs a one-shot task and exits, capturing structured JSON — suited to automation and CI." — Anthropic Claude Code 문서 (source: code.claude.com)
예산과 모델 플래그는 어떤 화면에서 트리거하든 모두 사용할 수 있습니다. --model에는 sonnet, opus, haiku 별칭 또는 claude-sonnet-4-6 같은 전체 이름을 넘길 수 있고, --effort, --max-budget-usd 상한, --allowedTools 허용 목록도 함께 지정할 수 있습니다 . 프롬프트가 Telegram에서 오든 Slack에서 오든 제어 방식은 같습니다.
실전에서는 화면별로 두 가지 특성을 신경 써야 합니다.
- Slack thread에서는 slash command가 막힙니다. Slack은 thread reply 안에서
/command를 전달하지 않으므로, Hermes는 thread에서도 쓸 수 있는!대응 명령을 제공합니다. 예를 들면!queue,!stop,!model,!approve,!deny입니다 . - Telegram은 command menu를 자동 등록합니다. Telegram은 최대 100개 command를 허용하지만, Hermes는 기본적으로 사용 가능한 command 중 60개로 payload를 제한합니다. 너무 큰 registration payload는 조용히 실패할 수 있기 때문입니다 .
주의할 점: Slack 매니페스트 이벤트와 Telegram 봇 표시 범위
가장 많은 시간을 잡아먹는 실패는 조용히 발생하는 실패입니다. Slack에서는 채널 이벤트 누락이 대표적인 원인입니다. 생성된 매니페스트에 message.channels 또는 message.groups가 빠져 있으면 Slack은 채널 메시지를 아예 전달하지 않습니다. 봇은 DM에서는 살아 있는 것처럼 보이지만 채널에서는 전혀 반응하지 않습니다 . 직접 수정하지 말고 hermes slack manifest --agent-view --write로 다시 생성하세요. 또한 Classic RTM 앱 토큰은 2025년 3월부터 더 이상 사용할 수 없으므로, xoxb- 봇 토큰과 xapp- 앱 레벨 토큰 조합은 선택 사항이 아닙니다 .
Telegram에서는 privacy mode가 같은 함정입니다. privacy가 켜져 있으면 봇은 그룹에서 슬래시 명령과 직접 답장만 볼 수 있습니다. BotFather에서 설정을 바꾸지만, Telegram은 이 설정을 채팅별로 캐시합니다. 따라서 변경 사항이 적용되려면 영향을 받는 모든 그룹에서 봇을 제거했다가 다시 추가해야 합니다 . 공개 Bot API는 다운로드도 20MB로 제한합니다. 대용량 파일 처리가 필요하다면 자체 호스팅 telegram-bot-api 서버를 사용해 한도를 2GB까지 올릴 수 있습니다 .
가장 중요한 결론은 실행 백엔드입니다. Hermes 문서는 프로덕션 게이트웨이에 로컬 호스트 대신 Docker 또는 Modal을 권장합니다. Docker 백엔드는 Linux capabilities를 제거하고, PID 제한을 적용하며, CPU, 메모리, 디스크 한도를 설정할 수 있게 합니다 . 연결된 모든 표면은 원격 명령 트리거가 되므로, 트리거된 작업은 내 머신이 아니라 컨테이너 안에서 실행하세요.
자주 묻는 질문
Hermes를 쓰려면 유료 Anthropic API 키가 필요한가요?
아니요. Hermes는 로컬 Ollama, LM Studio 엔드포인트, OpenRouter 무료 티어를 포함해 여러 제공자의 300개 이상 모델에서 실행됩니다 . 따라서 Anthropic 키는 여러 선택지 중 하나일 뿐입니다. 예외는 Claude Code 위임입니다. Hermes가 Anthropic의 Claude Code CLI를 print 모드나 interactive 모드로 구동할 때는, 에이전트 코어에 선택한 모델 제공자와 별도로 해당 계층에 유효한 Claude 자격 증명이 필요합니다 .
설정 후 Slack 봇이 채널 메시지를 받지 못하는 이유는 무엇인가요?
거의 항상 이벤트 구독이 빠진 경우입니다. 앱 매니페스트가 message.channels와 message.groups를 구독하지 않으면 Slack은 채널 메시지를 전달하지 않습니다. 이것이 Hermes Slack 설정에서 가장 흔한 문제입니다 . 설치된 앱을 직접 수정하지 말고 hermes slack manifest --agent-view --write로 매니페스트를 다시 생성해 재가져오기한 다음, /invite @Hermes Agent로 봇이 채널에 초대되었는지 확인하세요.
하나의 Hermes 설치에 Slack 워크스페이스를 여러 개 연결할 수 있나요?
예. SLACK_BOT_TOKEN에는 여러 xoxb- 봇 토큰을 쉼표로 구분해 넣고, SLACK_APP_TOKEN에는 하나의 xapp- 앱 레벨 토큰만 유지하면 됩니다 . Hermes는 Socket Mode 위에서 Slack Bolt를 사용하며, 하나의 앱 레벨 자격 증명이 모든 워크스페이스의 WebSocket 연결을 처리하므로 공개 HTTP 요청 URL은 필요하지 않습니다.
KakaoTalk도 지원되나요?
현재 문서 기준으로는 아닙니다. 공식 표면 목록에는 Telegram, Slack, Discord, WhatsApp, Signal, Matrix, Mattermost, DingTalk, Home Assistant, Twilio를 통한 SMS, Email(IMAP/SMTP) 등 20개 이상의 플랫폼이 포함되어 있지만, KakaoTalk은 빠져 있는 것이 확인됩니다 . 시드 워크스루도 같은 공백을 지적합니다 . 이는 공식 플랫폼 목록에 없다는 뜻이지, 서드파티 브리지가 전혀 존재할 수 없다는 증거는 아닙니다.
머신이 재부팅되면 Hermes 세션은 어떻게 되나요?
게이트웨이는 자동으로 다시 올라옵니다. 설치 프로그램이 macOS에서는 launchd 서비스로, Linux에서는 systemd 서비스로 Hermes를 등록하므로 재부팅 후 프로세스가 자동으로 재시작됩니다 . 세션 저장소, 메모리, 스킬, cron 일정은 재시작 사이에도 ~/.hermes/에 유지되므로, Telegram이나 Slack에서 대화하던 에이전트는 상태를 계속 보존합니다.
이 글이 도움이 되셨다면, 새 글이 올라올 때마다 이메일로 받아보세요.