๋ธŒ๋ผ์šฐ์ € ๋ฆด๋ ˆ์ด๋ฅผ ์˜ค๋ž˜ ์“ฐ๋‹ค ๋ณด๋ฉด, ๋„๊ตฌ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ ์›์ธ์€ ๋Œ€๋ถ€๋ถ„ ์šด์˜ ๊ตฌ์กฐ์— ์žˆ๋‹ค. ํŠนํžˆ โ€œ์–ด๋–ค ํ”„๋กœํ•„๋กœ ๋ถ™๋Š”์ง€โ€์™€ โ€œํฌํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆด๋Š”์ง€โ€๋ฅผ ๋จผ์ € ๊ณ ์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ํƒญ ON์„ ๋ˆŒ๋Ÿฌ๋„ ์—ฐ๊ฒฐ์ด ํ”๋“ค๋ฆฐ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ๋œ ๊นจ์ง€๋Š” ๊ธฐ์ค€์„ ์„ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•œ ์šด์˜ ๊ฐ€์ด๋“œ๋‹ค.

์•ˆ๋‚ด: ๋ณธ๋ฌธ์€ ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•˜๊ณ , ์šด์˜ ๋กœ๊ทธ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ๋žŒ์ด ๊ฒ€์ˆ˜ํ•ด ๋ณด์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

flowchart LR
A[๋ฌธ์ œ ์ธ์ง€: ๋ฆด๋ ˆ์ด ์—ฐ๊ฒฐ ์‹คํŒจ] --> B[์›์ธ ๋ถ„ํ•ด: ํ”„๋กœํ•„/ํฌํŠธ/๊ณ„์ •]
B --> C{๋Œ€์‘ ์„ ํƒ}
C --> D[๊ธฐ๋ณธ: openclaw profile]
C --> E[์˜ˆ์™ธ: chrome relay + ํƒญ ON attach]
D --> F[์‹คํ–‰/๊ฒ€์ฆ]
E --> F

๊ฒฐ๋ก  ๋จผ์ €

๋ธŒ๋ผ์šฐ์ € ์ž‘์—…์„ ์•ˆ์ •์ ์œผ๋กœ ๊ตด๋ฆฌ๋ ค๋ฉด, ๊ธฐ๋ณธ profile=openclaw + ์˜ˆ์™ธ profile=chrome(ํƒญ attach ํ•„์ˆ˜) ๊ตฌ์กฐ๋กœ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๋‹ค.

์™œ ์ž๊พธ ์‹คํŒจ์ฒ˜๋Ÿผ ๋ณด์ด๋‚˜

๊ฐ™์€ โ€œ๋ธŒ๋ผ์šฐ์ € ์—ฐ๊ฒฐโ€์ด๋ผ๋„ ์‹ค์ œ ๋™์ž‘ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค.

  • profile=chrome: ํ™•์žฅ(Extension) ํƒญ attach๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํƒญ ON์ด ๋Š๊ธฐ๋ฉด ๋ฐ”๋กœ 0 tabs ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
  • profile=openclaw: OpenClaw๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ „์šฉ ๋ธŒ๋ผ์šฐ์ €๋ผ attach ํด๋ฆญ ๊ณผ์ •์ด ์—†๋‹ค.

์ด ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๋ฉด, ํ„ฐ๋„์€ ์ •์ƒ์ธ๋ฐ๋„ โ€œ์™œ ์•ˆ ๋ถ™์ง€?โ€๊ฐ€ ๋ฐ˜๋ณต๋œ๋‹ค.

์น ํŒ ํŒ์„œํ˜• ์น˜ํŠธ์‹œํŠธ

  1. ์ผ๋ฐ˜ ์—…๋ฌด ๊ธฐ๋ณธ๊ฐ’์€ profile=openclaw.
  2. ๊ธฐ์กด Chrome ์„ธ์…˜์ด ๊ผญ ํ•„์š”ํ•  ๋•Œ๋งŒ profile=chrome + ํƒญ attach ON.
  3. 37/39 ๋™์‹œ ์šด์˜์€ ๋กœ์ปฌ ํฌํŠธ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ถ„๋ฆฌ(2879x / 3879x).
  4. ์‹คํŒจ ์‹œ status โ†’ tabs โ†’ ํฌํŠธ์ ์œ (lsof) 3๋‹จ๊ณ„๋กœ ํ™•์ธ.

๊ฐœ๋…/์›์ธ/๋Œ€์‘/์‹คํ–‰ (MECE)

