윤누리
윤누리
Admin
🧙 AI 위자드
🎻 루키 파트너
🌈 지피터스금손
🚀 SNS 챌린지 달성자
☕ 커피챗 오픈

Claude Code 스킬과 세션을 슬랙에서 그대로 쓰는 — OpenClaw 연동 꿀팁

한줄 요약

Claude Code를 Openclaw로 외부에서 호출하면 1) 슬래시 커맨드가 안 되고, 2) 이전 대화 맥락도 끊깁니다. 스킬 파일을 프롬프트로 변환하는 것과 세션 파일을 읽어 맥락을 복원하는 것, 이 두 가지 우회로로 슬랙에서도 Claude Code를 터미널처럼 쓸 수 있게 만들었습니다.

이런 분들께 도움돼요

  • Claude Code의 슬래시 커맨드(/commit, /init, 커스텀 스킬 등)를 터미널 밖에서도 쓰고 싶으신 분

  • 컴퓨터에서 하던 Claude Code 작업을 폰에서 이어가고 싶으신 분

  • 이동 중 슬랙으로 개발 자동화 루틴을 돌리고 싶으신 분

문제 상황 (Before)

OpenClaw를 세팅하면 슬랙에서 AI와 대화하면서 폰 코딩이 가능합니다. 그것만으로도 충분히 강력하죠. 그런데 쓰다 보니 한 가지 아쉬운 점이 생겼습니다.

두 가지가 안 됩니다.

1) 슬래시 커맨드가 안 된다. Claude Code에는 빌트인 커맨드(/commit, /init, /review 등)와 사용자가 직접 만드는 커스텀 스킬(/devlog, /start-prompt 등)이 있습니다. 터미널에서는 슬래시 하나로 바로 실행되는 것들인데, 슬랙에서는 하나도 안 됩니다.

2) 이전 세션을 이어갈 수 없다. 컴퓨터에서 Claude Code로 한 시간 동안 코딩하다가 밖에 나오면, 아까 하던 대화 맥락이 완전히 끊깁니다. "아까 하던 거 이어서 해줘"가 안 되는 거죠.

원인은 같습니다. 슬랙 봇에서 Claude Code를 호출할 때는 터미널을 열지 않고, 텍스트를 던지면 결과만 돌려받는 방식(일회성 호출)으로 실행합니다. 매번 새 대화가 시작되니까 슬래시 커맨드도 인식 못하고, 이전 대화도 기억 못합니다.

사용한 도구

  • AI 게이트웨이: OpenClaw 2026.2.13

  • AI 코딩 도구: Claude Code (Claude Opus 4.6)

  • 메신저: Slack (Socket Mode)


작업 과정

핵심 아이디어 — "스킬 파일을 읽고 실행해"

이 일회성 호출 방식에서 슬래시 커맨드는 안 되지만, 파일 읽기는 됩니다. 여기서 발상을 전환했습니다.

슬래시 커맨드를 인식 못하면, "이 스킬 파일을 읽고 그대로 따라 실행해"로 바꿔서 보내면 되잖아?

변환 전: /claude /commit 변환 후: "현재 변경사항을 확인하고 적절한 커밋 메시지로 커밋해주세요"

커스텀 스킬도 같은 원리입니다. 스킬은 .md 파일에 지시사항이 적혀 있으므로:

변환 전: /claude /update-proj 변환 후: "다음 스킬 파일을 읽고 지시사항을 따라 실행하세요. 스킬 파일: ~/.claude/commands/update-proj.md"

빌트인이든 커스텀이든, 슬래시 커맨드가 들어오면 해당하는 동작이나 파일을 자동으로 찾아서 프롬프트로 변환합니다. 존재하지 않는 명령어를 치면 에러 없이 일반 대화로 넘어가고요.

새 커스텀 스킬을 만들 때마다 슬랙에서도 자동으로 사용 가능합니다. 별도 연동 코드가 필요 없어요.


세션 이어가기 — "아까 하던 거 계속해줘"

