Skip to content

GoGoComputer/openclaw-workspace

Repository files navigation

openclaw-workspace

License: MIT macOS Windows (WSL2) Apple Silicon Shell CI

OpenClaw 셀프호스트 자동화 — macOS · Windows(WSL2) 한 줄 설치/유지보수 도구

새 맥북에서 ./openclaw install 한 번이면 Docker · (선택)Ollama · OpenClaw 컨테이너까지 자동으로 준비됩니다. Windows 10/11 에서는 .\openclaw.ps1 install-bootstrap 한 번 + WSL2 활성화 후 같은 흐름이 그대로 동작합니다. 중간에 끊겨도 다시 실행하면 이어서 진행합니다. 로컬 100% 격리 환경을 지향합니다.

🇬🇧 English version: README.en.md

📖 목차 / Contents


🔁 워크스페이스 파이프라인

이 README 는 하나의 파이프라인입니다. 위에서 아래로, 또는 아래 표의 단계별 가이드를 따라가면 설치 → 사용 → 유지보수 → 설정 → 업데이트 까지 한 번에 됩니다. 각 단계마다 어떤 명령을 치고 어떤 문서를 보면 되는지 정해져 있습니다.

# 단계 핵심 명령 안내 문서
1 설치 (Install) git clone … && ./openclaw install 표준 설치 · 완전 수동 · 처음부터
2 진단 (Doctor) ./openclaw doctor 진단 항목별 가이드 · TROUBLESHOOTING
3 사용 (Use) ./openclaw start · ./openclaw chat · docker compose run --rm openclaw-cli tui · surf "…" · creative run "…" · shorts run "…" 설치 후 첫 사용 가이드 · GUIDE-OPENCLAW · 자동화 3종 · GUIDE-WEB-FETCH · GUIDE-CREATIVE-PIPELINE · GUIDE-SHORTS-PIPELINE
4 유지보수 (Maintain) ./openclaw logs · ./openclaw clean · ./openclaw backup · ./openclaw restore 명령 카탈로그 · 정리 · 일상 사용 사이클
5 설정 변경 (Configure) .env 편집 · ./openclaw models … · ./openclaw network … .env 설정 · 모델 관리 · 네트워크 격리
6 업데이트 (Update) ./openclaw update · ./openclaw self-update · ./openclaw schedule enable 업데이트 흐름
7 문제 해결 (Recover) ./openclaw doctor./openclaw logs <svc> → 해당 항목 가이드 진단 항목별 가이드 · TROUBLESHOOTING

각 단계의 명령은 모두 멱등(여러 번 실행해도 안전)입니다. 중간에 끊겨도 다시 같은 명령을 치면 이어서 진행됩니다.


🚀 5분 시작 (비개발자 OK)

"터미널이 뭐예요?" 라면 먼저 docs/QUICKSTART-ko.md 부터 보세요. 더 앞 단계(클릭/폴더/경로 개념) 부터 필요하면 docs/GUIDE-FROM-ZERO.md. 단계별 예시 출력이 다 있습니다. (English: docs/QUICKSTART-en.md)

설치 경로는 두 가지뿐입니다 — 표준 스크립트 설치 (대부분의 경우) 또는 완전 수동 설치 (회사 보안 정책 / 오프라인 / GitHub 장애 시).

표준 — 스크립트 설치 (권장)

# 1) 코드 받기
git clone https://github.com/GoGoComputer/openclaw-workspace.git
cd openclaw-workspace/openclaw-mgr

# 2) 진단 — 지금 무엇이 부족한지 한눈에
./openclaw doctor

# 3) 설치 — 부족한 부분만 자동으로. 중간에 끊겨도 다시 치면 이어서 진행
./openclaw install

# 4) 인자 없이 실행하면 한국어/영어 대화형 메뉴
./openclaw

설치 중 Docker Desktop 약관 동의 / Xcode Command Line Tools 다이얼로그가 뜰 수 있습니다. 따라가시면 됩니다. 각 다이얼로그가 무엇을 묻는지 자세한 설명은 docs/TROUBLESHOOTING.md — Docker Desktop 첫 실행 참조.

💻 Windows 10/11 (WSL2) 사용자

# 1) PowerShell 실행 정책 (1회)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# 2) 코드 받기
git clone https://github.com/GoGoComputer/openclaw-workspace.git
cd openclaw-workspace\openclaw-mgr

# 3) 부트스트랩 — winget · WSL2 · Git · Docker Desktop · Ollama 점검/설치
.\openclaw.ps1 install-bootstrap

# 4) Windows 측 진단
.\openclaw.ps1 doctor

# 5) 설치 — 내부적으로 WSL2 안의 ./openclaw install 로 위임됩니다
.\openclaw.ps1 install

Windows 진입점은 openclaw.ps1 하나뿐이며, 모든 일상 명령(start/stop/logs/update/backup 등)은 자동으로 WSL2 안의 bash 로 위임돼 동일한 결과를 냅니다. 자세한 단계별 안내는 docs/GUIDE-MANUAL-INSTALL.md 의 각 단계 끝의 "💻 Windows 동등 명령" 박스를 참고하세요.

설치 끝나면 한 번 더 진단하고, 원하면 자동 업데이트를 켭니다:

./openclaw doctor              # 모두 ✓ 확인
./openclaw schedule enable     # 매일 새벽 자동 업데이트 (선택)

💬 "이제 어떻게 대화하죠?" → 설치 후 첫 사용은 별도 가이드로 정리되어 있습니다 — docs/GUIDE-FIRST-USE.md (5분 안에 첫 프롬프트까지: 헬스체크 → UI/CLI 접속 → 모델 선택 → 작업 파일 위치 → 일상 운영 → 웹 수집 → 첫 사용 트러블슈팅).

ℹ️ OpenClaw 본체 공식 저장소: https://github.com/openclaw/openclaw.env첫 실행 시 자동 생성됩니다(cp 불필요). ./openclaw install 만으로 바로 띄울 수 있습니다.

📍 ./openclaw 명령은 어디서 실행하나요?

이 README/가이드의 모든 ./openclaw <verb> 예시는 openclaw-workspace/ 또는 openclaw-workspace/openclaw-mgr/ 디렉터리에서 실행하는 것을 가정합니다. 다른 곳에서 치면 zsh: no such file or directory: ./openclaw 가 납니다.

세 가지 호출 방식 중 편한 걸 쓰세요:

# 방식 A — 워크스페이스 루트에서 (권장: 가장 짧음)
cd ~/DEV/openclawAgent/openclaw-workspace
./openclaw doctor

# 방식 B — 매니저 디렉터리에서 (원본 위치)
cd ~/DEV/openclawAgent/openclaw-workspace/openclaw-mgr
./openclaw doctor

# 방식 C — 어디서나 (PATH 등록·1회 설정)
echo 'export PATH="$HOME/DEV/openclawAgent/openclaw-workspace:$PATH"' >> ~/.zshrc
source ~/.zshrc
openclaw doctor                 # cd 없이 바로 실행

첫 설치 시 git clone 위치가 달랐다면 그에 맞춰 경로만 바꾸세요. 어디에 깔렸는지 모르겠으면:

find ~ -type f -name openclaw -path '*/openclaw-mgr/*' 2>/dev/null

자세한 PATH 등록·alias 사용법은 TROUBLESHOOTING — ./openclaw 명령 위치 / PATH 등록 참조.

완전 수동 설치 (회사 정책·오프라인용)

curl | bash 형태의 자동 설치를 못 쓰는 환경 — 사내 보안 정책, GitHub codeload 502 장기 장애, 또는 "내 손으로 한 단계씩 확인하고 깔고 싶다" 는 분들을 위해 완전 수동 설치 가이드가 따로 있습니다.

무엇 어디서 직접 받나
Xcode Command Line Tools xcode-select --install 다이얼로그
Docker Desktop https://www.docker.com/products/docker-desktop/
Ollama (선택) https://ollama.com/download
openclaw-workspace git clone … 또는 GitHub Releases tarball
OpenClaw 본체 git clone https://github.com/openclaw/openclaw.git

가이드가 다루는 8단계 (각 단계마다 명령 + 예상 출력 + 실패 시 복구):

단계 내용
0 준비물 진단 (이미 깔린 것 확인 — 중복 설치 방지)
0.5 기존 Docker/Ollama 가 있을 때의 재사용·정리 판단
1 Xcode Command Line Tools
2 Docker Desktop 직접 다운로드
3 Ollama 설치 + 모델 (선택)
4 openclaw-workspace + OpenClaw 본체 git clone
5 ./openclaw install (5b 완전 수작업, 5c 샌드박스)
6 PATH 등록 / 6.5 start·stop·port 충돌 치트시트
7 업데이트 — git pull 후 무엇을 다시 돌릴지 (변경 종류별 표)

전체 가이드 → docs/GUIDE-MANUAL-INSTALL.md (한국어 + English mirror)

수동 설치 후에도 마지막에는 동일한 명령으로 검증·운영합니다:

cd openclaw-workspace/openclaw-mgr
./openclaw doctor      # 진단
./openclaw install     # 누락된 부분만 자동 보충 (수동으로 다 깔았다면 거의 다 skip)
./openclaw start       # 컨테이너 기동

🎯 install 직후 — 첫 사용

./openclaw install 끝에 ✓ 설치 완료! + 🛡 샌드박스 활성 (기본) 메시지가 떴다면 컨테이너 두 개가 이미 떠 있습니다:

컨테이너 역할 노출
openclaw-openclaw-gateway-1 웹 UI · REST 게이트웨이 · healthz 127.0.0.1:18789
openclaw-openclaw-cli-1 컨테이너 안 셸 (claude CLI 실행 환경) (네트워크는 gateway 공유)

다음 셋 중 편한 방식으로 첫 대화를 시작하세요.

① 브라우저 웹 UI

# install 직후엔 네트워크가 isolated — 웹UI 접속이 막혀 있습니다. 먼저 열기:
./openclaw network online --restart

open http://127.0.0.1:18789

가장 시각적·직관적. Safari/Chrome 어디든 OK. 주소창에 open 까지 같이 붙여넣지 마세요 — open 은 터미널 명령어입니다.

⚠️ isolated 모드에선 웹UI 접속 불가 — Docker 의 internal: true 네트워크는 호스트→컨테이너 port publishing(docker-proxy)도 같이 비활성화합니다. 그래서 127.0.0.1:18789 가 "Safari Can't Connect" / "Empty reply" 로 뜹니다. 해결: ./openclaw network online --restart 후 접속, 사용 끝나면 ./openclaw network isolated --restart 로 다시 잠그기.

"Safari can't connect" 이 여전히 뜨면 ./openclaw doctor 로 게이트웨이 상태 확인. docker ps 로 포트가 127.0.0.1:18789->18789/tcp 형태로 publish 됐는지 확인 (단순히 18789/tcp 만 보이면 isolated 상태).

② 컨테이너 CLI (본체 OpenClaw 풀 기능) — setupchat

컨테이너 안 격리 환경에서 OpenClaw 본체 사용. 채널 연동(WhatsApp·Telegram)·플러그인·세션 관리 등 풀 기능. 첫 설정은 ./openclaw setup 한 줄로 — OpenClaw 의 onboard 마법사를 Docker 안에서 안전하게 실행합니다.

# 1) 첫 설정 (또는 언제든 재설정 — 멱등)
./openclaw setup

# 2) 설정 확인 (변경 없음, 현재 상태만 표시)
./openclaw setup status

# 3) 이후 풀 기능 컨테이너 CLI 로 채팅
cd ~/DEV/openclaw
docker compose run --rm openclaw-cli tui            # 터미널 UI 채팅
docker compose run --rm openclaw-cli agent --message "안녕"   # 한 줄 명령

./openclaw setup 의 장점:

  • 격리docker compose run --rm openclaw-cli onboard 로 컨테이너 안에서만 실행, 호스트에는 직접 설치 안 함
  • 재실행 가능 — 기존 설정이 있으면 확인 후 재시작. 답하기 싫은 항목은 Enter 로 기본값 유지
  • 사전 점검 — Docker 데몬·OpenClaw 클론 존재 자동 확인
  • 종료 후 안내./openclaw setup status 로 확인, ./openclaw chat 로 바로 채팅
📋 마법사가 차례로 묻는 단계 (펼치기) — 권장 답안 포함

OpenClaw 본체 버전에 따라 단계 순서·문구는 약간 다를 수 있지만 대체로 다음 순서로 진행됩니다. 모두 Enter 로 기본값 사용 가능. 한 줄 한 줄 천천히 읽고 선택해도 안전합니다.

# 단계 어떤 화면 권장 답안
1 보안 동의 (Risk acknowledgment) I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue? Yes — 개인용 1대 1머신이면 안전. 공유/멀티유저 머신이면 추가 잠금 필요 (가이드 링크 참조).
2 Flow Onboard flow: quickstart | advanced | manual quickstart — 권장. advanced 는 단계가 더 많고 manual 은 모든 값을 직접 입력.
3 Mode local | remote local — 같은 맥에서 사용. remote 는 원격 게이트웨이에 붙을 때.
4 Gateway bind loopback | tailnet | lan | auto | custom loopback127.0.0.1 만 노출 (가장 안전). LAN/외부 접근 필요할 때만 다른 선택.
5 Gateway port 기본 18789 Enter (그대로). 이미 다른 데서 쓰는 포트면 변경.
6 Gateway auth token | password token — 자동 생성된 비밀 토큰으로 보호.
7 Install daemon (service) 게이트웨이를 백그라운드 서비스로 자동 시작할지 Yes 권장 (재부팅 후 자동 기동). 컨테이너 안에서만 돌리면 No.
8 Auth provider (모델 제공자) ollama | anthropic-api-key | openai-api-key | gemini-api-key | huggingface-api-key | custom | skip ... (50+ 옵션) ollama ← 핵심. 이미 깔아둔 로컬 Ollama 모델을 그대로 사용 → API 키 불필요. 클라우드 모델을 쓰려면 해당 provider 선택 + API 키 입력.
8a Ollama mode (provider=ollama 일 때만) Cloud + Local | Local only | Cloud only Local only — 호스트의 로컬 Ollama 만. Cloud 는 Ollama 클라우드 계정 필요.
8b Ollama base URL ⚠️ 함정 기본값 http://127.0.0.1:11434 (입력 필드, 편집 가능) 반드시 변경 → http://host.docker.internal:11434 (컨테이너 안의 127.0.0.1 은 컨테이너 자신이라 호스트 Ollama 에 못 닿음. host.docker.internal 이 호스트를 가리키는 Docker 의 특수 호스트명). ./openclaw setup 이 시작 전에 노란색 박스로 한 번 더 알려줍니다.
9 Workspace dir 에이전트가 파일 작업할 디렉토리 기본 ~/.openclaw/workspace (호스트의 ~/DEV/openclawAgent 와 동기화됨) — Enter 추천.
10 Search provider 웹 검색 백엔드 (Tavily 등) skip 또는 Enter — 나중에 openclaw setup 다시 돌려서 추가 가능.
11 Skills / 플러그인 / 채널 추가 능력(이미지 생성, 음성) + 채널 연동 (Discord, Telegram, WhatsApp 등) 기본값 또는 skip — 처음엔 가볍게. Discord 봇 연동은 별도 가이드 → 💬 GUIDE-DISCORD-BOT
12 UI (Control Panel) 웹 UI 사용 여부 Yes — 이미 127.0.0.1:18789 로 떠 있음.
13 Tailscale off | serve | funnel off — 외부에서 접속 안 함. Tailscale 사용자만 다른 옵션.
14 Health check 모든 설정 후 자동 점검 자동 진행 — 끝나면 ✓ 표시.

가장 중요한 세 단계:

  • 8번 (모델 provider): ollama 선택하면 별도 키 불필요. 이미 ollama list 에 있는 모델 그대로 사용. 가장 흔한 첫 실행.
  • 8b번 (Ollama base URL) ⚠️ 함정: 기본값 http://127.0.0.1:11434 그대로 두면 Ollama could not be reached at http://127.0.0.1:11434WizardCancelledError: Ollama not reachable 로 마법사 강제 종료. 반드시 http://host.docker.internal:11434 로 변경하세요. ./openclaw setup 이 마법사 시작 전 사전 점검(컨테이너 → host.docker.internal 도달성 확인) + 노란 경고 박스로 미리 알려줌.
  • 4번 (Gateway bind): loopback 가 가장 안전. LAN/외부 노출 옵션은 보안 의미를 알고 선택하세요 (🔒 보안 주의 참조).

완료 후:

  • 설정 저장 위치: ~/.openclaw/openclaw.json (직접 편집 비권장 — 다시 마법사로 변경)
  • ./openclaw setup status 로 핵심 키만 빠르게 확인
  • 바로 대화: docker compose run --rm openclaw-cli tui 또는 ./openclaw chat

상세 옵션 (50+ provider, advanced 플로우의 추가 단계 등): OpenClaw 공식 docs cli/onboard

⚠️ exec 가 아니라 run --rmopenclaw-cli 컨테이너의 entrypoint(node dist/index.js)는 인자 없이 뜨면 help 출력 후 즉시 종료(Exited (1))됩니다. ./openclaw setup 이 이 패턴을 내부적으로 처리. 직접 호출할 때도 항상 run --rm 을 쓰세요.

컨테이너 셸이 필요하면: docker compose run --rm --entrypoint bash openclaw-cli

③ 터미널 REPL 채팅 — ./openclaw chat

호스트 Ollama 와 직접 대화 — 컨테이너·웹 UI 없이도 워크스페이스의 인격 파일(IDENTITY.md · SOUL.md · USER.md 등)을 자동 system prompt 로 로드.

./openclaw chat                       # 인터랙티브 모델 picker + 인격 자동 로드
./openclaw chat -m llama3.1:8b        # 모델 직접 지정 (picker 스킵)
./openclaw chat --no-pick             # picker 끄고 .env 기본 모델 사용
./openclaw chat --no-system           # 인격 무시, 순수 모델

인터랙티브 모델 picker-m 없이 실행하면 설치된 Ollama 모델을 번호 매겨 표시:

  설치된 Ollama 모델 중 선택하세요:
     1) gemma4:26b                                              18.0 GB
     2) llama3.1:8b-instruct-q4_K_M                              4.9 GB  ★ default
     3) qwen2.5:3b-instruct                                      1.9 GB
     4) solar-pro:latest                                        13.3 GB
     ...

  번호 입력 [기본: 2, Enter 로 기본 사용]:
  • 임베딩 모델(nomic-embed-text 등)은 채팅 부적합이라 자동 제외
  • 기본값: .envOLLAMA_MODELS 첫 항목이 설치돼 있으면 그 모델
  • 모델이 1개뿐이면 자동 선택, 0개면 ollama pull 안내
  • 비대화형 환경(NONINTERACTIVE=1)에선 picker 자동 스킵