1) ๊ฐœ๋…: ํ”„๋กœํ•„ 2๊ฐœ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์“ด๋‹ค

  • openclaw ํ”„๋กœํ•„: ์ž๋™ํ™” ์•ˆ์ •์„ฑ ์šฐ์„ 
  • chrome ํ”„๋กœํ•„: ๊ธฐ์กด ํƒญ/์ฟ ํ‚ค ์žฌ์‚ฌ์šฉ ์šฐ์„ 

๊ณต์‹ ์ฐธ๊ณ : OpenClaw browser CLI/profile ๋™์ž‘์€ openclaw browser ๋ฌธ์„œ ๊ธฐ์ค€์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
https://docs.openclaw.ai/cli/browser

2) ์›์ธ: ํ˜„์žฅ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ํ„ฐ์ง€๋Š” 4๊ฐ€์ง€

  1. chrome๋กœ ๋ถ™์–ด ์žˆ๋Š”๋ฐ ํƒญ ON attach๋ฅผ ์•ˆ ํ•จ
  2. options ํŽ˜์ด์ง€์—์„œ๋งŒ ๋ณด๊ณ  โ€œ๋ถ™์—ˆ๋‹คโ€๊ณ  ์˜คํ•ดํ•จ(์‹ค์ œ ์ž‘์—… ํƒญ attach ๋ˆ„๋ฝ)
  3. 37/39๋ฅผ ๊ฐ™์€ ๋กœ์ปฌ ํฌํŠธ๋กœ ํฌ์›Œ๋”ฉํ•ด์„œ ์ถฉ๋Œ
  4. alias์™€ ํ•จ์ˆ˜๋ฅผ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ค‘๋ณต ์ •์˜ํ•ด์„œ ์…ธ ๋กœ๋”ฉ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

3) ๋Œ€์‘: ์šด์˜ ๊ธฐ์ค€์„ 

  • ๊ธฐ๋ณธ ์šด์˜: profile=openclaw ๊ณ ์ •
  • ์˜ˆ์™ธ ์šด์˜: profile=chrome (ํƒญ attach ํ•„์ˆ˜)
  • ๋ฉ€ํ‹ฐ๋จธ์‹ : ํฌํŠธ ๋ถ„๋ฆฌ + ์Šคํฌ๋ฆฝํŠธ ๋ถ„๋ฆฌ + SSH Host ๋ณ„์นญ ์‚ฌ์šฉ

์ฐธ๊ณ  ์‹ฌํ™” ๋ฌธ์„œ(์„ ํƒ):
28. ๋“€์–ผ ๋ฆด๋ ˆ์ด ์šด์˜ ๊ฐ€์ด๋“œ

4) ์‹คํ–‰: ๋น ๋ฅธ ์ ๊ฒ€ ๋ช…๋ น

# ํ˜„์žฌ ํ”„๋กœํ•„ ์ƒํƒœ ํ™•์ธ
openclaw browser status --browser-profile openclaw
openclaw browser status --browser-profile chrome
 
# ํƒญ ๊ฐ์ง€ ํ™•์ธ
openclaw browser tabs --browser-profile openclaw
openclaw browser tabs --browser-profile chrome
 
# ํฌํŠธ ์ ์œ  ํ™•์ธ(์ถฉ๋Œ ํƒ์ง€)
lsof -nP -iTCP:18789 -sTCP:LISTEN
lsof -nP -iTCP:18792 -sTCP:LISTEN

ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” ๊ธฐ๋ณธ ์„ธํŒ… (์ด ๋ฌธ์„œ๋งŒ์œผ๋กœ)

์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋ฉด, 12๋ฒˆ ๋ฌธ์„œ๋งŒ ๋ณด๊ณ ๋„ ์‹ค์ œ ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

1) SSH Host ๋ณ„์นญ ๊ณ ์ •

~/.ssh/config์— ๋จธ์‹ ๋ณ„ ๋ณ„์นญ์„ ๋จผ์ € ๋งŒ๋“ ๋‹ค.

Host relay37
  HostName <HOST_37_IP_OR_DNS>
  User <HOST_37_USER>
  IdentityFile ~/.ssh/<HOST_37_KEY>
  IdentitiesOnly yes
 
Host relay39
  HostName <HOST_39_IP_OR_DNS>
  User <HOST_39_USER>
  IdentityFile ~/.ssh/<HOST_39_KEY>
  IdentitiesOnly yes

๊ฒ€์ฆ:

chmod 600 ~/.ssh/config
ssh -G relay39 | egrep '^(hostname|user|identityfile) '
ssh -o BatchMode=yes relay39 'echo relay39-ok'

2) ํฌํŠธ ๋ถ„๋ฆฌ ๋ฆด๋ ˆ์ด ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

