본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 05. 12:37

Claude Code 업데이트가 너무 빨라서 Routines를 이용해 Slack으로 전송하는 메커니즘을 만들었습니다

요약

Claude Code의 빠른 업데이트를 추적하기 위해 Claude Code Routines를 활용하여 Slack 알림 메커니즘을 구축하는 방법을 소개합니다. Github Releases API를 통해 최근 릴리스 정보를 가져와 요약 및 번역 후 Slack으로 전송하는 자동화 과정을 다룹니다.

핵심 포인트

  • Claude Code Routines를 이용한 클라우드 기반 자동화 구현
  • Github Releases API와 jq를 활용한 효율적인 데이터 추출
  • Schedule 트리거를 통한 매일 정기적인 업데이트 확인
  • 환경 변수를 통한 Github 인증 및 보안 처리

Claude Code의 업데이트를 따라가고 계신가요?

저는 못 따라가고 있습니다! (업데이트가 너무 빠르잖아요...)

그래서, Claude Code Routines를 사용하여 Claude Code의 업데이트 정보를 적절하게 번역 및 요약하여 Slack으로 보내는 메커니즘을 만들었습니다.

  • 매일 1회 정기 실행
  • Github의 Releases API로부터 최근 24시간 동안의 릴리스(Release)를 취득
  • 업데이트 내용을 요약하여 Slack으로 통지

원래는 업데이트를 감지하면 즉시 통지하고 싶지만, 이번에는 우선 정기 실행 방식으로 시도해 보았습니다.

Claude Code Routines

간단히 말하자면, Claude Code의 설정을 Anthropic의 클라우드 상에서 자동 실행하는 메커니즘입니다.

트리거(Trigger)는 3가지 종류가 있습니다.

  • Schedule: 정기 실행 (hourly / daily / weekly)
  • API: 전용 엔드포인트(Endpoint)에 요청하여 기동
  • Github: 리포지토리(Repository)의 이벤트에 반응

이번에는 Schedule 트리거를 사용하여 매일 1회 실행하도록 설정합니다.

전체 흐름

  • 릴리스를 취득하는 명령어를 구성
  • Routine을 생성하고 클라우드 환경 설정
  • 프롬프트(Prompt) 작성
  • daily 트리거를 설정하여 동작 확인

1. 릴리스 취득

Github의 Releases API를 그대로 호출했습니다.

Github의 미인증 요청 상한은 IP당 시간당 60회이지만, Routines는 Anthropic의 클라우드 상에서 동작하기 때문에 IP가 공유되어 있어서인지, 인증 없이 요청하면 403 에러를 겪는 경우가 많았습니다.

그래서 인증 토큰(Token)을 환경 변수(Environment Variable)로 전달하는 방식으로 했습니다. Public 리포지토리를 읽기만 하면 되므로, 스코프(Scope)가 없는 토큰으로도 충분합니다.

curl -s -H "Authorization: Bearer $GH_TOKEN" \
"https://api.github.com/repos/anthropics/claude-code/releases?per_page=10"

응답(Response)이 거대하기 때문에, 이를 그대로 모델(Model)에 전달하는 것은 컨텍스트(Context) 낭비이므로, 필요한 항목만·조건을 좁힌 상태에서 추출합니다.

curl -s -H "Authorization: Bearer $GH_TOKEN" \
"https://api.github.com/repos/anthropics/claude-code/releases?per_page=10" \
| jq '[ .[]
...

jq를 사용하여 드래프트(Draft)·프리릴리스(Pre-release)를 제외하고, 최근 24시간 동안의 릴리스로만 압축하고 있습니다. 남기는 것은 tag / published_at / url / body 4가지뿐입니다.

결과는 다음과 같은 최소한의 배열이 됩니다.

[
{
"tag": "v2.1.162",
...

2. Routine 생성 및 환경 변수 설정

Routines의 대시보드(Dashboard)에서 새로운 Routine을 생성합니다.

Routinesダッシュボード

생성하면 「지시(Instructions)」의 오른쪽 하단에서 환경을 선택할 수 있으므로, 설정 버튼을 누르면 클라우드 환경을 설정할 수 있습니다.

新しいRoutine

クラウド環境の設定

네트워크 액세스(Network Access)는 Github의 API와 Slack의 Webhook에 대해 허용해 둡니다.

api.github.com
hooks.slack.com

또한, 환경 변수도 설정해 둡니다.

GH_TOKEN=github_pat_xxx
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx

3. 프롬프트 작성

모델은 Haiku 4.5를 지정했습니다.

프롬프트는 앞서 명령어로 취득한 릴리스 정보를 요약하여 Slack으로 보낼 내용을 작성합니다.

현재는 이런 느낌으로 상황을 지켜보고 있습니다.

Claude Code 릴리스 알림 작업 (정기 실행)
이 루틴은 anthropics/claude-code의 새로운 릴리스를 매일 체크하여,
있을 경우 Slack으로 알림을 보내는 정기 작업(Periodic Job)입니다. GH_TOKEN과 SLACK_WEBHOOK_URL은
...
```bash
curl -s -H "Authorization: Bearer $GH_TOKEN" \
"https://api.github.com/repos/anthropics/claude-code/releases?per_page=5" \
| jq '[ .[]
| select(.draft == false and .prerelease == false)
| select((.published_at | fromdateiso8601) >= (now - 86400))
| {tag: .tag_name, published_at, url: .html_url, body} ]
| sort_by(.published_at)'

curl 실패 등 에러가 발생한 경우, "취득 실패로 인해 스킵"이라고만 기록하고 종료.
...

*Claude Code <tag1>* 🚀
<body 요약 1>
*Claude Code <tag2>* 🚀
<body 요약 2>

전송은 jq를 사용하여 JSON을 구성함으로써 이스케이프(Escape)를 안전하게 처리할 것:

jq -n --arg text "$MSG" '{text: $text}' \
| curl -s -X POST -H 'Content-Type: application/json' \
-d @- "$SLACK_WEBHOOK_URL"

완료 조건: 위 과정을 모두 실행할 것. 도중에 사람에게 질문하지 말 것.

프롬프트를 작성할 때, 몇 번 실행해 보면 절차대로 끝까지 실행되지 않고 질문을 하며 멈춰 있는 경우가 많았습니다.

따라서 이것은 정기 작업(Periodic Job)이므로, 도중에 사람에게 질문하지 않도록 설계하는 것이 포인트입니다.

4. 트리거 설정 및 동작 확인

마지막으로 Schedule 트리거를 설정하여 완성합시다.

Scheduleトリガー

Routine이 완성되면 선택한 후, 우측 상단의 "지금 실행"을 클릭하여 동작 확인을 진행합니다.

정상적으로 작동한다면, Slack에 요약된 릴리스 정보가 올라올 것입니다.

도중에 에러가 발생한다면 프롬프트를 수정해 보세요.

이것으로 Claude Code의 업데이트를 추적하는 것이 조금은 편해졌습니다.

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0