본문 바로가기

ai 자동화

텔레그램으로 Claude Code 실행하기 - OpenClaw Skill 등록편 (4편)

최근 Claude Max를 구독하면서 이런 생각이 들었다.

"평상시에도 Claude Code를 더 잘 활용할 수 없을까?"
"텔레그램으로 Claude Code에게 블로그를 작성하라고 시키면 어떨까?"
"검색해서 정리해달라고 하면?"

요즘 워낙 핫한 OpenClaw를 보니, 텔레그램으로 AI를 직접 실행할 수 있다고 한다.
그렇다면 OpenClaw를 활용해서 텔레그램 → Claude Code 실행 구조를 만들 수 있지 않을까?

그래서 직접 진행해봤다.


이번 편에서 할 것

1, 2, 3편에 이어서 텔레그램으로 Claude Code를 사용하기 위해 이번에는 Claude Code를 스크립트로 호출할 수 있는 오픈클로의 SkillAgent를 등록하고, 이를 활용하여 텔레그램으로 오픈클로를 실행해보자.


전체적인 흐름

  1. 텔레그램을 통해서 /커맨드 AAA해줘라고 요청한다.
  2. 오픈클로는 Skill에 등록된 스크립트를 실행해서 Claude를 실행하고, 그 응답을 받는다.
  3. Claude가 응답한 내용을 다시 텔레그램으로 전달한다.

이를 기반으로 Claude의 다양한 기능들을 사용해서 자동화할 수 있다.

 


왜 Claude Code를 사용하는가?

1편에도 이야기했지만, 오픈클로의 기능을 직접 사용하지 않고 Claude Code를 사용하는 이유는 API Key로 사용하는 데 있어서 클로드의 비싼 모델을 사용하는 부담이 있기 때문이다. 기존에 사용하는 Claude 구독을 활용해서 추가적인 API Key 부담 없이 사용하려는 것이고, 이 내용은 Claude Code가 아닌 Codex CLI 등을 활용해서도 사용할 수 있을 것으로 생각된다.



Claude Code 설치하기

Skill을 등록하기 전에 먼저 WSL 환경에 Claude Code가 설치되어 있어야 한다. 아직 설치하지 않았다면 아래 순서대로 진행하자.

Node.js 설치 확인

Claude Code는 Node.js 18 이상이 필요한다. 우선 설치 여부를 확인한다.

node -v

Node.js 버전이 18 이상으로 표시되면 다음 단계로 넘어가면 된다.

만약 설치가 안 되어 있다면, nvm 또는 apt를 통해 설치하면 된다.

Claude Code 설치

npm을 통해 Claude Code를 전역으로 설치한다. 설치 후 claude --version으로 정상 설치를 확인하자.

npm install -g @anthropic-ai/claude-code
claude --version

설치가 완료되면 claude 명령어를 사용할 수 있고, 버전 정보가 표시되면 성공이다.

Claude Code 실행

설치가 완료되었으면 Claude를 실행해보자.

claude

claude 명령어를 입력하면 Claude Code가 실행된다.

 

Claude Code 로그인

처음 실행하메 로그인이 필요하다. Claude Max 또는 Pro 구독이 되어 있는 계정으로 로그인하메 된다.

먼저 사용할 구독 플랜을 선택하는 화메이 나온다.

터미널에 로그인 링크가 표시되면, 해당 링크를 클릭하거나 브라우저에 붙여넣는다.

 

브라우저에서 Anthropic 계정으로 로그인을 완료하면 된다.

 

로그인이 성공하면 터미널에 성공 메시지가 표시된다.

 

처음 프로젝트를 열메 해당 디렉토리를 신뢰할지 묻는 trust 화면이 나온다. 허용해주면 된다.

 

exit을 입력하면 종료할 수 있다.

 


Skill 등록하기

원래 오픈클로 내의 채팅으로 이를 설정할 수 있지만, gpt-5-mini 같은 저렴한 모델로는 제대로 동작하지 않고 오래 걸리는 경우가 많아서 답답하다. 이번 글에서는 WSL 안의 리눅스 터미널에서 Claude를 실행하고, Claude한테 OpenClaw 문서를 넘기고 Skill을 만들어달라고 하는 식으로 수행해보자.

1단계: Claude를 danger 모드로 실행

보통 OpenClaw는 터미널 내에서 ~/.openclaw라는 경로에 설치된다. 우리는 그 상위 디렉토리인 홈(~)으로 이동해서 Claude를 실행하려고 한다.

~는 현재 터미널의 홈이라고 생각하면 된다. pwd를 실행해보메 절대 경로를 알 수 있는데, 이 부분은 사용자마다 다르다.

 

먼저 홈 디렉토리로 이동해야 한다. Claude는 실행한 위치를 작업 디렉토리로 인식하기 때문에, OpenClaw 설정 파일이 있는 홈에서 실행해야 한다.

홈 경로로 이동한 뒤, --dangerously-skip-permissions 모드로 클로드를 실행한다. 이 모드로 실행하면 매번 확인받지 않아도 된다. (좋은 모델은 이상한 짓은 잘 안 한다.)

cd ~
claude --dangerously-skip-permissions

 

danger 모드로 실행하면, 권한 확인 없이 바로 작업을 수행할 수 있다.

--dangerously-skip-permissions로 실행했을 때, 해당 디렉토리를 신뢰하는 게 맞는지 물어보는 경우가 있다. 이때 yes를 선택해야 정상적으로 진행된다.

 

준비가 되메 아래와 같이 프롬프트 입력 대기 화면이 나온다.