REPL 안 슬래시 명령(/exit /reset /model /history /help)·자세한 동작은 💬 터미널 채팅 (chat) 섹션 참조.

정상 동작 확인

./openclaw doctor
# 핵심 확인:
#   ✓ OpenClaw 저장소     /Users/mo/DEV/openclaw
#   ✓ 컨테이너 실행       2개 (gateway + cli)
#   ✓ 네트워크 격리       isolated (외부 차단)
#   ✓ Ollama 데몬 / 모델  (호스트 측 준비)

뭔가 ✗ 면 ./openclaw install 한 번 더 — validate_state 가 산출물 부재를 감지해 자동으로 다시 진행합니다.

🌐 외부 네트워크 잠깐 켜기

기본은 isolated (외부 차단). 모델 다운로드·코드 업데이트·pip install 처럼 외부 접속이 필요한 작업 때만 잠깐 열고 곧장 다시 잠그는 게 표준입니다.

./openclaw network online --restart    # 외부 열기 + 컨테이너 재기동
# (필요한 작업 — 예: ollama pull · pip install · git clone …)
./openclaw network isolated --restart   # 끝나면 다시 잠그기
상황 어떻게
./openclaw update (코드·이미지·모델 갱신) 자동update 가 잠깐 online 으로 토글 후 원래 모드로 복귀. 수동 토글 불필요
ollama pull <모델> 처럼 호스트에서만 다운로드 isolated 그대로 OK (Ollama 는 호스트 측이라 컨테이너 네트워크와 무관)
컨테이너 안에서 pip install / npm install / apt-get / git clone online --restart 로 잠깐 열어야 함
컨테이너에서 호스트 Ollama 호출 (host.docker.internal:11434) online --restart 필요 — isolated 에서는 이것도 차단됨
평소 대화·작업 (추가 다운로드 없음) 항상 isolated — 외부 유출 통로 자체가 없으므로 가장 안전

격리 모드의 보안 의미·트레이드오프는 🔒 네트워크 격리 모드 섹션 참조.


🤖 자동화 3종 — 한눈 카탈로그

⚠️ 세팅 먼저, 사용은 그 다음. 아래 세 명령은 모두 해당 setup 스크립트를 한 번 실행한 후 쓸 수 있습니다. 로그인이 필요한 도구(나노바나나 / Figma / 미리캔버스 / CapCut)는 setup 이후 한 번만 *-login 명령으로 세션을 잡아두면 됨.

명령 무엇을 하나 1회 세팅 → 로그인 → 사용 가이드
🌐 surf "..." 웹에서 코스피·뉴스·논문 등 검색 → 마크다운 브리프 (1회용 Docker 샌드박스 안에서) bash scripts/surf-setup.sh → (로그인 불필요) → surf "..." GUIDE-WEB-FETCH.md §8
🎨 creative run "..." Pinterest → 나노바나나(4창 병렬) → Figma 디자인 자동 배치 bash scripts/creative-pipeline-setup.shcreative banana-login creative figma-logincreative run "..." GUIDE-CREATIVE-PIPELINE.md
🎬 shorts run "..." Pinterest → 미리캔버스(1080×1920) → CapCut(9:16 MP4 export) bash scripts/shorts-setup.shshorts miri-login shorts capcut-loginshorts run "..." GUIDE-SHORTS-PIPELINE.md

공통 흐름:

# 1단계 — 세팅 (며등, 따라서 여러 번 실행해도 안전)
#   brew 의존성 설치, Python venv 생성, Playwright Chromium 다운로드,
#   ~/openclaw-{surf,creative,shorts}/ 생성, ~/bin/<명령> 심볼링
bash scripts/surf-setup.sh
bash scripts/creative-pipeline-setup.sh
bash scripts/shorts-setup.sh

# 2단계 — 로그인 (계정마다 딱 1번・창 뜨면 사람이 로그인 후 닫기)
creative banana-login        # Gemini / nano-banana
creative figma-login         # Figma
shorts miri-login            # 미리캔버스
shorts capcut-login          # CapCut Web
# (surf 는 로그인 불필요 — RSS·공개 페이지만 수집)

# 3단계 — 이제부터는 이 명령만
surf     "오늘 코스피 종가와 거래대금"
creative run "동남아시아 풍경 일러스트"
shorts   run "여행 감성 풍경"

모든 자동화는 호스트 영구 프로필 방식 — OpenClaw 본 컨테이너는 isolated 그대로, 호스트 ~/.ssh·OpenClaw .env 접근 0. 각 가이드의 "샌드박스 경계" 섹션 참조.

📚 문서 가이드

어떤 문서부터 봐야 할지 모르겠다면 아래 표를 참고하세요. 한국어/영어 모두 완비.

누구 어디부터 무엇이 있나
설치 직후 — 첫 대화까지 5분 docs/GUIDE-FIRST-USE.md ✓ 설치 완료! 직후 무엇을 치는지: 헬스체크 → UI/CLI 접속 → 첫 프롬프트 → 모델 추가 → 작업 파일 위치 → 일상 운영 → 웹 수집 → 첫 사용 트러블슈팅. KO+EN
�🌱 진짜 처음부터 (폴더 만들기·pwd·cd 부터) docs/GUIDE-FROM-ZERO.md −1단계: 클릭/더블클릭/우클릭 차이, GUI vs CLI, 창·메뉴바·Dock, 파일·폴더·경로 부터 시작 → 터미널 열기 → 5개 핵심 명령 → 한 줄 설치. KO+EN 병기
🪜 완전 수동 설치 (공식 사이트에서 직접 다운) docs/GUIDE-MANUAL-INSTALL.md brew/스크립트 없이 Docker·Ollama·소스 직접 다운. 회사 IT 심사·GitHub 502 회피용. KO+EN 병기
🆕 처음 보는 사람 / 터미널 처음 docs/QUICKSTART-ko.md 터미널 여는 법부터 단계별로, 예시 출력 포함
🇬🇧 English first-timer docs/QUICKSTART-en.md Same as above, in English
📖 단어가 낯설면 (Ollama · Docker · OpenClaw) docs/GUIDE-OLLAMA.md · docs/GUIDE-DOCKER.md · docs/GUIDE-OPENCLAW.md 3분용 기초 가이드 3편 (구조·용어·철학) — KO+EN 병기
🌐 웹에서 코스피·뉴스·환율 가져오기 docs/GUIDE-WEB-FETCH.md 네트워크 토글 사이클·실전 프롬프트·공식 API 키·자동화·트러블슈팅. surf 명령으로 샌드박스 도커 안에서 검색 → 마크다운 도구 포함. KO+EN 병기
🎨 디자이너 워크플로우 자동화 (Pinterest → 나노바나나 → Figma) docs/GUIDE-CREATIVE-PIPELINE.md 4단계 수작업 → 1명령. 나노바나나 4창 병렬로 속도 ~3.7×. KO+EN 병기
🎬 쇼츠 자동화 (Pinterest → 미리캔버스 → CapCut) docs/GUIDE-SHORTS-PIPELINE.md shorts run "키워드" 으로 레퍼런스·1080×1920 디자인·9:16 영상 export. 샌드박스 경계 유지 + 프로그램 설치 안내 포함. KO+EN
💬 Discord 봇으로 OpenClaw 운영 docs/GUIDE-DISCORD-BOT.md 셋업 (앱 생성 → Message Content Intent → OAuth2 invite → 토큰 등록 → 첫 테스트) + 일상 사용 (트리거 4종 · 프롬프트 패턴 · 채널별 모델·인격 · 워크스페이스 파일 인용 · mute/다중 서버 · cheat sheet) + 🎬 §12 상황별 워크플로우 8케이스 (노트북 옆·외출/모바일·팀 협업·파일 작업·시스템 운영·긴 작업+알림·정기 작업·cold boot 직후) + 보안 7항목 + 트러블슈팅 8케이스.
🔄 매일 켜고 끄는 법 (일상 사용) docs/GUIDE-DAILY-USE.md install 끝낸 이후의 사이클 — 시나리오 0 ~ 6: 🆕 cold boot (전원 완전 종료→켜기, 5단계 + 1분 검증 체크리스트, 자동/수동 매트릭스) / 일상 시작 / 자리 비움 / 종료 3단계 (Level 1 macOS 만 vs Level 2 컨테이너 stop vs Level 3 Docker 까지) / 대화 이어가기 / 트러블슈팅 / 유지보수. 종료 방법별 비교 표 (./openclaw stop vs docker compose down vs uninstall).
👤 일반 사용자 README.md (이 문서) 명령 카탈로그·.env·네트워크 격리·FAQ
🇬🇧 General user (EN) README.en.md Full English equivalent of this README
🩺 진단 항목별 상세 가이드 docs/TROUBLESHOOTING.md — doctor 상세 항목별 가이드 OS · RAM · 디스크 · Xcode CLT · Docker 데몬 · 포트 충돌 · compose 보안 경고(docker.sock) 각각에 대한 의미·자동·수동 해결
🚑 문제가 생겼을 때 docs/TROUBLESHOOTING.md 흔한 오류·해결 명령 (KO+EN 병기)
🛡 보안이 궁금한 사람 SECURITY.md · 본문 🔒 보안 주의 · 🔒 네트워크 격리 위협 모델·취약점 신고 절차
🧠 내부 동작 알고 싶음 docs/ARCHITECTURE.md 디스패처·멱등 설계·compose override (KO+EN 병기)
🤝 기여하고 싶음 (처음) docs/GUIDE-CONTRIBUTING.md 비개발자도 환영 — 오타·번역·베타테스트도 기여
🐙 기여하고 싶음 (코드) docs/CONTRIBUTING.md 코드 스타일·PR 절차 (KO+EN 병기)
📦 릴리스 내역 docs/RELEASE_NOTES_v0.1.0.md 변경 사항 (KO+EN 병기)