스킬 실행과 같은 원리입니다. Claude Code는 대화 기록을 세션 파일로 저장합니다. 일회성 호출에서 이전 대화를 "기억"하지는 못하지만, 세션 파일을 읽는 것은 가능합니다.

그래서 --resume 옵션으로 최근 세션 ID를 넘기거나, 세션 파일 경로를 프롬프트에 포함시키는 방식으로 맥락을 복원합니다.

슬랙: [프로젝트 경로]에서 진행한 최근 세션 기록을 읽고, 마지막으로 하던 작업을 요약해줘. 이어서 진행할 부분이 있으면 알려줘.

컴퓨터에서 한 시간 동안 코딩하다가 밖에 나와도, 슬랙에서 이전 맥락 위에 이어서 작업할 수 있습니다. 별도로 "아까 뭐 했는지" 다시 설명할 필요가 없어요.


안전장치 — 3가지 실행 모드

스킬을 슬랙에서 실행하려면 권한 관리도 필요합니다. 읽기만 하는 스킬과 파일을 수정하는 스킬에 같은 권한을 줄 수는 없으니까요. 그래서 3가지 모드로 나눴습니다.

  • Quick 모드: 질문이나 분석 같은 읽기 전용 작업. 결과만 받아오면 끝

  • Auto 모드: 신뢰된 스킬은 권한 확인 없이 자동 실행

  • Interactive 모드: 파일 수정이 필요한 스킬 실행 시, 슬랙으로 "이 파일 고쳐도 될까요?" 하고 물어보는 방식

Interactive 모드가 가장 까다로웠습니다. 일회성 호출에서는 권한 확인 화면이 아예 표시되지 않거든요. 해결책은 PTY(가상 터미널) 래퍼였습니다. Claude Code를 진짜 터미널처럼 실행시키되, 출력을 실시간으로 감시하다가 권한 요청이 나타나면 잡아채서 슬랙 메시지로 중계하는 구조입니다. Python 기본 라이브러리만으로 약 160줄짜리 래퍼 스크립트가 나왔습니다.


결과 (After)

항목

기본 OpenClaw

+ 이 구현

슬랙에서 할 수 있는 것

AI 대화 (질의응답)

AI 대화 + 스킬 실행 + 세션 이어가기

빌트인 커맨드

실행 불가

/claude /commit 한 줄

커스텀 스킬

실행 불가

/claude /update-proj 한 줄

이전 작업 이어가기

매번 새 대화

최근 세션 자동 복원

파일 수정이 필요한 작업

실행 불가

슬랙으로 승인/거부 중계

만들어진 것

  • /claude 스킬: 슬랙에서 Claude Code 슬래시 커맨드를 바로 실행 (Quick/Auto/Interactive 3모드)

  • 슬래시 명령 → 프롬프트 변환기: 빌트인/커스텀 구분 없이 자동 탐색 + 프롬프트 변환

  • PTY 권한 중계 래퍼: 파일 수정 권한을 슬랙으로 중계하는 스크립트

이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. "API 제약이 있으면 파일로 우회" — Claude Code가 슬래시 커맨드를 인식 못해도, 스킬 파일 자체를 프롬프트에 넣어 읽게 하면 같은 결과를 얻습니다. 제약을 정면으로 뚫으려 하지 말고 우회로를 찾는 게 핵심입니다

  2. 탐색을 자동화하면 유지보수가 사라진다 — 스킬을 추가할 때마다 연동 코드를 짜는 대신, "파일만 있으면 자동으로 찾아서 실행" 구조를 만들어 두면 이후 작업이 제로입니다

다른 업무에 적용한다면?

  • 팀 공용 AI 도구: Claude Code에 팀 전용 스킬을 만들어두고, 슬랙에서 누구나 실행 가능하게

  • 모바일 루틴 자동화: 출퇴근 시간에 폰으로 /claude /update-proj 같은 루틴 처리 - 매일 자동 실행하게도 할 수 있어요.

  • 다른 AI 도구에도 적용: "스킬 파일을 읽고 실행해" 패턴은 파일을 읽을 수 있는 모든 AI 도구에 통용

3
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만