1. 사전준비
⓵ 맥미니 준비 : 16GB 메모리 + 512GB SSD 추천
• 16GB 메모리: 브라우저를 끊김 없이 자동 제어하는 데에 충분
• 512GB SSD: 대화 기록 및 Skill을 모두 기록하는 데에 적당 (1TB면 더 좋음)
⓶ OpenClaw 홈페이지 접속, 설치 문서 확인


공식 홈페이지의 첫 페이지에는 아래 명령어 한 줄이면 된다고 하지만 안될수도 있습니다.

'macOS'를 누르면 macOS 전용 설치 메뉴가 있습니다.

클린한 후 나오는 페이지의 맨 아래 Assets 메뉴로 가서 dmg 파일을 다운로드 하면 됩니다.

OpenClaw-2026.2.1.dmg 파일을 다운로드 하고, Applications 폴더로 이동시켜서 설치합니다.
⓷터미널 들어가기
•터미널 : 터미널(Terminal)은 컴퓨터에게 글자로 명령을 내리는 창입니다.
응용프로그램에서 유틸리티 폴더로 들어가면 '터미널'이 있습니다. 독으로 내려놓읍시다.

⓸ 터미널을 클릭합니다. 아래 메모장 같은 것이 뜰겁니다. 여기에 명령어를 입력하는 겁니다.
설정에서 배경을 검은색으로 바꾸겠습니다.

⓹ Node를 설치하고, OpenClaw CLI 설치준비
•Node : 이게 뭔가요? 보통 말하는 Node는 정확히는 Node.js를 의미합니다. Node.js는 자바스크립트(JavaScript)를
웹브라우저 밖(PC·서버·터미널)에서 실행하게 해주는 실행 환경입니다. 한 줄로 줄이면: Node = 자바스크립트를 ‘프로그램’처럼 돌려주는 엔진
터미널에서 먼저 'Xcode Command Line Tool'을 먼저 설치해보겠습니다. 아래 문장을 복사해서 붙여주세요.
xcode-select --install


이어서 nvm과 Node.js를 설치합니다. 먼저 아래와 같이 nvm을 설치합니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
설치 중 표시된 메시지와 같이 zshrc 파일이 없어서 생성하고 아래 두 줄을 추가합니다. 공장 초기화된 맥이면 이렇습니다.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
아래와 같이 nvm 설치가 완료됐습니다.
% nvm --version 0.40.1
이어서 Node.js 다운로드 및 설치를 진행했습니다.
nvm install 24

⓺ OpenClaw CLI 설치 - 다운로드 및 설치 진행
•CLI : Command Line Interface) → 명령어를 ‘글자(텍스트)’로 입력해서 컴퓨터에게 일을 시키는 방식입니다.
사전 준비 작업은 완료됐고 이제 OpenClaw CLI 설치를 진행합니다.
curl -fsSL https://openclaw.bot/install.sh | bash

sudo 권한 문제로 보이지만 그것보다 Homebrew가 안 깔려 있어서 먼저 설치하려다 문제가 발생한 듯 합니다. 잠시 멈추고 아래 명령어를 통해와 같이 Homebrew를 먼저 설치했습니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

별문제 없이 설치가 잘 됐습니다. 설치 결과 메시지 중 'Next steps:' 대로 아래와 같이 .zprofile에 PATH를 설정했습니다. 이제 진짜 OpenClaw를 설치합니다.

'Installing OpenClaw 2026.1.29...' 이후에 변화가 없는데 잠시 기다리면 설치가 완료되고 빨간 글씨로 'I understand this is powerful and inherently risky. Continue?' 라는 문장이 뜹니다. 매트릭스의 빨간 약, 파란 약을 선택하는 것 같기도 하고.. 'Yes'를 선택하면 이후 뭔가 계속 선택해야 합니다.
OpenClaw CLI 설치 - 기본 설치 완료, 각종 설정 진행


오른쪽 이미지, 마지막 줄에 gateway 관련 Health check failed 오류 문구가 보인다. gateway는 remote, local 중 하나를 선택할 수 있는데 기본 값이 remote였던 것 같습니다. 내가 따로 local로 변경하지 않았는데 서비스가 잘 뜬 것을 보면 뒤에 이어지는 onboard 과정에서 자동으로 변경된 것 같습니다.


선택 및 설정이 필요한 모든 항목을 여기에 전부 쓰기는 어렵고 그럴 필요도 없을 것 같습니다. 주요 항목들은 아래와 같습니다.
- Onboarding mode: Manual과 QuickStart 중에 하나를 선택. 일단 빨리 돌아가는 걸 보려고 'QuickStart'를 선택.
- Model/auth provider: 다양한 모델 및 공급사가 쭉 표시되는데 나는 Claude Max 버전을 구독 중이라 'Anthropic'을 선택.
- Anthropic auth method: API key 또는 OAuth token 중 하나를 고르면 됨. 터미널에서 다음을 입력하면 OAuth token을 얻을 수 있음. 물론 Claude Code가 설치돼 있어야 함.
claude setup-token

브라우저가 잠깐 떴다가 터미널에 위와 같이 노란색 글씨로 OAuth token이 표시됩니다. 이걸 복사해서 아래 그림과 같이 OpenClaw CLI를 설치 중인 터미널에 붙여넣기해서 쓰면 됩니다.

OpenClaw CLI 설치 - Telegram 채널 설정
이제 OpenClaw와 통신할 채널을 설정하는 단계입니다.