🤔 이게 뭐예요?

OpenClaw는 사용자 PC에서 셸 명령어 실행·파일 시스템 접근·웹 탐색을 직접 수행할 수 있는 강력한 오픈소스 AI 에이전트입니다. 강력한 만큼 보안이 중요해서, 반드시 Docker 같은 격리된 환경(샌드박스) 에서 실행해야 합니다.

이 프로젝트는 그 셋업을 새 맥북에서 한 번에 끝낼 수 있게 해주는 도구입니다.

이 도구가 해주는 것 이 도구가 안 하는 것
Docker · Ollama · Homebrew(필요 시) 자동 설치 (스크립트) OpenClaw 자체 개발/수정
OpenClaw 저장소 clone & 컨테이너 기동 클라우드 호스팅 (그건 ClawBro.ai)
매일 자동 업데이트 (launchd · Windows 작업 스케줄러) 네이티브 Linux (WSL 외) 자동 설치
Windows 10/11 (WSL2 위임 + PowerShell 진입점) 멀티 인스턴스 동시 운영
백업·복원·완전 제거
보안 하드닝 (read-only, cap_drop, 127.0.0.1만 바인딩 등) OpenClaw 의 채널 연동 (Telegram 등)

📋 명령 카탈로그

명령 한 줄 설명
./openclaw (또는 menu) 대화형 메뉴 (한국어/영어 자동) — 모든 작업을 번호로 선택
./openclaw setup [status] OpenClaw 첫 설정/재설정 마법사 (openclaw onboard 를 Docker 안에서 안전 실행, 언제든 재실행 가능)
./openclaw chat [-m MODEL] 터미널 REPL 로 에이전트와 채팅 (인터랙티브 모델 picker + IDENTITY/SOUL/USER 자동 로드)
./openclaw doctor 현재 시스템/설치 상태 점검 (✓/✗/⚠ 표)
./openclaw install 부족한 부분만 자동 설치. 중간에 끊겨도 이어서 진행
./openclaw start 컨테이너 시작
./openclaw stop 컨테이너 정지 (데이터 보존)
./openclaw logs [service] 컨테이너 로그 실시간 보기 (시크릿 자동 마스킹)
./openclaw update 코드 pull + 이미지 갱신 + Ollama 모델 갱신
./openclaw backup [--name N] 볼륨+.env 백업 (sha256, 선택적 GPG 암호화)
./openclaw restore <file> 백업 파일에서 안전 복원 (체크섬·미리보기 검증)
./openclaw schedule enable|disable|status 매일 자동 업데이트 launchd 등록/해제
./openclaw network status|isolated|online 외부 인터넷 차단 토글 (기본: isolated)
./openclaw models list|add|remove|pull|suggest 로컬 LLM 모델 관리 (·env 자동 수정)
./openclaw clean [--light|--all|--status] 메모리·디스크 정리 (비개발자용 대화형)
./openclaw uninstall [--purge] OpenClaw 제거. --purge 면 Docker/Ollama까지

💬 터미널 채팅 (chat)

호스트 Ollama 만으로 워크스페이스의 에이전트와 즉시 대화할 수 있습니다. 컨테이너·웹 UI 없이도 됩니다 — 모델 받자마자 바로 "안녕"이 가능합니다.

./openclaw chat                          # 인터랙티브 모델 picker + 인격 자동 로드
./openclaw chat -m llama3.1:8b           # 모델 직접 지정 (picker 스킵)
./openclaw chat --no-pick                # picker 끄고 .env 기본 모델 사용
./openclaw chat --no-system              # 인격 파일 무시, 순수 모델
./openclaw chat --host http://127.0.0.1:11434   # Ollama 호스트 변경

🎯 인터랙티브 모델 picker-m 없이 실행하면 ollama list 의 설치 모델을 번호 매겨 보여줍니다:

  • 임베딩 모델(nomic-embed-text · *-embed-* 등)은 채팅 부적합이라 자동 제외
  • 기본값(★): .envOLLAMA_MODELS 첫 항목이 설치 목록에 있으면 그 모델
  • 모델이 1개만 있으면 묻지 않고 자동 선택, 0개ollama pull 추천 모델 안내 후 종료
  • Enter → 기본값 / 번호 입력 → 그 모델 / 잘못된 입력은 거절
  • 비대화형(NONINTERACTIVE=1, 파이프 stdin, --no-pick, 또는 -m 명시) 환경에서는 picker 자동 스킵

REPL 안 슬래시 명령

명령 동작
/exit · /quit · /q 종료
/reset 대화 컨텍스트 초기화 (system prompt 는 유지)
/model <name> 모델 즉시 전환
/history 현재 system/user/assistant 메시지 수
/help · /? 도움말

자동 인격 로드$OPENCLAW_WORKSPACE_DIR (기본 ~/DEV/openclawAgent) 에 다음 파일들이 있으면 묶어서 system prompt 로 주입합니다:

  • IDENTITY.md — 에이전트의 이름·종류·말투
  • SOUL.md — 가치·태도·금지선
  • USER.md — 사용자(당신)에 대한 메모
  • AGENTS.md — 워크스페이스 운영 규칙
  • MEMORY.md — 장기 기억(있을 때만)

덕분에 새 세션이라도 에이전트가 자기 이름과 당신을 기억한 상태로 대답합니다. 인격 파일이 하나도 없으면 일반 어시스턴트처럼 동작합니다.

전제 — 호스트에 Ollama 가 떠 있고, 선택한 모델이 로컬에 받아져 있어야 합니다.

./openclaw doctor                                  # 상태 점검
./openclaw models add qwen2.5-coder:7b             # 모델 없으면 받기
./openclaw chat                                    # 채팅 시작

ℹ️ 외부 인터넷 차단(network isolated) 상태와 무관하게 작동합니다 — 채팅은 컨테이너가 아니라 호스트 Ollama 와 직접 통신하기 때문입니다.


🩺 진단 / doctor 항목별 가이드

./openclaw doctor 는 설치 전·후 언제든 안전하게 돌리는 명령입니다. 한 번에 모든 항목을 ✓ / ✗ / ⚠ 로 보여주며, 부족한 항목은 거의 모두 ./openclaw install 이 자동으로 채워줍니다.

다만 각 항목이 무슨 뜻이고, 자동으로 뭐를 하고, 수동으로 고친다면 어떻게 하는지, 자주 생기는 문제는 무엇인지 는 따로 정리되어 있습니다. 항목 이름을 클릭하세요 — TROUBLESHOOTING — doctor 항목별 상세 가이드 으로 갑니다.

항목 일반적 상태 자동 해결 수동/문제 시 가이드
OS / CPU / RAM / 디스크 하드웨어 설명·최소 권장치 — (하드웨어) 하드웨어 요구
Xcode CLT git · 컴파일러 도구 install 이 설치 다이얼로그 호출 Xcode CLT
Homebrew macOS 패키지 매니저 install 이 공식 스크립트 실행 Homebrew
Docker / Compose v2 샌드박스 런타임 install 이 Docker Desktop 설치 + 실행 Docker 설치/첫 실행
Docker 데몬 ✗ Docker Desktop 앱이 꺼져 있음 install 이 앱을 엽니다 (첫 실행 시 일회성 시스템 비밀번호 필요) Docker 데몬 ✗
Ollama / Ollama 데몬 / 모델 로컬 LLM 서비스 install 이 설치 + brew services start Ollama
OpenClaw 저장소 에이전트 본체 소스 install 이 git clone (존재하면 pull) OpenClaw 저장소
컨테이너 실행 0개 에이전트가 마지막 종료 상태 ./openclaw start 컨테이너 0개
포트 충돌 11434 다른 Ollama/동일 포트 프로세스 — (수동 확인 필요) 포트 충돌 11434
⚠ 자동 업데이트 launchd 미등록 ./openclaw schedule enable (선택) 스케줄
⚠ 네트워크 격리 online (일시 허용) ./openclaw network isolated --restart 네트워크 명시적 격리
한국 소버린 AI EXAONE · A.X · Solar 감지 — (자동 감지만) 한국 소버린 AI

설치 중 멈춘 시 — 단계별 장애 가이드

./openclaw install 은 멱등 설계라 중단되어도 같은 명령을 다시 치면 마지막 실패 단계부터 이어서 진행됩니다. 이어서도 계속 실패하는 경우:

실패 단계 일반적 원인 가이드
xcode_clt 애플 서버 일시 장애 / OS 너무 옛 버전 Xcode CLT
brew Homebrew 설치 스크립트 다운로드 실패 (회사 프록시) Homebrew
docker_install / docker_start 데몬 멈춤 · Rosetta · 약관 동의 Docker 첫 실행
ollama_install / ollama_start brew services 권한 또는 포트 충돌 Ollama · 포트 충돌 11434
repo_clone GitHub 502 / 사내 프록시 GitHub 502 우회 · 완전 수동
compose_scan — "/var/run/docker.sock 마운트 발견" OpenClaw fork 가 호스트 Docker 명령권을 요구 compose 보안 경고
env_merge 존재하는 .env 권한 .env 병합 실패
compose_up 포트 점유 / 이미지 pull 실패 / 디스크 부족 compose up 실패
health 컨테이너는 떴는데 초기화가 오래 걸림 헬스체크 실패

