← Back to Plugins
Tools

Wsl Onboarding

OpenClaw-Korea By OpenClaw-Korea 👁 31 views ▲ 0 votes

Claude Code plugin: WSL2-only OpenClaw onboarding from npm install to a running Gateway + Control UI dashboard

GitHub

Install

npm install -g

Configuration Example

{"ts":"2026-04-19T14:36:35Z","status":"success","duration_s":380,"model":"openai/gpt-5.4-mini","steps":{"install":"ok","path_fix":"appended","onboard":"ok","gateway":"listening"},"warnings":["stale gateway killed"]}
{"ts":"2026-04-19T15:13:10Z","status":"failure","duration_s":67,"phase":"onboard","error":"--xai-api-key flag not recognized; run openclaw onboard --help","warnings":[]}

README

# openclaw-wsl-onboarding-plugin

Claude Code์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค. WSL2 ์•ˆ์—์„œ [OpenClaw](https://openclaw.ai)๋ฅผ **npm ์„ค์น˜๋ถ€ํ„ฐ Gateway ์‹คํ–‰ + Control UI ๋Œ€์‹œ๋ณด๋“œ ์˜คํ”ˆ๊นŒ์ง€** ํ•œ ๋ฒˆ์— ๋๋‚ด์ค๋‹ˆ๋‹ค.

---

## Why โ€” ์™œ ๋งŒ๋“ค์—ˆ๋‚˜

OpenClaw ์ฒ˜์Œ ๊น”์•„๋ณด๋ฉด ๋‹ค์Œ ์ง€์ ์—์„œ ์ž์ฃผ ๋ง‰ํž™๋‹ˆ๋‹ค.

- **๋„ค์ดํ‹ฐ๋ธŒ Windows ์„ค์น˜ ๊ฒฝ๋กœ์˜ ๋งˆ์ฐฐ**: Gateway๋ฅผ ์„œ๋น„์Šค๋กœ ๋“ฑ๋กํ•˜๋ ค๋ฉด Scheduled Task ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค๋ฅธ OpenClaw ์ธ์Šคํ„ด์Šค(WSL์ชฝ ๋“ฑ)์™€ Bonjour/mDNS ์ด๋ฆ„ ์ถฉ๋Œ๋กœ `(2)`, `(3)`์ด ๋ถ™์œผ๋ฉฐ ๋กœ๊ทธ๊ฐ€ ๋„๋ฐฐ๋ฉ๋‹ˆ๋‹ค.
- **๋น„๋Œ€ํ™”ํ˜• onboarding์˜ ์ˆจ๊ฒจ์ง„ ํ”Œ๋ž˜๊ทธ๋“ค**: `--accept-risk`๊ฐ€ ๋น ์ง€๋ฉด ์ฆ‰์‹œ ๊ฑฐ๋ถ€๋˜๊ณ , `--skip-daemon`์„ ์•ˆ ์“ฐ๋ฉด ์„œ๋น„์Šค ์„ค์น˜ ๋‹จ๊ณ„์—์„œ ์‹คํŒจํ•˜๋ฉฐ, `--skip-health`๊ฐ€ ์—†์œผ๋ฉด ์•„์ง ๋œจ์ง€๋„ ์•Š์€ Gateway๋ฅผ health checkํ•˜๋Ÿฌ ๊ฐ€๋‹ค ํ„ฐ์ง‘๋‹ˆ๋‹ค.
- **API ํ‚ค ์ €์žฅ ๋ชจ๋“œ์˜ ํ•จ์ •**: `--secret-input-mode ref`๋กœ ์˜จ๋ณด๋”ฉํ•˜๋ฉด TUI๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค `No API key found for provider "<provider>". Auth store: ~/.openclaw/agents/main/agent/auth-profiles.json` ์—๋Ÿฌ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. env var๊ฐ€ ํ•ด๋‹น ์‰˜์— export๋ผ์žˆ์–ด์•ผ๋งŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
- **PATH๊ฐ€ ์Šคํฌ๋ฆฝํŠธ์—์„œ๋งŒ ์•ˆ ๋จนํžˆ๋Š” ๋ฌธ์ œ**: Ubuntu ๊ธฐ๋ณธ `~/.bashrc`๋Š” ํŒŒ์ผ ์ฒซ ๋ถ€๋ถ„์—์„œ ๋น„๋Œ€ํ™”ํ˜• ์‰˜์ด๋ฉด ์ฆ‰์‹œ `return`ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ ๋’ค์— ์ถ”๊ฐ€ํ•œ PATH export๊ฐ€ `bash -lc`๋กœ ๋“ค์–ด์˜จ ๋ช…๋ น์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ `openclaw: command not found`๊ฐ€ ์Šคํฌ๋ฆฝํŠธ์—์„œ๋งŒ ๋‚ฉ๋‹ˆ๋‹ค.
- **์„ค์ • ํ‚ค ์ด๋ฆ„์˜ ๋น„์ž๋ช…ํ•จ**: mDNS๋ฅผ ๋„๊ณ  ์‹ถ์–ด์„œ `gateway.advertise.mdns = false`๋ผ๊ณ  ์“ฐ๋ฉด `Unrecognized key`๋กœ ํŠ•๊น๋‹ˆ๋‹ค. ์‹ค์ œ ํ‚ค๋Š” `gateway.discovery.mdns.mode`์ด๊ณ  ๊ฐ’์€ `off | minimal | full`์ž…๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์œ„ ์ง€์ ๋“ค์„ **ํ•œ ๋ฒˆ ๊ฒช์€ ์‚ฌ๋žŒ์ด ์ •๋‹ต๋งŒ ์ถ”๋ ค์„œ** ์Šคํฌ๋ฆฝํŠธ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ฌถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™๋ฃŒ๊ฐ€ OpenClaw๋ฅผ ์ƒˆ WSL์— ์ฒ˜์Œ ๊น” ๋•Œ ๊ฐ™์€ ํ•จ์ •์„ ๋‹ค์‹œ ๋ฐŸ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

---

## What โ€” ๋ฌด์—‡์ด ๋“ค์–ด์žˆ๋‚˜

```
.
โ”œโ”€โ”€ .claude-plugin/plugin.json            # ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆํŽ˜์ŠคํŠธ
โ””โ”€โ”€ skills/openclaw-onboarding/SKILL.md   # ์„ค์น˜~๋Œ€์‹œ๋ณด๋“œ ์˜คํ”ˆ + ์‹คํ–‰ ๋กœ๊ทธ ์ž‘์„ฑ๊นŒ์ง€ ์ „๋ถ€
```

๋‹จ ํ•˜๋‚˜์˜ ์Šคํ‚ฌ์ด ์ „์ฒด ํ”Œ๋กœ์šฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ์—์ด์ „ํŠธ๋‚˜ ํ›…์€ ๋„ฃ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค โ€” ํ•œ ์ฐจ๋ก€ ๋„ฃ์–ด๋ดค์ง€๋งŒ, ๋กœ๊ทธ ์ž‘์„ฑ ์ฃผ์ฒด๊ฐ€ ์Šคํ‚ฌ ๋ณธ์ธ์œผ๋กœ ์ถฉ๋ถ„ํ•ด์ง€๋Š” ์ˆœ๊ฐ„ ๋ณ„๋„ ์ปดํฌ๋„ŒํŠธ๋Š” ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

**์Šคํ‚ฌ์ด ํ•˜๋Š” ์ผ** (ํ˜ธ์ถœ๋˜๋ฉด ์ˆœ์„œ๋Œ€๋กœ)

1. `AskUserQuestion` ํผ์œผ๋กœ LLM provider์™€ (์„ ํƒ) ๋ชจ๋ธ ID๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค
2. ์‚ฌ์šฉ์ž์—๊ฒŒ **`C:\Users\<username>\Downloads\api.txt`** ํŒŒ์ผ์— API ํ‚ค๋ฅผ ํ‰๋ฌธ ํ•œ ์ค„๋กœ ์ €์žฅํ•ด๋‹ฌ๋ผ๊ณ  ์•ˆ๋‚ดํ•œ๋‹ค. ํ‚ค๋Š” ๋Œ€ํ™”์ฐฝ์— ์ ˆ๋Œ€ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค
3. WSL2 ์•ˆ์—์„œ Node ๋ฒ„์ „์„ ํ™•์ธํ•œ๋‹ค
4. `npm install -g openclaw` ๋กœ ์„ค์น˜ํ•œ๋‹ค
5. `~/.profile` ์— `~/.npm-global/bin` PATH ๋ธ”๋ก์ด ์—†์œผ๋ฉด ์ถ”๊ฐ€ํ•œ๋‹ค (๋น„๋Œ€ํ™”ํ˜• ์‰˜์—์„œ `openclaw` ํ•ด์ƒ ๋ณด์žฅ)
6. `openclaw onboard --non-interactive --accept-risk --<provider>-api-key "$(cat /mnt/c/Users/<win_user>/Downloads/api.txt)" --skip-daemon --skip-channels --skip-health --secret-input-mode plaintext` ๋กœ ์˜จ๋ณด๋”ฉ. `$(cat โ€ฆ)` ์น˜ํ™˜์€ WSL ์‰˜ ์•ˆ์—์„œ๋งŒ ํ‰๊ฐ€๋˜๋ฏ€๋กœ ํ‚ค ๋ฐ”์ดํŠธ๋Š” Claude ์ปจํ…์ŠคํŠธ์— ๋“ค์–ด์˜ค์ง€ ์•Š๋Š”๋‹ค
7. ์˜จ๋ณด๋”ฉ์ด ์ธ์ฆ ํ”„๋กœํ•„ ํŒŒ์ผ์„ ์ •์ƒ ์ƒ์„ฑํ•˜๋ฉด `Downloads/api.txt` ๋ฅผ ์‚ญ์ œํ•ด ๊ฐ™์€ ํ‚ค๊ฐ€ ๋””์Šคํฌ์— ๋‘ ๋ฒŒ ๋‚จ์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค
8. ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ธ์„ ์ง€์ •ํ–ˆ์œผ๋ฉด `~/.openclaw/openclaw.json` ์„ ํŒŒ์ด์ฌ์œผ๋กœ ํŽธ์ง‘ํ•ด `agents.defaults.model.primary` ๋ฅผ ์ƒˆ ๋ชจ๋ธ ID๋กœ ๋ฐ”๊พธ๊ณ , `agents.defaults.models` ์—๋„ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•œ๋‹ค
9. ์ข€๋น„ Gateway ๊ฐ€ ์žˆ์œผ๋ฉด `pkill -9 -f openclaw-gateway` ๋กœ ์ •๋ฆฌ
10. `nohup openclaw gateway run` ๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ธฐ๋™ ํ›„ `127.0.0.1:18789` LISTEN ์ƒํƒœ๋ฅผ ์ตœ๋Œ€ 10์ดˆ๊นŒ์ง€ ํด๋ง
11. ์„ค์ • ํŒŒ์ผ์—์„œ Gateway ์ธ์ฆ ํ† ํฐ์„ ์ถ”์ถœํ•ด ๋Œ€์‹œ๋ณด๋“œ URL + ํ† ํฐ + ๊ฒฝ๊ณ  ์‚ฌํ•ญ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ
12. `~/.claude/logs/openclaw-onboarding.log` ์— ์ด๋ฒˆ ์‹คํ–‰ ์š”์•ฝ JSONL ํ•œ ์ค„์„ append (์„ฑ๊ณต/์‹คํŒจ ๋ชจ๋‘)

**์„ค๊ณ„์ƒ ํ•œ๊ณ„ (์˜๋„๋œ ์ œ์•ฝ)**

- **WSL2 ์ „์šฉ**: ๋„ค์ดํ‹ฐ๋ธŒ Windows ๊ฒฝ๋กœ๋Š” ์˜๋„์ ์œผ๋กœ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ์ชฝ์€ ํ•จ์ •์ด ๋งŽ์•„ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ํ›จ์”ฌ ํฝ๋‹ˆ๋‹ค.
- **๋กœ์ปฌ ๋ฃจํ”„๋ฐฑ ์‹ฑ๊ธ€ ์œ ์ €**: Gateway๋Š” `127.0.0.1:18789` ์— ๋ฐ”์ธ๋“œํ•ฉ๋‹ˆ๋‹ค. LAN ๋…ธ์ถœ์€ ๋ฒ”์œ„ ๋ฐ–์ž…๋‹ˆ๋‹ค.
- **API ํ‚ค ํ‰๋ฌธ ์ €์žฅ**: ์˜จ๋ณด๋”ฉ ํ›„ ํ‚ค๋Š” `~/.openclaw/agents/main/agent/auth-profiles.json` ์— ํŒŒ์ผ ๊ถŒํ•œ 600์œผ๋กœ ํ‰๋ฌธ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. `ref` ๋ชจ๋“œ์˜ ๋Ÿฐํƒ€์ž„ env ์˜์กด ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ์˜๋„์  ์„ ํƒ์ด๋ฉฐ, ๊ณต์œ  ๋จธ์‹ ์—๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- **ํ‚ค ์ „๋‹ฌ ๊ฒฝ๋กœ**: ์‚ฌ์šฉ์ž๋Š” ํ‚ค๋ฅผ ๋Œ€ํ™”์ฐฝ์— ๋ถ™์—ฌ๋„ฃ์ง€ ์•Š๊ณ  `Downloads/api.txt` ํŒŒ์ผ์— ์ €์žฅํ•˜๋ฉฐ, ์Šคํ‚ฌ์€ WSL ์•ˆ์˜ shell substitution์œผ๋กœ๋งŒ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ๋กœ ๋•์— ํ‚ค ์›๋ฌธ์€ Claude Code ๋Œ€ํ™” ์ „์‚ฌ, ํˆด ํ˜ธ์ถœ ์ธ์ž, ํˆด ๊ฒฐ๊ณผ ์ค‘ ์–ด๋””์—๋„ ๋‚จ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜จ๋ณด๋”ฉ์ด ์„ฑ๊ณตํ•˜๋ฉด `api.txt` ๋Š” ์ฆ‰์‹œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

---

## How โ€” ์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜

### ์„ค์น˜

Claude Code ์„ธ์…˜์—์„œ:

```
/plugin install https://github.com/OpenClaw-Korea/openclaw-wsl-onboarding-plugin
```

๋˜๋Š” ๋กœ์ปฌ ํด๋ก  ํ›„ ๊ฒฝ๋กœ๋กœ ์„ค์น˜:

```bash
git clone https://github.com/OpenClaw-Korea/openclaw-wsl-onboarding-plugin \
  ~/.claude/local-plugins/openclaw-onboarding
```
```
/plugin install ~/.claude/local-plugins/openclaw-onboarding
```

### ์‚ฌ์ „ ์กฐ๊ฑด

ํ˜ธ์ŠคํŠธ(Windows):

- Windows 10 ์ด์ƒ + WSL2 ํ™œ์„ฑํ™”
- WSL์— Ubuntu(๋˜๋Š” ํ˜ธํ™˜ ๋ฐฐํฌํŒ) ์„ค์น˜

WSL ๋‚ด๋ถ€:

- Node 24 ๊ถŒ์žฅ (22.14+ ํ—ˆ์šฉ)
- `npm`, `python3`, `jq` โ€” Ubuntu ๊ธฐ๋ณธ ์…‹์— ํฌํ•จ๋จ

### ์‹คํ–‰

Claude Code ๋Œ€ํ™” ์ค‘์— ์•„๋ž˜ ๋น„์Šทํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์Šคํ‚ฌ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

- "openclaw WSL์— ๊น”์•„์ค˜"
- "openclaw ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ค์ •"
- "install openclaw"
- "get the openclaw dashboard running"

์Šคํ‚ฌ์ด provider์™€ API ํ‚ค๋ฅผ ๋ฌป๊ณ , ์›ํ•˜๋Š” ๋ชจ๋ธ ID(์„ ํƒ)๊นŒ์ง€ ๋ฐ›์€ ๋’ค subagent์— ์ผ์„ ๋„˜๊น๋‹ˆ๋‹ค. subagent๋Š” WSL ์•ˆ์—์„œ ์ „์ฒด ํ”Œ๋กœ์šฐ๋ฅผ ๋Œ๋ฆฐ ๋’ค ๋‹ค์Œ์„ ๋ฆฌํฌํŠธํ•ฉ๋‹ˆ๋‹ค.

- ๋Œ€์‹œ๋ณด๋“œ URL (๋ณดํ†ต `http://127.0.0.1:18789/`)
- Gateway ์ธ์ฆ ํ† ํฐ
- ์‚ฌ์šฉ๋œ primary ๋ชจ๋ธ
- ๊ฒฝ๊ณ  ์‚ฌํ•ญ(๊ธฐ์กด ์„ค์น˜ ๋ฆฌ์…‹, PATH ์ˆ˜์ •, ์ข€๋น„ Gateway ์ •๋ฆฌ ๋“ฑ)
- ๋‹ค์Œ ์•ก์…˜(๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐ / `openclaw tui` ์‹คํ–‰)

### ๋กœ๊ทธ ํ™•์ธ

๋งค ์‹คํ–‰๋งˆ๋‹ค `~/.claude/logs/openclaw-onboarding.log` ์— JSONL ํ•œ ์ค„์ด ๋‚จ์Šต๋‹ˆ๋‹ค.

```bash
wsl -e bash -c "tail -f ~/.claude/logs/openclaw-onboarding.log"
```

์˜ˆ์‹œ:

```json
{"ts":"2026-04-19T14:36:35Z","status":"success","duration_s":380,"model":"openai/gpt-5.4-mini","steps":{"install":"ok","path_fix":"appended","onboard":"ok","gateway":"listening"},"warnings":["stale gateway killed"]}
{"ts":"2026-04-19T15:13:10Z","status":"failure","duration_s":67,"phase":"onboard","error":"--xai-api-key flag not recognized; run openclaw onboard --help","warnings":[]}
```

jq๋กœ ๋ฐ”๋กœ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```bash
# ์ตœ๊ทผ ์‹คํŒจ๋งŒ
jq -c 'select(.status=="failure")' ~/.claude/logs/openclaw-onboarding.log

# ์ž์ฃผ ๋œจ๋Š” warning ์ง‘๊ณ„
jq -r '.warnings[]?' ~/.claude/logs/openclaw-onboarding.log | sort | uniq -c | sort -rn

# ํ‰๊ท  ์„ฑ๊ณต duration (์ดˆ)
jq -s '[.[] | select(.status=="success") | .duration_s] | add/length' ~/.claude/logs/openclaw-onboarding.log
```

---

## ๋ณด์•ˆ ๊ถŒ๊ณ 

- ๊ฐ€๋Šฅํ•˜๋ฉด API ํ‚ค๋ฅผ Claude Code ์ฑ„ํŒ…์— ์ง์ ‘ ๋ถ™์—ฌ๋„ฃ์ง€ ๋งˆ์„ธ์š”. ์ฑ„ํŒ… ์ „์‚ฌ์— ๋‚จ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ถ™์—ฌ๋„ฃ์—ˆ๋‹ค๋ฉด ์˜จ๋ณด๋”ฉ์ด ๋๋‚˜๋Š” ์ฆ‰์‹œ provider์˜ ํ‚ค ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ **rotate**ํ•˜์„ธ์š”.
- ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ‚ค๋ฅผ ์™ธ๋ถ€๋กœ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WSL ์•ˆ์—์„œ `openclaw onboard`๋ฅผ ๋กœ์ปฌ๋กœ ํ˜ธ์ถœํ•  ๋ฟ์ด๋ฉฐ, ํ‚ค๋Š” OpenClaw๊ฐ€ ์ž์ฒด ํŒŒ์ผ(`~/.openclaw/agents/main/agent/auth-profiles.json`)์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
- Gateway๋Š” loopback ๋ฐ”์ธ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. `gateway.bind`๋ฅผ `lan` ๋˜๋Š” `auto`๋กœ ๋ฐ”๊พธ๊ธฐ ์ „์— ํ•ด๋‹น ๋„คํŠธ์›Œํฌ์˜ ์ ‘๊ทผ ์ฃผ์ฒด๋ฅผ ๋ฐ˜๋“œ์‹œ ์ ๊ฒ€ํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ํ† ํฐ์„ ์„ค์ •ํ•˜์„ธ์š”.

---

## ๋ผ์ด์„ ์Šค

MIT
tools

Comments

Sign in to leave a comment

Loading comments...