OpenClaw
Your own personal AI assistant. Any OS. Any Platform. The lobster way. ๐ฆ
Install
์จ๋ณด๋ฉ ๋ง๋ฒ์ฌ ์คํ
Pi
- Pi: OpenClaw์ ํต์ฌ์ด์ ๊ทน๋๋ก ๋จ์ํ๋ ๊ฐ๋ฐ์์ฉ AI ์์ด์ ํธ ๋ถ์ | GeekNews
- Pi ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ๋ง๋ค๋ฉฐ ๋ฐฐ์ด ์ | GeekNews
Docker ๋ก ์์ํ๊ธฐ
| WARNING |
| ํน์๋ผ๋ ํจํท ํํฐ ๊ด๋ จ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด iptables#Docker ํธ๋ํฝ ์ ์ด ํญ๋ชฉ ์ ์ฐธ์กฐ |
docker๋ฅผ ์ค์นํ ํ:
์ด ์คํฌ๋ฆฝํธ๊ฐ ํ๋ ์ผ:
- ๊ฒ์ดํธ์จ์ด ์ด๋ฏธ์ง ๋น๋
- ์จ๋ณด๋ฉ ๋ง๋ฒ์ฌ๋ฅผ ์คํ
- ์ ํ์ ๊ณต๊ธ์ ์ค์
- Docker Compose ๋ฅผ ํตํด ๊ฒ์ดํธ์จ์ด ์์.
- ๊ฒ์ดํธ์จ์ด ํ ํฐ์ ์์ฑํ๊ณ ์ ๊ธฐ๋กํฉ๋๋ค.
.env
์ ํ์ ํ๊ฒฝ ๋ณ์:
- OPENCLAW_DOCKER_APT_PACKAGES - ๋น๋ ์ค์ ์ถ๊ฐ apt ํจํค์ง ์ค์น
- OPENCLAW_EXTRA_MOUNTS - ์ถ๊ฐ ํธ์คํธ ๋ฐ์ธ๋ฉ ๋ง์ดํธ ์ถ๊ฐ
- OPENCLAW_HOME_VOLUME -
/home/node์ด๋ฆ์ ๋ณผ๋ฅจ ์ง์์ฑ.
๊ทธ๊ฒ์ด ๋๋ ํ์:
- ๋ธ๋ผ์ฐ์ ์์ http://127.0.0.1:18789/ ์ ์.
- ํ ํฐ ์ปจํธ๋กค์ UI(์ค์ โ ํ ํฐ)์ ๋ถ์ฌ๋ฃ์ต๋๋ค.
- URL์ด ๋ค์ ํ์ํ์ ๊ฐ์?
docker compose run --rm openclaw-cli dashboard --no-open
ํธ์คํธ์ config/workspace๋ฅผ ์์ฑํฉ๋๋ค:
-
~/.openclaw/- ๊ตฌ์ฑ ๋๋ ํ ๋ฆฌ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฒฐ๊ตญ OpenClaw ๋ฉ๋ชจ๋ฆฌ, ๊ตฌ์ฑ, ํ์ฌ API ํค ๋ฑ์ด ํฌํจ๋ฉ๋๋ค. -
~/.openclaw/workspace- ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ๋ ๋ ์์ด์ ํธ๊ฐ ์ง์ ์ฌ์ฉํ ์ ์๋ ํ์ผ์ด ๊ฐ๋ ์ฐฌ ์์ ์์ญ ๋๋ ํฐ๋ฆฌ์ ๋๋ค. ์์ด์ ํธ๊ฐ ๋ง๋ ํ์ผ๋ ์ฌ๊ธฐ์ ์ ์ฅ๋ฉ๋๋ค.
์๋์ผ๋ก ์์ ์ ์งํํ๊ณ ์ถ๋ค๋ฉด
docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway
๋ง์ฝ unauthorized ๋๋ disconnected (1008): pairing required ๊ฐ ์ถ๋ ฅ ๋๋ค๋ฉด ๋์ ๋ณด๋ ๋งํฌ ๋ฐ ๋ธ๋ผ์ฐ์ ์ฅ์น๋ฅผ ์น์ธํด์ผ ํ๋ค:
# ๋์๋ณด๋ ๋งํฌ ์ฌ์์ฑ
docker compose run --rm openclaw-cli dashboard --no-open
# ์น์ธ ๋๊ธฐ ์ค์ธ ๋๋ฐ์ด์ค ํ์ธ
docker compose run --rm openclaw-cli devices list
# ๋๋ฐ์ด์ค ์น์ธ (์ถ๋ ฅ๋ requestId ์ฌ์ฉ)
docker compose run --rm openclaw-cli devices approve <requestId>
์ ์ ๋ฐฉ๋ฒ
๊ทธ๋ฅ ์ ์ํ๋ฉด ๋์๋ณด๋์์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋๋ค:
๋ณด์์ ๋ฌธ์ ๋ก ์ธํด localhost ๋๋ฉ์ธ ๋๋ https:// ์คํค๋ง๋ก ์ ์ ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ๋ก์ปฌ PC ํฐ๋ฏธ๋์์ SSH ํฐ๋๋ง์ผ๋ก ์ ์ํด์ผ ํ๋ค:
์ดํ http://localhost:18789 ์ผ๋ก ์ ์ํ๋ฉด ๋๋ค.
ํ ๋ ๊ทธ๋จ ๋ฑ๋ก
ํด๋น ์ฑ๋ด์ด ์๋ ์ฑํ ๋ฐฉ์ ์๋ฌด๊ฑฐ๋ ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋๋ค:
OpenClaw: access not configured.
Your Telegram user id: NNNNNNNN
Pairing code: XXXXXXXX
Ask the bot owner to approve with:
openclaw pairing approve telegram <code>
๋์์๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ ์คํํ์.
๋ง์ฝ Docker ์ปจํ ์ด๋์์ ์ง์ ์คํํ๋ค๋ฉด ๋ค์ ๋ช ๋ น์ผ๋ก ์คํํ์:
wakeMode
OpenClaw cron job์ ์คํ ๋ฐฉ์์ ๊ฒฐ์ ํ๋ ์ค์ . ๋ช
์ํ์ง ์์ผ๋ฉด next-heartbeat๊ฐ ๊ธฐ๋ณธ๊ฐ.
๊ฐ
| ๊ฐ | ์ค๋ช | ์ฌ์ฉ ์ฌ๋ก |
| | ์ค์ผ์ค ์๊ฐ์ ์ฆ์ ์คํ | ์ ์ ์๋ฆผ, ์ ํํ ํ์ด๋ฐ ํ์ ์ |
| | ์ค์ผ์ค ์๊ฐ ์ดํ ๋ค์ heartbeat์์ ์คํ | ๋ฐฐํฐ๋ฆฌ/๋ฆฌ์์ค ์ ์ฝ, ๋์จํ ํ์ด๋ฐ ํ์ฉ ์ |
๋์ ๋ฐฉ์
now
- ์ค์ผ์ค๋ ์๊ฐ(์: 08:00)์ ๊ฒ์ดํธ์จ์ด๊ฐ ์ง์ job ์คํ
- ๊ฒ์ดํธ์จ์ด ํ๋ก์ธ์ค๊ฐ ํ์ด๋จธ๋ฅผ ๊ด๋ฆฌ
- ์ ํํ ์คํ ์๊ฐ ๋ณด์ฅ
next-heartbeat
- ์ค์ผ์ค ์๊ฐ์ด ์ง๋๋ ๋ฐ๋ก ์คํํ์ง ์์
- ๋ค์ heartbeat poll์ด ์ฌ ๋๊น์ง ๋๊ธฐ
- heartbeat ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ง์ฐ ๋ฐ์ ๊ฐ๋ฅ
- heartbeat๊ฐ ๋นํ์ฑํ๋์ด ์์ผ๋ฉด ์์ํ ์คํ ์ ๋จ
์ฃผ์์ฌํญ
-
next-heartbeat๋ heartbeat polling์ด ํ์ฑํ๋์ด ์์ด์ผ ํจ - heartbeat ๊ฐ๊ฒฉ์ด ๊ธธ๋ฉด ์๋ฆผ ์ง์ฐ ๋ฐ์
- ์ ์ ์๋ฆผ์ด ํ์ํ๋ฉด ๋ฐ๋์
now์ฌ์ฉ
์์
{
"name": "์์นจ ์๋ฆผ",
"schedule": { "kind": "cron", "expr": "0 22 * * *", "tz": "UTC" },
"wakeMode": "now",
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "์๋ฆผ ๋ด์ฉ"
}
}
Troubleshooting
gateway closed (1006 abnormal closure (no close frame)): no close reason
๋๋ฐ์ด์ค ๋ฑ๋ก์ ๋ค์๊ณผ ๊ฐ์ด ์งํํ์ ๋:
๋ฅผ ์น๋ฉด ๋ค์ ์๋ฌ๊ฐ ์ถ๋ ฅ๋จ:
WARN[0000] The "CLAUDE_WEB_COOKIE" variable is not set. Defaulting to a blank string.
WARN[0000] The "CLAUDE_AI_SESSION_KEY" variable is not set. Defaulting to a blank string.
WARN[0000] The "CLAUDE_WEB_SESSION_KEY" variable is not set. Defaulting to a blank string.
WARN[0000] The "CLAUDE_WEB_COOKIE" variable is not set. Defaulting to a blank string.
WARN[0000] The "CLAUDE_AI_SESSION_KEY" variable is not set. Defaulting to a blank string.
WARN[0000] The "CLAUDE_WEB_SESSION_KEY" variable is not set. Defaulting to a blank string.
Container openclaw-openclaw-cli-run-4767ca06b094 Creating
Container openclaw-openclaw-cli-run-4767ca06b094 Created
๐ฆ OpenClaw 2026.2.3 (unknown) โ I read logs so you can keep pretending you don't have to.
โ
โ
[openclaw] CLI failed: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/node/.openclaw/openclaw.json
Bind: lan
at Object.onClose (file:///app/dist/call-BxBOsbXG.js:262:10)
at WebSocket.<anonymous> (file:///app/dist/client-i9GLCujO.js:1400:23)
at WebSocket.emit (node:events:519:28)
at WebSocket.emitClose (/app/node_modules/.pnpm/[email protected]/node_modules/ws/lib/websocket.js:263:12)
at emitErrorAndClose (/app/node_modules/.pnpm/[email protected]/node_modules/ws/lib/websocket.js:1047:13)
at ClientRequest.<anonymous> (/app/node_modules/.pnpm/[email protected]/node_modules/ws/lib/websocket.js:886:5)
at ClientRequest.emit (node:events:519:28)
at emitErrorEvent (node:_http_client:107:11)
at Socket.socketErrorListener (node:_http_client:574:5)
at Socket.emit (node:events:519:28)
์ด ๊ฒฝ์ฐ gateway ์ปจํ ์ด๋์์ ์ง์ ์คํํ์ธ์:
unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)
๋๋ฐ์ด์ค ๋ฑ๋ก์:
๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋๋ค๋ฉด:
๐ฆ OpenClaw 2026.2.3 (unknown) โ I'm not magicโI'm just extremely persistent with retries and coping strategies.
โ
gateway connect failed: Error: unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)
โ
[openclaw] CLI failed: Error: gateway closed (1008): unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/node/.openclaw/openclaw.json
Bind: lan
at Object.onClose (file:///app/dist/call-BxBOsbXG.js:262:10)
at WebSocket.<anonymous> (file:///app/dist/client-i9GLCujO.js:1400:23)
at WebSocket.emit (node:events:519:28)
at WebSocket.emitClose (/app/node_modules/.pnpm/[email protected]/node_modules/ws/lib/websocket.js:273:10)
at Socket.socketOnClose (/app/node_modules/.pnpm/[email protected]/node_modules/ws/lib/websocket.js:1346:15)
at Socket.emit (node:events:519:28)
at TCP.<anonymous> (node:net:346:12)
token mismatch๋ผ๊ณ ๋์ต๋๋ค. ์ฐ๊ฒฐ์ ๋์ง๋ง ์ธ์ฆ์์ ์คํจํ๋ ๊ฒ๋๋ค. ์ค์ ํ์ผ์ ํ ํฐ์ ํ์ธํด๋ณด์ธ์:
# 1. ์ปจํ
์ด๋ ๋ด๋ถ ์ค์
docker compose exec openclaw-gateway cat /home/node/.openclaw/openclaw.json | grep -A2 token
# 2. ํธ์คํธ ์ค์
cat ~/.openclaw/openclaw.json | grep -A2 token
# 3. .env ํ์ผ
cat .env | grep TOKEN
์์ ์ธ ํ ํฐ์ด ๋ชจ๋ ๋์ผํด์ผ ํ๋ค.
๋ง์ฝ ํ ํฐ์ด lNXrjBP5su9SUP4spBfNTaEYZy67WmB7b25ex4yYeXAENSDW ์ผ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํ ํฐ์ ์ง์ ์ง์ ํ ์ ์๋ค:
docker compose exec openclaw-gateway node dist/index.js devices list --token "lNXrjBP5su9SUP4spBfNTaEYZy67WmB7b25ex4yYeXAENSDW"
์ถ๋ ฅ๋ Pending ํ
์ด๋ธ์ Request ์ปฌ๋ผ์ UUID ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฑ๋กํ๋ฉด ๋๋ค. Request UUID ๊ฐ 99a9713e-be0d-469f-bca4-25153a12a670 ์ผ ๊ฒฝ์ฐ:
docker compose exec openclaw-gateway node dist/index.js devices approve 99a9713e-be0d-469f-bca4-25153a12a670 --token "lNXrjBP5su9SUP4spBfNTaEYZy67WmB7b25ex4yYeXAENSDW"
See also
- AI Agents
- Clawdbot
- Moltbot
- OpenClaw
- Moltbook
- NanoClaw - Apple ์ปจํ ์ด๋ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์์ ์คํ๋๋ 500์ค์ง๋ฆฌ TypeScript ๊ธฐ๋ฐ Claude ์ด์์คํดํธ
- Kimi Claw - OpenClaw๋ฅผ ํด๋ผ์ฐ๋์ ์ํด๋ฆญ ๋ฐฐํฌํด์ ์ฌ์ฉํ๊ธฐ
- gogcli - ํฐ๋ฏธ๋์์ Google Workspace๋ฅผ ์ ์ดํ๋ ๊ณ ์ CLI
Favorite site
Guides
- OpenClaw: ๋ฉ์ ์ ์์ ๋ง๋๋ AI ๋น์ | Engineering Blog by Dale Seo
- (์ค์ ๊ฐ์ด๋) ์คํํด๋ก(OpenClaw) ์ค์น๋ถํฐ ์ ๋ฏธ๋์ด(Gemini) ๋ฌด๋ฃ ์ฐ๋๊น์ง ์๋ฒฝ ๊ฐ์ด๋(feat. ๊ตฌ ํด๋ก๋๋ด(Clawdbot) ์ค์น ๊ฐ์ด๋)
- (์ค์ ๊ฐ์ด๋) ์คํํด๋ก(OpenClaw. ๊ตฌ Clawdbot)์ ํ ๋ ๊ทธ๋จ(Telegram) ์ฑ๋ ๋ฑ๋ก ์๋ฒฝ ๊ฐ์ด๋
- OpenClaw 2ํธ - ์ค์น ๋ฐ ์ค์ ์๋ฒฝ ๊ฐ์ด๋
- OpenClaw ๊ฐ์ด๋: ๊ฐ์ธ AI ๋น์ ์ค์น๋ถํฐ ํ์ฉ๊น์ง