특정 단계만 다시 돌리려면 상태 파일에서 해당 줄을 지웁니다:

# 예: docker_start 만 다시
sed -i '' '/^docker_start=done$/d' ~/.openclaw-mgr/state
./openclaw install

🔄 업데이트 흐름

두 종류의 업데이트가 있습니다 — 워크스페이스 자체OpenClaw 컨테이너·이미지·모델.

# 1) 이 런처 자체 갱신 (이 저장소의 코드)
./openclaw self-update

# 2) OpenClaw 코드 + Docker 이미지 + Ollama 모델 갱신
./openclaw update
#   ├ 필요한 동안만 자동으로 isolated → online 으로 전환
#   └ 완료 후 원래 모드로 복귀

# 3) 매일 새벽 자동 돌아가게 (선택)
./openclaw schedule enable
./openclaw schedule status   # 다음 실행 시각 확인
./openclaw schedule disable  # 해제

업데이트 전에는 백업 한 번을 권장합니다:

./openclaw backup --name before-update
./openclaw update
# 문제 시:
./openclaw restore ~/openclaw-backups/openclaw-...-before-update.tar.gz

launchd 스케줄이 안 돌 때의 진단은 TROUBLESHOOTING — 자동 업데이트 스케줄 참조.

다른 컴퓨터에서 최신 받고 재설치 (이미 한 번 설치한 머신)

cd ~/DEV/openclawAgent/openclaw-workspace        # 첫 설치 시 사용한 경로
git pull --ff-only origin main                    # 또는 ./openclaw-mgr/openclaw self-update
sed -i '' '/^compose_up=done$/d' ~/.openclaw-mgr/state   # 막힌 단계 마커만 리셋
cd openclaw-mgr && ./openclaw install             # 끝난 단계는 자동 스킵
./openclaw doctor                                 # 정상 동작 확인

처음부터 다시 깨끗이 하려면 rm ~/.openclaw-mgr/state./openclaw install.

git pull 후 무엇을 다시 돌릴지 변경 종류별 가이드와 14개 단계 마커 전체 목록은 GUIDE-MANUAL-INSTALL — 7.2 git pull 후 무엇을 다시 해야 하나 참조. 자주 쓰는 마커 리셋 한 줄 모음은 7.4 절.


🤖 모델 관리 — 내 로컬 Ollama 모델 그대로 쓰기

핵심: OpenClaw 의 컨테이너는 호스트의 Ollama (host.docker.internal:11434) 를 공유합니다. 이미 ollama pull 로 받아둔 모델은 재설치 필요 없으며, 아래 목록이 그리는 그대로 동작합니다.

사용자 PC                                          OpenClaw 컨테이너
┌──────────────────────────────┐                  ┌──────────────────────┐
│ ollama list                  │   <─── 같은 ───> │ host.docker.internal │
│  • solar-pro                 │      Ollama      │      :11434          │
│  • exaone4.0                 │      서비스       │   (이 모델들 그대로  │
│  • qwen2.5-coder:7b          │                  │    사용 가능)        │
└──────────────────────────────┘                  └──────────────────────┘

비개발자 모드 (한 줄 명령)

openclaw models                  # 현재 .env 목록 + 로컬 설치된 모델 모두 보기
openclaw models suggest          # 24GB 맥용 추천 모델 목록
openclaw models add llama3.1:8b  # .env 에 추가 + 자동 pull
openclaw models remove llama3.1:8b           # .env 에서 빼기 (모델 파일은 남김)
openclaw models remove llama3.1:8b --purge   # 모델 파일까지 삭제
openclaw models pull llava:7b    # .env 건들지 않고 pull 만

메뉴에서는 14번 "모델 목록·추가". .env 파일을 직접 열 필요 없습니다.

개발자 모드 (직접 편집 또는 호스트 명령)

세 가지 메커니즘 중 아무거나:

  1. .env 직접 편집openclaw update (컨테이너도 같이 갱신)
    $EDITOR ~/.openclaw-mgr/.env   # OLLAMA_MODELS="qwen2.5-coder:7b,llama3.1:8b"
    openclaw update
  2. 호스트에서 그냥 ollama pull — OpenClaw 는 별도 설정 없이 즉시 사용 가능 (UI 에서 모델 선택)
    ollama pull qwen2.5:14b
  3. openclaw models add ... --no-pull — 명단에만 등록하고 다음번 update 때 받기

⚠️ isolated 모드 주의

기본값 isolated 에서는 호스트 Ollama 도 차단 됩니다 (컨테이너→외부 완전 차단). 로컬 LLM 을 쓰려면:

openclaw network online --restart    # 일시 허용
# 작업…
openclaw network isolated --restart   # 다시 잠그기 (항상 이 상태 권장)

💡 참고: openclaw update 는 필요한 동안만 자동으로 online 으로 전환하고 끝나면 원래 모드로 복귀합니다. openclaw models addollama pull 은 호스트에서 돌아 컨테이너 네트워크 토글한 필요 없습니다 (호스트 인터넷만 필요).


⚙️ 설정 (.env)

.env.example 의 모든 변수에 주석이 달려 있습니다. 핵심:

OPENCLAW_REPO="https://github.com/openclaw/openclaw.git"  # 공식 URL
OPENCLAW_DIR="$HOME/openclaw"                             # 클론 위치
OPENCLAW_PORT="8000"                                      # 항상 127.0.0.1 만
ENABLE_OLLAMA="1"                                         # 0=외부 API만 사용
OLLAMA_MODELS="qwen2.5-coder:7b"                          # 콤마 구분
OPENCLAW_PIN_COMMIT=""                                    # 보안: 특정 커밋 고정
SCHEDULE_TIME="03:00"                                     # 자동 업데이트 시각
BACKUP_DIR="$HOME/openclaw-backups"
BACKUP_KEEP="7"                                           # 오래된 것 자동 삭제
BACKUP_ENCRYPT="1"                                        # .env GPG 암호화

💻 셸 호환성 (zsh / bash)

맥에서 기본 셸은 zsh 입니다. 이 도구는 모든 스크립트가 #!/usr/bin/env bash 로 시작해 항상 bash 로 실행되므로, zsh 사용자가 그대로 써도 100% 호환 됩니다.

# zsh 에서도 동일하게:
./openclaw doctor
./openclaw install

수동으로 라이브러리 함수를 셸에 불러올 일은 없으니 source / . 호환은 신경쓰지 않아도 됩니다.


🇰🇷 한국 소버린 AI 와 함께 쓰기

같은 메인테이너의 자매 프로젝트 korea-sovereign-ai (LG EXAONE / SKT A.X / Upstage Solar) 와 자연 호환 됩니다. 둘 다 호스트 Ollama 를 공유하기 때문에 한 번 깔아두면 OpenClaw 가 그 모델들을 그대로 쓸 수 있습니다.

# 한국 소버린 AI 먼저 깔기 (선택)
git clone https://github.com/GoGoComputer/korea-sovereign-ai.git ~/DEV/llmDev/korea-ai
cd ~/DEV/llmDev/korea-ai && ./install.sh --minimal     # EXAONE + A.X (~5GB)

# 그 다음 OpenClaw 에서 한 줄로 등록 (·env 자동 수정):
openclaw models add exaone3.5:7.8b solar-pro:22b

./openclaw doctor 가 자동으로 한국 모델을 감지해 한국 소버린 AI: ✓ 로 표시합니다. 메모리는 24GB 에서 동시 1개 모델만 로드하는 걸 권장합니다 (./openclaw clean 으로 다른 모델 언로드 가능).


🧹 메모리·디스크 정리 (비개발자용)

Docker 와 Ollama 는 시간이 갈수록 디스크와 메모리를 많이 차지할 수 있습니다. 한 줄 명령으로 정리:

./openclaw clean --status   # 현재 사용량만 보고
./openclaw clean            # 대화형 — 단계마다 y/n 묻기 (안전)
./openclaw clean --light    # 캐시·정지 컨테이너만 (빠름·안전)
./openclaw clean --all      # 강함: 미사용 이미지·모델 삭제 + macOS 메모리 압축

--all 모드는 sudo purge (macOS 통합메모리 압축)를 실행할 때만 비밀번호를 한 번 묻습니다. 데이터(볼륨·.env·백업)는 절대 건드리지 않습니다.


🔒 네트워크 격리 모드 (명시적 외부 차단 토글)

완전 차단이 기본값 입니다. 설치/업데이트 때만 잠깐 열어서 쓰세요.

./openclaw network status                  # 현재 모드 보기
./openclaw network online --restart        # 일시적으로 열기 (설치/업데이트용)
./openclaw network isolated --restart      # 다시 잠그기 ← 항상 이 상태로 둘 것
모드 아웃바운드(컨테이너→외부) 웹UI(127.0.0.1:18789) host Ollama 언제 쓰나
isolated 🔒 (기본) 완전 차단 접속 안됨 연결 안됨 터미널 CLI 만 쓸 때 — 최고 보안
online 🌐 허용 접속 ✓ 연결 ✓ 웹UI 사용 / 설치 / 업데이트 / 모델 다운로드

⚠️ Docker 제약: 컨테이너가 internal: true 네트워크에만 연결되면 Docker 가 port publishing(docker-proxy)을 자동으로 비활성화합니다. 그래서 isolated 모드에선 127.0.0.1:18789 에 호스트가 접근할 통로가 없습니다. 웹UI 가 필요하면 반드시 ./openclaw network online --restart 로 잠깐 전환하세요. 작업이 끝나면 다시 isolated.