오른쪽 이미지와 같이 Telegram, WhatsApp, Discord 등 수많은 채널을 지원하는데 Telegram이 제일 간단하다고 써 있어서 고민 없이 선택했습니다. 공식 홈페이지의 아래 문서를 참고해서 Telegram 설정을 진행했습니다.
https://docs.openclaw.ai/channels/telegram
telegram 앱을 실행하고 @BotFather 검색해서 대화 창을 엽니다. OpenClaw에만 국한된 것이 아니고 일반적으로 telegram에 봇을 추가하는 과정이라고 합니다.



대화 창에 '/newbot' 입력해서 봇 생성을 시작합니다. 이어서 봇 이름(예: My OpenClaw Bot)을 입력합니다. 뭐라고 메시지가 뜨면 이번엔 봇의 username(예: myopenclaw_bot)을 입력합니다. username은 반드시 _bot으로 끝나야 합니다. username을 입력하면 길게 뭐라고 하는데 'Use this token to access the HTTP API:' 뒤에 붙은 토큰 값을 복사해서 잘 저장해 놓습니다.

OpenClaw를 설치 중인 터미널로 돌아가서 저장한 토큰 값을 입력합니다.
OpenClaw CLI 설치 - Skills 설정
telegram 채널 설정이 완료됐습니다. 다음은 Skill 설정입니다.

Skills는 웹 검색, 파일 작업, 브라우저 제어 등의 OpenClaw가 사용할 수 있는 도구들이다. Eligible 3개가 바로 설치 가능한 것들이고, Missing requirements 46개는 추가 설정이나 의존성이 필요한 것들입니다. 일단 기본으로 진행하고 나중에 필요한 것을 추가하면 됩니다. Yes를 선택했습니다.

추가 설정이나 의존성이 필요한 skill 목록이 표시됩니다. 많습니다.. 'Skip for now'를 선택하고 다음으로 넘어갔습니다.
OpenClaw CLI 설치 - 기타 설정

이번엔 GOOGLE_PLACES_API_KEY를 입력하라고 합니다. 기본은 'No'로 선택돼 있고 이대로 넘어가도 무방합니다. Google Maps Key가 있으면 입력합니다. 이어서 NOTION_API_KEY, OPENAI_API_KEY, ELEVENLABS_API_KEY 등은 입력하지 않고 넘어갔습니다.

다음으로 Hooks 설정인데 이것도 나중에 아래와 같이 설정할 수 있어서 일단 넘어갔습니다.
openclaw configure --section hooks
OpenClaw CLI 설치 - 설정 완료, Gateway 재시작

이제 슬슬 끝이 보입니다. 지금까지 적용한 항목들을 적용하기 위해서 Gateway를 재시작합니다.

지금까지 설정한 내용들을 쭉 보여주고 있습니다.

설정은 모두 끝났고, 이제 여기서 엔터만 치면 OpenClaw가 구동됩니다. 나중에 내가 보려고 위에 그림으로 붙인 내용을 텍스트로도 남깁니다
Telegram: ok (@garibong_bot) (1107ms)
Agents: main (default)
Heartbeat interval: 1h (main)
Session store (main): /Users/garibong/.openclaw/agents/main/sessions/sessions.json (0 entries)
Missing Control UI assets. Build them with `pnpm ui:build` (auto-installs UI deps).
│
◇ Optional apps ────────────────────────╮
│ │
│ Add nodes for extra features: │
│ - macOS app (system + notifications) │
│ - iOS app (camera/canvas) │
│ - Android app (camera/canvas) │
│ │
├────────────────────────────────────────╯
│
◇ Control UI ────────────────────────────────────────────────────────────╮
│ │
│ Web UI: http://127.0.0.1:18789/ │
│ Web UI (with token): │
│ http://127.0.0.1:18789/?token=c************************************** │
│ ********** │
│ Gateway WS: ws://127.0.0.1:18789 │
│ Gateway: reachable │
│ Docs: https://docs.openclaw.ai/web/control-ui │
│ │
├─────────────────────────────────────────────────────────────────────────╯
│
◇ Start TUI (best option!) ─────────────────────────────────╮
│ │
│ This is the defining action that makes your agent you. │
│ Please take your time. │
│ The more you tell it, the better the experience will be. │
│ We will send: "Wake up, my friend!" │
│ │
├────────────────────────────────────────────────────────────╯
│
◇ Token ────────────────────────────────────────────────────────╮
│ │
│ Gateway token: shared auth for the Gateway + Control UI. │
│ Stored in: ~/.openclaw/openclaw.json (gateway.auth.token) or │
│ OPENCLAW_GATEWAY_TOKEN. │
│ Web UI stores a copy in this browser's localStorage │
│ (openclaw.control.settings.v1). │
│ Get the tokenized link anytime: openclaw dashboard --no-open │
│ │
├────────────────────────────────────────────────────────────────╯
│
◆ How do you want to hatch your bot?
│ ● Hatch in TUI (recommended)
│ ○ Open the Web UI
│ ○ Do this later
기본 값인 TUI가 선택된 상태로 엔터를 쳤다.
OpenClaw CLI 설치 - 구동 완료 두근두근.. 드디어 OpenClaw 구동이다.

기억도, 이름도, 내가 누군지도 아직 모르겠답니다. 고정된 대사인 듯 하지만 뭔가 심쿵합니다.

웹 대시보드도 정상적으로 잘 뜹니다. 이제 bot의 이름, 성격, 스타일 등을 정하고 임무를 내려 줄 차례입니다.