3단계: Skill 등록 프롬프트 실행

아래 프롬프트를 실행한다.

"https://docs.openclaw.ai/tools/skills 문서"를 보고 claude-run라는 skill을 등록해줘.
해당 스킬은 claude --dangerously-skip-permissions -p "프롬프트"를 실행하는 스킬이야.
사용자는 디렉토리를 명시하고, 해당 디렉토리에서 위 스크립트를 수행해야해. 디렉토리가 명시되지 않으면 ~에서 수행해줘

 

위 프롬프트를 입력하면, Claude가 skill 문서를 참고해서 필요한 설정을 자동으로 찾는다.

 

Claude가 알아서 skill 등록에 필요한 정보들을 찾고, 설정 파일에 등록해준다.

4단계: 브라우저에서 확인

localhost:18789에 접속해서 왼쪽의 Skills 화면에서 등록이 표기되는지 확인한다.

브라우저에서 Skills 메뉴를 열면 방금 등록한 claude-run가 보인다.

혹시 안 되어 있다면, Claude에게 제대로 등록한 게 맞는지 확인해달라고 한다. 이래도 안 되면 관련해서 웹에서 검색해서 내용을 확인하고 다시 확인해달라고 한다.

등록 확인, 하지만 아직 실행은 안 된다

브라우저에서 Skill 목록에 claude-run가 표시되는 것을 확인했다면, 등록 자체는 성공한 것이다. 하지만 여기서 주의할 점이 있다. Skill이 목록에 보이다고 해서 바로 실행할 수 있는 것은 아니다.

실제로 오픈클로의 main session에서 해당 Skill을 실행해보면, 제대로 동작하지 욊는 것을 확인할 수 있다.

 

등록된 스크립트의 경로가 맞는지, 실행 권한이 있는지, 인자 전달이 제대로 되는지 등은 실제로 실행해봐야 알 수 있다. 이처럼 Skill이 목록에 보이는 것과 실제로 동작하는 것은 별개의 문제다.

왜 숈 되는지 Claude에게 물어보자. 아래와 같이 질의한다.

https://docs.openclaw.ai/tools/skills를 보고 openClaw 스킬을 등록했는데, 왜 메인 세션에서 이걸 사용을 못하지?

 

Claude가 원인을 분석해줄 텐데, 정확한 원인을 파악하려메 실제 설정 파일을 직접 확인해보는 것이 좋다. 홈 디렉토리의 .openclaw 하위에 Skill 관련 설정 파일들이 존재하므로, Claude에게 해당 내용들을 확인해달라고 질의한다.

.openclaw에서 해당 내용들 확인해줘

 

원인을 파악했으면, Claude에게 수정을 요청한다.

적용해줘

 

 

적용 후 Claude의 응답을 보면, 메인 세션을 재시작해야 한다는 안내가 나온다. 그래서 Claude에게 메인 세션 재시작을 요청한다.

메인세션 재시작해줘

 

 

적용이 완료되었다는 메시지가 나왔다. 다시 실행해보자.

 

 

그 다음 브라우저에서 기존에 사용하고 있던 화면이 아닌 새로운 세션을 사용하기 위해 New Session을 클릭한다.

주의: 이전에 텔레그램으로 대화한 이력이 있는 세션에서는 Skill 변경사항이 반영되지 않을 수 있다. 이 경우 반드시 New Session을 수동으로 생성해야 새로 등록한 Skill이 정상적으로 인식된다.

 

이후 현재 사용 가능한 Skill과 외부 검색이 필요한 내용에 대해서 Skill을 사용해서 수행하도록 요청하면 제대로 수행된다.


텔레그램에서 실행하기

제대로 표기되었다면, 텔레그램에서 아래처럼 메시지를 보내보자.

/claude-run 홈 디렉토리에서 "claude code 관련해서 웹검색해서 알려줘."

텔레그램에서 위 명령어를 입력하면, OpenClaw가 Claude Code를 실행한다. 하지만 처음에는 제대로 동작하지 않을 수 있다.

 

텔레그램에서 실행이 안 될 때

만약 텔레그램에서 /claude-run를 실행했는데 제대로 동작하지 않는다면, Claude에게 다시 물어보자.

실행을 시작했는데 로컬 claude 프로세스의 세션 상태가 바로 조회되지 않습니다. 계속 시도해 결과가 나오면 곧바로 전달할게요 —
원하는 형식(짧은 한 문단 요약 vs. 핵심 3줄 요약)은 어떻게 할까요? 이런 응답이 나왔어. 왜안기다리고 바로 저런 결과가 나왔는지 openclaw 로그 확인해봐

Claude가 오픈클로 내의 Skill 설정 파일, 스크립트 경로, 실행 권한 등을 확인해서 원인을 파악해준다.

 

원인을 파악했으메 Claude에게 수정을 요청한다. 수정이 완료되메 다시 텔레그램에서 시도해보메 된다.

실제로 제대로 응답이 온다면 성공이다!



마무리 및 다음 편 예고

이렇게 Claude Code를 텔레그램으로 연동을 완료했다. 그런데, 그다음은 무엇일까? 이걸로 무엇을 해볼 수 있을까?

다음 문서에서봀터는 이를 활용해서 텔레그램으로 블로그를 자동으로 만드는 프로젝트에 대해서 작성해보려고 한다. 텔레그램으로 "주제A에 대해 작성해달라고" 하면, 내부적으로 Claude가 크뢌이랑 연결되어서 직접 블로그를 작성한다면 좀 더 효율적으로 작성할 수 있지 않을까?