🔒 isolated (기본) 에서 막히는

  • 컨테이너 안에서 외부 DNS / 외부 IP 로 나가는 모든 통신.
  • 호스트→컨테이너 인바운드(웹UI 포트 등) — Docker 가 port publishing 자체를 끔.
  • 이 때문에 다음이 안 됩니다 — 허용하려면 online 으로 잠깐 전환:
    • 브라우저 웹UI (http://127.0.0.1:18789) — 인바운드 차단
    • pip install <패키지>, npm install, apt-get update
    • git clone https://github.com/... 등 GitHub·GitLab 다운로드
    • Hugging Face / pypi / docker registry 다운로드
    • 호스트의 Ollama 호출 (host.docker.internal:11434)
    • 외부로의 데이터 유출 시도 (악성 주입·제로데이 이메일 프롬프트 등) 도 자동으로 차단.

🔒 isolated 에서도 되는

  • ./openclaw chat — 호스트 Ollama 직접 사용 (컨테이너 우회)
  • docker compose run --rm openclaw-cli tui — 컨테이너 안에서 직접 CLI (네트워크 무관하게 STDIN/STDOUT)
  • 워크스페이스 파일 읽기·쓰기
  • 컨테이너에 이미 설치된 모델·코드 사용

어떤 상황에서 유용한가요?

  • 궁극 보안: AI 에이전트가 웹을 돌아다니며 코드/패키지를 다운로드해 실행할 때 악성 패키지/익스플로잇을 가져오는 경로 자체를 막아 버립니다.
  • 데이터 유출 공격 대비: 프롬프트 인젝션으로 "내 파일을 X 주소로 보내" 라는 시도가 있어도 네트워크 자체가 없으니 나갈 수 있는 통로가 물리적으로 없는 상태.
  • 공공 Wi-Fi: 카페·공항 와이파이에 접속해서도 외부 서버↔컨테이너가 온전히 차단되어 있으니 안전.

설치/업데이트용 표준 워크플로우

./openclaw network online --restart    # 잠깐 열고
./openclaw update                       # 업데이트
./openclaw network isolated --restart   # 곧장 다시 잠그기

./openclaw update 는 이 과정을 자동으로 처리합니다 (잠깐 online→완료 후 이전 모드로 복귀).


🔒 보안 주의 (꼭 읽으세요)

OpenClaw 에이전트는 셸과 파일을 직접 만지는 권한을 가집니다. 안전하게 쓰려면:

  1. 샌드박스(Docker)를 절대 우회하지 마세요. 호스트에 직접 설치하면 안 됩니다.
  2. 민감한 폴더를 마운트 금지 — 다음 폴더는 절대 컨테이너에 :rw 로 노출하지 마세요:
    • ~/.ssh, ~/.aws, ~/.gnupg, ~/.config, ~/Library, /etc, /var, /usr
  3. .env 를 커밋하지 마세요. .gitignore 에 이미 들어 있습니다. 만약 실수로 올렸다면 즉시 키를 회전하세요.
  4. OLLAMA_HOST=0.0.0.0 사용 금지 — Mac 에서는 host.docker.internal 로 충분합니다. 0.0.0.0 은 LAN/공용 Wi-Fi에서 모델을 노출시킵니다.
  5. OPENCLAW_PIN_COMMIT 권장 — 검증된 커밋으로 핀하면 공급망 공격에 강해집니다.
  6. 외부 노출은 모두 127.0.0.1 만 — compose.security.yml 이 강제합니다.
  7. 백업의 .env 는 GPG 대칭키로 암호화됩니다 (BACKUP_ENCRYPT=1).
  8. 취약점 발견 시 공개 이슈 대신 SECURITY.md 절차를 따라주세요.

자세한 위협 모델과 컨테이너 하드닝 옵션은 docs/ARCHITECTURE.md 를 참조하세요.


❓ FAQ

Docker Desktop 이 안 켜져요

./openclaw install 이 자동으로 open -a "Docker" 를 실행하지만, 첫 실행 시 약관 동의가 필요합니다. 동의 후 다시 ./openclaw install 하면 이어서 진행됩니다.

포트 11434 가 이미 사용 중이래요

다른 Ollama 인스턴스가 떠 있을 수 있습니다.

lsof -nP -iTCP:11434 -sTCP:LISTEN
brew services restart ollama
다른 Ollama 모델로 바꾸려면?

가장 간단: openclaw models add <이름> (·env 자동 수정 + pull). 이미 로컬에 있는 모델은 openclaw models 로 모두 확인. 추천 목록은 openclaw models suggest. 수동으로 하고 싶으면 .envOLLAMA_MODELS 편집 후 ./openclaw update. 24GB RAM 에서는 7~8B 추천, 13B 이상은 자동 경고.

백업은 어디에 저장되나요?

~/openclaw-backups/openclaw-YYYYmmdd-HHMMSS-<name>.tar.gz (그리고 .sha256). 위치는 .envBACKUP_DIR 로 변경 가능. 보관 개수는 BACKUP_KEEP (기본 7개).

완전히 지우고 싶어요
./openclaw backup --name before-uninstall   # 안전을 위해
./openclaw uninstall --purge                # Docker/Ollama 까지 제거
설치를 중간에 멈췄는데 다시 시작하면?

./openclaw install 을 다시 실행하세요. 이미 끝난 단계는 [skip] 로 표시되고 남은 단계만 진행합니다. (상태 파일: ~/.openclaw-mgr/state)

TUI/Discord 봇이 메시지에 답 안 함 — fetch failed / LLM request failed: network connection error

네트워크는 정상(./openclaw doctor 다 ✓, host Ollama 응답 OK)인데 TUI 메시지마다 fetch failed, Discord 봇 Online 인데 응답 무 — 모델 이름 미스매치 케이스입니다.

OpenClaw 본체가 onboard 중 OLLAMA_DEFAULT_MODEL = "gemma4" 같은 하드코딩된 가짜 기본값을 모델 목록 맨 앞에 끼워 넣습니다. 사용자가 실제 깐 모델은 gemma4:26b 처럼 태그가 붙은 형태라 Ollama 가 gemma4 호출에 404 로 응답 → OpenClaw 에서는 fetch failed.

진단:

ollama list                                              # 실제 설치된 이름들
python3 -c 'import json; [print(m["id"]) for m in json.load(open("/Users/mo/.openclaw/openclaw.json"))["models"]["providers"]["ollama"]["models"]]'   # config 에 등록된 이름들
# 1번엔 없고 2번에만 있는 항목 = 가짜

해결 (v0.2.11+, 가장 빠른 방법):

cd ~/DEV/openclawAgent/openclaw-workspace/openclaw-mgr
git pull
./openclaw setup --skip-confirm
# 마법사 후처리에서 'PRUNE_OK_DROPPED: gemma4' 같은 메시지 + 자동 백업
# TUI 종료 후 다시 시작:  docker compose run --rm openclaw-cli tui

또는 가짜 이름을 진짜로 만들기:

ollama pull gemma4    # 'gemma4' = 'gemma4:latest' 가 실제로 받아짐 → 호출 성공

자세한 진단·세 가지 해결법: GUIDE-DAILY-USE.md — 현재 어떤 모델을 쓰는지.

setup 마법사가 Ollama not reachable 로 끊겨요 — 호스트엔 Ollama 가 떠 있는데도

마법사가 묻는 "Ollama base URL" 단계에서 기본값 http://127.0.0.1:11434 그대로 두면 Ollama could not be reached at http://127.0.0.1:11434WizardCancelledError: Ollama not reachable 로 강제 종료됩니다.

원인: 마법사는 컨테이너 안에서 실행되는데, 컨테이너 안의 127.0.0.1 은 컨테이너 자신을 가리켜요. 호스트의 Ollama 는 컨테이너 입장에서 host.docker.internal:11434 로 접근해야 합니다.

해결 — 그 단계에서 입력값을 http://host.docker.internal:11434 로 바꿔주세요:

Ollama base URL
> http://host.docker.internal:11434       ← 127.0.0.1 을 지우고 이걸 입력

./openclaw setup (v0.2.8+) 은 마법사 시작 전 컨테이너 → host.docker.internal 도달성 사전 점검 + 노란 박스 안내로 미리 알려줍니다. 그래도 깜빡했다면 ./openclaw setup 다시 실행 — 멱등이니까 안전.

확인:

# 컨테이너에서 호스트 Ollama 가 보이는지
cd ~/DEV/openclaw
docker compose run --rm --entrypoint sh openclaw-cli \
  -c 'curl -sf http://host.docker.internal:11434/api/tags | head -c 80'
# {"models":[...  ← 응답 나오면 OK

참고: OpenClaw 본체는 이 URL 을 환경변수/CLI 플래그로 받지 않고 마법사 안에서만 입력 가능합니다. 그래서 setup.sh 가 자동 주입할 수는 없고, 명확히 안내하는 게 최선.

🔬 기술 배경 (펼치기) — 도달성 비교 + upstream 우회 불가 증거

컨테이너 안에서 직접 curl 한 결과:

URL 도달성 이유
http://127.0.0.1:11434 (마법사 기본값) ✗ NOT REACHABLE 컨테이너 안의 loopback 은 컨테이너 자신을 가리킴
http://host.docker.internal:11434 (정답) ✓ REACHABLE Docker Desktop 이 컨테이너에 자동 주입하는 특수 호스트명, 호스트 머신을 가리킴

직접 재현:

cd ~/DEV/openclaw
docker compose run --rm --entrypoint sh openclaw-cli -c '
  curl -sf --max-time 3 http://127.0.0.1:11434/api/tags && echo OK_127 || echo FAIL_127;
  curl -sf --max-time 3 http://host.docker.internal:11434/api/tags >/dev/null && echo OK_HDI || echo FAIL_HDI
'
# → FAIL_127
#   OK_HDI

OpenClaw 본체에 우회로 없음 — 검증 흔적:

  1. env 변수 검사/app/dist 전체에서 process.env.OLLAMA* 검색

    docker compose run --rm --entrypoint sh openclaw-cli -c \
      'grep -hroE "process\.env\.[A-Z_]*OLLAMA[A-Z_]*" /app/dist | sort -u'
    # → (출력 없음. OLLAMA URL 관련 env 검사 없음)

    참고로 OLLAMA_API_KEY 만 읽지만 이건 인증용이지 URL 무관.

  2. CLI 플래그 검사onboard --help 출력에 --ollama-base-url 같은 플래그가 있는지

    --custom-base-url <url>    # 있긴 한데 'custom' provider 전용
    --auth-choice ... ollama   # 'ollama' 는 provider 선택 옵션일 뿐, URL 지정 아님
    

    Ollama 전용 base URL 플래그 없음.

  3. 하드코딩 출처 — 마법사 프롬프트 정의 (/app/dist/setup-CtbggUuv.js)

    async function promptForOllamaBaseUrl(prompter) {
      return resolveOllamaApiBase((await prompter.text({
        message: "Ollama base URL",
        initialValue: "http://127.0.0.1:11434",   // ← 하드코딩
        placeholder: "http://127.0.0.1:11434",
        validate: (value) => value?.trim() ? void 0 : "Required"
      }) ?? "").trim().replace(/\/+$/, ""));
    }

    OLLAMA_DEFAULT_BASE_URL 도 단순 상수 (/app/dist/defaults-JS7ic3Yx.js):

    const OLLAMA_DEFAULT_BASE_URL = "http://127.0.0.1:11434";

결론: env 변수도 플래그도 없고 prompt initialValue 가 하드코딩이므로, setup.sh 가 마법사 시작 전에 값을 주입할 방법이 없습니다. 그래서 v0.2.8 의 fix 는 사전 점검 + 화면에 큰 경고 박스로 사용자에게 정확한 입력값을 알려주는 방식.

setup.sh 가 마법사 띄우기 전 실제로 하는 일 (cmd/setup.sh v0.2.8):

1) docker compose run --rm --no-deps openclaw-cli curl http://host.docker.internal:11434/api/tags
   → 응답 OK 면 host_ollama_ok=1, NOK 면 0