mkdir -p ~/.openclaw-relay
 
cat > ~/.openclaw-relay/rel37.sh <<'EOF'
#!/usr/bin/env bash
ssh -fN -M -S "$HOME/.ssh/rel37.sock" \
  -o ExitOnForwardFailure=yes \
  -L 28789:127.0.0.1:18789 \
  -L 28792:127.0.0.1:18792 \
  relay37
EOF
 
cat > ~/.openclaw-relay/rel39.sh <<'EOF'
#!/usr/bin/env bash
ssh -fN -M -S "$HOME/.ssh/rel39.sock" \
  -o ExitOnForwardFailure=yes \
  -L 38789:127.0.0.1:18789 \
  -L 38792:127.0.0.1:18792 \
  relay39
EOF
 
chmod +x ~/.openclaw-relay/rel37.sh ~/.openclaw-relay/rel39.sh

3) ์…ธ ๋ช…๋ น ๊ณ ์ •(alias)

~/.zshrc์— ์ถ”๊ฐ€:

unalias rel37 rel39 rel_ls rel37_off rel39_off 2>/dev/null
alias rel37="$HOME/.openclaw-relay/rel37.sh"
alias rel39="$HOME/.openclaw-relay/rel39.sh"
alias rel_ls='lsof -nP -iTCP:28789 -iTCP:28792 -iTCP:38789 -iTCP:38792 -sTCP:LISTEN'
alias rel37_off='ssh -S $HOME/.ssh/rel37.sock -O exit relay37 2>/dev/null || true'
alias rel39_off='ssh -S $HOME/.ssh/rel39.sock -O exit relay39 2>/dev/null || true'

์ ์šฉ:

exec zsh

4) ๊ธฐ๋ณธ ์šด์˜(openclaw ํ”„๋กœํ•„) ํ™•์ธ

rel39
rel_ls
curl -I http://127.0.0.1:38789/
 
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw tabs

์—ฌ๊ธฐ๊นŒ์ง€ ๋˜๋ฉด ๊ธฐ๋ณธ ์ž๋™ํ™”๋Š” ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.

5) ์˜ˆ์™ธ ์šด์˜(chrome ํ”„๋กœํ•„) ํ™•์ธ

openclaw browser --browser-profile chrome status
openclaw browser --browser-profile chrome tabs

์ค‘์š”:

  • chrome ํ”„๋กœํ•„์€ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น๋งŒ์œผ๋กœ attach๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ € ํƒญ์—์„œ OpenClaw Relay ํ™•์žฅ ์•„์ด์ฝ˜์„ ๋ˆŒ๋Ÿฌ ON ํ•ด์•ผ ํ•œ๋‹ค.

6) 3๋ถ„ ๋ณต๊ตฌ ๋ฃจํ‹ด

๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์•„๋ž˜๋งŒ ์ˆœ์„œ๋Œ€๋กœ ํ™•์ธํ•œ๋‹ค.

# 1) ํ„ฐ๋„/ํฌํŠธ
rel_ls
curl -I http://127.0.0.1:38789/
 
# 2) SSH ๋ณ„์นญ
ssh -G relay39 | egrep '^(hostname|user|identityfile) '
ssh -o BatchMode=yes relay39 'echo relay39-ok'
 
# 3) ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœํ•„ ์ƒํƒœ
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw tabs
openclaw browser --browser-profile chrome status
openclaw browser --browser-profile chrome tabs

์šด์˜ ์„ ํƒ ๊ฐ€์ด๋“œ

์ง€๊ธˆ ํ•˜๋ ค๋Š” ์ผ๊ถŒ์žฅ ํ”„๋กœํ•„์‹ค๋ฌด ํŒ๋‹จ ๊ธฐ์ค€
๋ฌธ์„œ ์ž‘์„ฑ, ์‚ฌ์ดํŠธ ์ ๊ฒ€, ์ผ๋ฐ˜ ์›น ์ž๋™ํ™”openclawattach ํด๋ฆญ ์—†์ด ๋ฐ”๋กœ ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์„œ ์žฅ์• ์œจ์ด ๋‚ฎ๋‹ค
๊ธฐ์กด Chrome ๋กœ๊ทธ์ธ ์„ธ์…˜/ํ™•์žฅ ์ƒํƒœ๋ฅผ ๊ทธ๋Œ€๋กœ ์จ์•ผ ํ•จchrome์ด๋ฏธ ์—ด์–ด๋‘” ํƒญยท์ฟ ํ‚ค๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค (ํƒญ attach ํ•„์ˆ˜)
37/39 ์›๊ฒฉ ์ „ํ™˜์ด ์žฆ์Œopenclaw ์šฐ์„  + ๋ถ„๋ฆฌ ํฌํŠธ์ „ํ™˜ ์ค‘ ์‹ค์ˆ˜(ํฌํŠธ ์ถฉ๋Œ, attach ๋ˆ„๋ฝ)๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค

ํ˜„์žฅํ˜• ๋ฏธ๋‹ˆ ์‚ฌ๋ก€

์‚ฌ๋ก€ A (์„ฑ๊ณต)

์šด์˜ํŒ€์ด ๊ธฐ๋ณธ ํ”„๋กœํ•„์„ openclaw๋กœ ๊ณ ์ •ํ•˜๊ณ , chrome์€ โ€œ์˜ˆ์™ธ ์ž‘์—…โ€์œผ๋กœ๋งŒ ์—ด์—ˆ๋‹ค. ์ผ์ฃผ์ผ ๋‚ด tabs=0 ๋ฌธ์˜๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ์ค„์—ˆ๊ณ , ์ž‘์—… ์ฐฉ์ˆ˜ ์‹œ๊ฐ„์ด ์งง์•„์กŒ๋‹ค.

์‚ฌ๋ก€ B (์‹คํŒจ)

๋‹ค๋ฅธ ํŒ€์€ rel37/rel39๋ฅผ ๊ฐ™์€ ๋กœ์ปฌ ํฌํŠธ(18789/18792)๋กœ ๋™์‹œ์— ํฌ์›Œ๋”ฉํ–ˆ๋‹ค. ์—ฐ๊ฒฐ์€ ๋˜๋Š” ๋“ฏ ๋ณด์˜€์ง€๋งŒ ์„ธ์…˜์ด ๋ฒˆ๊ฐˆ์•„ ๋Š๊ฒผ๊ณ , ํฌํŠธ๋ฅผ 2879x/3879x๋กœ ๋ถ„๋ฆฌํ•œ ๋’ค์—์•ผ ์•ˆ์ •ํ™”๋๋‹ค.

๋„์ž… ์šฐ์„ ์ˆœ์œ„ (๋ˆ„๊ฐ€/๋ฌด์—‡/์ˆœ์„œ)

  1. ์šด์˜ ๋‹ด๋‹น์ž: ํŒ€ ๊ธฐ๋ณธ๊ฐ’์„ openclaw๋กœ ๊ณต์ง€ํ•˜๊ณ , chrome์€ ์˜ˆ์™ธ ์กฐ๊ฑด(attach ํ•„์š”)๋กœ ๋ฌธ์„œํ™”ํ•œ๋‹ค.
  2. ์ž๋™ํ™” ๋‹ด๋‹น์ž: rel37/rel39 ํฌํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  status โ†’ tabs โ†’ lsof ์ ๊ฒ€ ๋ช…๋ น์„ ๋Ÿฐ๋ถ์— ๊ณ ์ •ํ•œ๋‹ค.
  3. ์‹ค์‚ฌ์šฉ์ž: chrome ์‚ฌ์šฉ ์‹œ โ€œํƒญ์—์„œ Relay ์•„์ด์ฝ˜ ONโ€์„ ์‹œ์ž‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ 1๋ฒˆ์œผ๋กœ ๋‘”๋‹ค.

์ ์šฉ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ € ์ž‘์—…์€ openclaw ํ”„๋กœํ•„๋กœ ์‹คํ–‰ํ•œ๋‹ค.
  • chrome ํ”„๋กœํ•„ ์‚ฌ์šฉ ์‹œ ํƒญ attach๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํŒ€์ด ์ธ์ง€ํ•œ๋‹ค.
  • 37/39 ๋ฆด๋ ˆ์ด๋Š” ํฌํŠธ๋ฅผ ๋ถ„๋ฆฌํ•ด ๋™์‹œ์— ์šด์˜ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์…ธ์—์„œ rel alias/function ์ค‘๋ณต์ด ์—†๋‹ค.
  • ์žฅ์•  ๋Œ€์‘ ์ˆœ์„œ(status โ†’ tabs โ†’ lsof)๊ฐ€ ๋ฌธ์„œํ™”๋ผ ์žˆ๋‹ค.

๋‹ค์Œ ์ฝ๊ธฐ

AI ์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฌผ์„ ํฌํ•จํ•œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌ ์ „ ๋„คํŠธ์›Œํฌ ์ •์ฑ…, SSH ๊ณ„์ •, ํฌํŠธ ์ •์ฑ…์€ ๊ฐ ์šด์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ตœ์ข… ํ™•์ธํ•˜์„ธ์š”.