2) 응답 OK → 노란색 박스 출력:
   ┌─────────────────────────────────────────────────────────────┐
   │ ⚠  마법사 안에서 "Ollama base URL" 단계가 나오면 다음을 입력 │
   │    http://host.docker.internal:11434                         │
   │ 기본값으로 보이는 http://127.0.0.1:11434 는 컨테이너 자신을  │
   │ 가리켜서 호스트 Ollama 에 닿지 못합니다.                     │
   └─────────────────────────────────────────────────────────────┘
3) 응답 NOK → warn + confirm 후 진행 (Ollama 꺼져 있거나 isolated 모드)
4) docker compose run --rm openclaw-cli onboard 실행
5) 마법사가 non-zero 로 끝나면 종료 메시지에 URL 수정 힌트 표시
웹UI 페이지는 떴는데 본문이 까만 빈 화면이에요 — 채팅창이 안 보여요

http://127.0.0.1:18789 가 열렸고 탭 제목이 OpenClaw Control 인데 본문이 검은 빈 화면이라면 — 버그 아니라 정상입니다. 이 빌드의 웹 UI 는 관리 콘솔(Control Panel) 이고 채팅 인터페이스는 들어있지 않을 수 있어요. GUIDE-FIRST-USE.md 도 "OpenClaw 본체 버전에 따라 UI 가 내장되어 있을 수도, API 만 있을 수도 있음" 이라고 명시.

채팅을 시작하는 세 가지 방법:

# ① 가장 빠름 — 호스트 Ollama 직접, 설정 불필요
./openclaw chat

# ② 본체 OpenClaw 풀 기능 — 첫 설정 후 TUI 채팅
cd ~/DEV/openclaw
docker compose run --rm openclaw-cli onboard      # 한 번만
docker compose run --rm openclaw-cli tui          # 매번

# ③ 한 줄 명령
docker compose run --rm openclaw-cli agent --message "안녕"

⚠️ docker compose exec openclaw-cli bash 는 작동하지 않습니다 — 이 컨테이너의 entrypoint 가 즉시 종료형(node dist/index.js → help 출력 후 Exited (1))이라 exec 대상이 살아있지 않아요. 항상 run --rm 을 쓰세요.

웹UI(http://127.0.0.1:18789) 가 "Safari Can't Connect" 로 뜨는데 컨테이너는 떠 있어요

./openclaw doctor 에서 ✓ 가 다 뜨고 docker ps 로 컨테이너도 healthy 인데 브라우저는 못 붙는다면 — 거의 100% isolated 모드 때문입니다. Docker 의 internal: true 네트워크는 호스트→컨테이너 port publishing 도 같이 끄기 때문에 127.0.0.1:18789 가 호스트에서 접근 불가가 됩니다.

확인:

docker ps --format '{{.Names}}\t{{.Ports}}' | grep gateway
# 정상(online):    127.0.0.1:18789-18790->18789-18790/tcp
# 비정상(isolated): 18789-18790/tcp        ← publish 안 됨

해결 — 잠깐 online 으로 전환:

./openclaw network online --restart
open http://127.0.0.1:18789
# (작업 끝나면)
./openclaw network isolated --restart

웹UI 가 필요 없고 터미널만 쓰면 isolated 그대로 가능 — ./openclaw chat 또는 docker compose run --rm openclaw-cli tui 는 네트워크 publish 와 무관하게 동작합니다.

install 이 자꾸 [skip] 만 뜨고 마지막에 "샌드박스 미설정" 경고가 떠요

state 파일이 "다 됐다"고 주장하는데 실제 산출물(클론·.env·sandbox compose 오버레이)이 사라진 케이스입니다. 대표적인 발생 경로:

  • ~/DEV/openclaw 를 수동으로 지웠음
  • Docker Desktop 부팅 직후 install 했을 때 docker.sock 이 잠깐 안 잡혀서 step_sandbox 가 일찍 빠졌고, 그 사이 마커가 박힘

자동 복구: ./openclaw install 진입 직후 validate_state 가 산출물 부재를 감지해 관련 마커를 자동으로 해제합니다 — 그냥 다시 install 한 번이면 됩니다.

cd ~/DEV/openclawAgent/openclaw-workspace
git pull --ff-only origin main   # validate_state 패치 받기
./openclaw install               # 자동으로 빠진 단계만 다시 실행
./openclaw doctor                # 검증

수동으로 처음부터 다시 깨끗이 하고 싶으면 rm ~/.openclaw-mgr/state./openclaw install.

맥북이 느려졌어요 / 메모리가 가득 찼어요
./openclaw clean --status   # 무엇이 얼마나 차지하는지 보기
./openclaw clean            # 단계별 y/n 으로 안전하게 정리

Docker/Ollama 가 시간이 갈수록 캐시·이미지를 쌓습니다. 위 명령은 데이터(볼륨·.env·백업)는 절대 건드리지 않고 캐시·미사용 이미지만 청소합니다.

한국어 LLM(EXAONE/A.X/Solar)도 같이 쓸 수 있나요?

네. korea-sovereign-ai 를 먼저 깔면 호스트 Ollama 에 한국 모델들이 등록되고, OpenClaw 가 host.docker.internal:11434 로 그대로 사용합니다. ./openclaw doctor 가 자동 감지합니다.

⚠ 단, 기본 isolated 모드에서는 host Ollama 도 차단됩니다. 한국 모델을 쓰려면 ./openclaw network online --restart 로 잠깐 열어야 합니다.

OpenClaw 가 제 컴퓨터의 어디까지 접근하나요? 이 폴더 안에서만 동작하나요?

기본적으로 컨테이너(Docker) 안에서만 동작하며, 호스트(맥북) 의 파일을 직접 건드리지 못합니다.

무엇 접근 가능?
컨테이너 내부 파일시스템 ✅ (read-only 루트 + /tmp tmpfs)
Docker 볼륨 (백업·세션 데이터)
호스트의 ~/Documents, ~/.ssh, ~/Library ❌ (마운트 안 함)
호스트 USB·외장 디스크
호스트의 다른 앱 (브라우저 쿠키 등)
외부 인터넷 ❌ (isolated 모드 — 기본값) / ✅ (online)

즉, 사용자가 의도적으로 폴더를 마운트해 주지 않는 한 OpenClaw 는 자기 컨테이너 박스 안에서만 일합니다. 폴더를 공유하고 싶으면 OpenClaw 의 base docker-compose.ymlvolumes: 항목을 직접 추가하세요. (보안상 ~/Desktop/openclaw-share 같은 전용 폴더 권장)

AI 가 인터넷에서 악성 코드를 다운로드해서 실행할 수 있나요?

기본 isolated 모드에서는 불가능합니다. Docker 네트워크 자체를 internal: true 로 만들어 컨테이너에서 외부로 나가는 모든 패킷이 막힙니다. DNS 도 막혀 도메인 해석조차 안 됩니다.

pip install, npm install, git clone https://..., Hugging Face 다운로드 모두 차단됩니다. 잠깐 필요할 때만 ./openclaw network online --restart 로 여세요.

AI 가 제 데이터를 외부로 빼돌릴 수 있나요?

기본 isolated 모드에서는 불가능합니다. 외부로 나가는 통로 자체가 없으니, 프롬프트 인젝션 등으로 "이 파일 내용을 X 서버로 보내" 라는 지시가 들어와도 실행 불가합니다.

추가 방어:

  • 로그 출력 시 자동 비밀 마스킹 (./openclaw logs)
  • 백업의 .env 는 GPG 암호화
  • 모든 포트는 127.0.0.1 바인딩 (LAN 노출 안 함)
AI 가 제 파일을 지우거나 수정할 수 있나요?

호스트 파일은 못 건드립니다 (위 폴더 접근 표 참조). 컨테이너 안의 파일만 수정 가능하며, 컨테이너의 루트 파일시스템도 read_only: true 로 잠겨 있어 임시 파일은 /tmp (tmpfs, 재시작 시 삭제) 에만 쓸 수 있습니다.

영구 데이터는 Docker 볼륨에 저장되며, ./openclaw backup 으로 언제든 복구 가능합니다.

스크립트가 제 시스템을 마음대로 바꾸나요? 안전한가요?

설치/삭제 동작은 모두 사용자 확인 후 진행되며, 스크립트가 하는 일은:

  • Homebrew, Docker Desktop, Ollama 설치 (공식 채널)
  • ~/DEV/openclaw 에 OpenClaw clone
  • launchd 에 매일 update 스케줄 등록 (활성화 했을 때만)
  • ~/.openclaw-mgr/ 에 상태 파일 저장

sudo 는 거의 쓰지 않으며, 쓰는 곳은 clean --allsudo purge (메모리 압축, 표준 macOS 명령) 한 곳뿐입니다. 모든 소스가 공개돼 있고 50줄 안에 1번씩 주석으로 설명돼 있어 직접 읽어볼 수 있습니다.

Docker Desktop / Ollama 가 자동으로 켜지나요?

./openclaw start 가 Docker Desktop 을 자동 실행합니다 (open -a Docker). Ollama 는 Homebrew 서비스로 등록돼 부팅 시 자동 시작합니다 (brew services start ollama).

Wi-Fi 가 끊겨도 OpenClaw 가 동작하나요?

isolated 모드에서는 어차피 인터넷을 안 쓰므로 완전히 정상 동작 합니다 (이미 깔린 모델·코드만 사용). online 모드일 때 Wi-Fi 가 끊기면 외부 API 호출만 실패하고 나머지는 동작합니다.

여러 사람이 같은 맥에서 쓸 수 있나요?

각자 다른 macOS 사용자 계정으로 로그인해 따로 설치하는 걸 권장합니다 (OPENCLAW_DIR, BACKUP_DIR$HOME 기준이므로 자연스럽게 분리). 같은 계정 내 멀티 인스턴스는 현재 미지원입니다.

업그레이드하다 깨지면 어떡하죠?
./openclaw backup --name before-upgrade   # 항상 먼저 백업
./openclaw update
# 문제 시:
./openclaw restore ~/openclaw-backups/openclaw-...-before-upgrade.tar.gz

updategit pull --ff-only 만 사용해 강제 머지가 없고, 실패해도 데이터(볼륨) 는 그대로입니다.

회사 보안 정책으로 외부 통신이 일부 차단된 환경에서도 되나요?

isolated 모드는 어차피 외부 통신을 안 하므로 영향 없습니다. install / update 시점에만 인터넷이 필요한데, 사내 프록시가 있는 경우 셸 환경 변수 HTTPS_PROXY, HTTP_PROXY 가 docker / git / brew 에 자동 적용됩니다. 자체 서명 인증서가 필요하면 macOS 키체인에 등록하면 됩니다.


🛠 개발자용

디렉터리 구조

openclaw-mgr/
├── openclaw                # macOS/Linux 진입 디스패처 (bash) — 서브커맨드 라우팅 + .env 로드
├── openclaw.ps1            # Windows 진입 디스패처 (PowerShell) — WSL2 위임 + 네이티브 보조
├── .env.example            # 환경 변수 템플릿
├── compose.security.yml    # 보안 override (read_only, cap_drop, ...)
├── lib/                    # bash 공용 (macOS/WSL2)
│   ├── common.sh           # 로그·확인·멱등 단계 관리 (run_step, state)
│   ├── sec.sh              # 입력 검증·시크릿 마스킹·위험 마운트 검사
│   ├── detect.sh           # 시스템 상태 KV 출력 (eval 가능)
│   └── prompt.sh           # 대화형 입력 헬퍼
├── lib-win/                # PowerShell 공용 (Windows 측)
│   └── common.ps1          # 색상·로그·멱등 단계·UTF-8 no-BOM 파일 쓰기
├── cmd/                    # bash 서브커맨드 (macOS/WSL2)
│   ├── doctor.sh           # 진단 (✓/✗/⚠)
│   ├── install.sh          # 멱등 설치 (이어서 진행)
│   ├── start.sh / stop.sh / logs.sh
│   ├── update.sh           # git pull --ff-only + compose 갱신
│   ├── backup.sh / restore.sh
│   ├── uninstall.sh        # --purge 옵션
│   └── schedule.sh         # launchd plist enable/disable/status
├── cmd-win/                # PowerShell 서브커맨드 (Windows 네이티브 영역)
│   ├── install-bootstrap.ps1  # winget · WSL2 · Git · Docker Desktop · Ollama 사전 설치
│   ├── doctor.ps1             # Windows 측 진단 (WSL2/포트/한글 경로 함정)
│   └── schedule.ps1           # 작업 스케줄러 (Register-ScheduledTask)
├── etc/
│   └── pre-commit.tmpl     # gitleaks 훅
└── docs/
    ├── QUICKSTART-ko.md
    ├── ARCHITECTURE.md
    ├── TROUBLESHOOTING.md
    └── CONTRIBUTING.md

멱등 설계 (state 파일 포맷)

~/.openclaw-mgr/state 는 한 줄에 KEY=done 형태로 누적됩니다.

xcode_clt=done
brew=done
docker_install=done
docker_start=done
ollama_install=done
ollama_start=done
ollama_models=done
repo_clone=done
compose_scan=done
env_merge=done
compose_up=done
health=done
lockdown=done
sandbox=done

./openclaw installstate_has KEY 검사 후 done 이면 단계를 건너뜁니다. 특정 단계만 다시 돌리려면 그 줄을 지우면 됩니다.

🔄 산출물 자동 검증 (validate_state)

state 파일이 "다 됐다"고 말하는데 실제 산출물이 사라졌으면 install 시작 직후 마커를 자동으로 해제합니다. "사용자가 폴더를 지우거나 컨테이너를 정리한 뒤 다시 install 했더니 영원히 [skip] 만 뜨더라" 같은 함정을 방지합니다.

발견 조건 자동 해제되는 마커
OPENCLAW_DIR/.git 부재 (클론이 사라짐) repo_clone · compose_scan · env_merge · compose_up · health · lockdown · sandbox
OPENCLAW_DIR/.env 부재 env_merge · compose_up · health · lockdown · sandbox
docker-compose.sandbox.yml 부재 + docker.sock 가용 sandbox

추가로 step_sandboxdocker.sock 부재로 보류된 경우(SANDBOX_DEFERRED=1) run_step 후에 마커를 다시 풀어, 다음 install 에서 자동 재시도되도록 합니다. 한 번 done 으로 박혀 영영 스킵되는 과거 버그(Docker Desktop 부팅 직후 install 했을 때 흔히 발생) 재발 방지.

요약: "한 번 한 건 안 다시 한다"가 아니라 "산출물이 아직 있을 때만 한 걸로 친다" 가 진짜 멱등 계약.

정적 검사

# Bash 문법 검사
find openclaw-mgr -name '*.sh' -exec bash -n {} \;
# 진입 스크립트
bash -n openclaw-mgr/openclaw

# shellcheck (brew install shellcheck)
shellcheck -S style openclaw-mgr/openclaw openclaw-mgr/lib/*.sh openclaw-mgr/cmd/*.sh

# shfmt (brew install shfmt)
shfmt -d -i 2 openclaw-mgr

기여하기

docs/CONTRIBUTING.md 를 참조하세요.

자체 게시 (자기 fork 를 GitHub 에 올릴 때)

brew install gh
gh auth login
./scripts/publish.sh        # 메인 저장소 생성·푸시·토픽·v0.1.0 릴리스까지 자동

Homebrew 탭 공식 배포는 현재 공식 경로에서 제외되었습니다. 설치는 스크립트 한 가지 경로로 통일되며, 완전 수동 경로(docs/GUIDE-MANUAL-INSTALL.md)를 백업으로 제공합니다. Formula/ 디렉토리와 scripts/publish-tap.sh 는 내부·실험을 위해 남겨두지만, 공식 안내에서는 git clone 경로만 권장합니다.


📜 라이선스

MIT © 2026 박성모 Park Sungmo

ClawBro / OpenClaw 상표 및 코드는 각 권리자의 자산입니다. 이 저장소는 어떤 공식 기관과도 제휴 관계가 없습니다.

About

macOS 로컬 AI 자동화 — Docker + Ollama + OpenClaw 에이전트를 한 줄(./openclaw install)로 설치·관리. 8시간 강의 교재 포함. Local AI automation on macOS — install, manage & secure a self-hosted AI agent in one command.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors