Skip to content

Latest commit

ย 

History

History
600 lines (414 loc) ยท 27.2 KB

README.ko.md

File metadata and controls

600 lines (414 loc) ยท 27.2 KB

CLI-JAW

๋‚˜๋งŒ์˜ AI ์—์ด์ „ํŠธ. 2์ค„์ด๋ฉด ์„ค์น˜ ๋. 13๊ฐœ AI ๋Ÿฐํƒ€์ž„ ํ‘œ๋ฉด์„ ํ•˜๋‚˜์˜ ๋Œ€์‹œ๋ณด๋“œ์—์„œ.

npm Version TypeScript Node License Docker

English / ํ•œ๊ตญ์–ด / ไธญๆ–‡ / ๆ—ฅๆœฌ่ชž

์„ค์น˜

์•ˆ์ „ ์„ค์น˜ โ€” ๊ธฐ์กด ์‚ฌ์šฉ์ž์šฉ, ์ตœ์†Œ ๋ณ€๊ฒฝ
# macOS / Linux
JAW_SAFE=1 npm install -g cli-jaw    # skips optional tool/runtime setup
jaw init                              # ์ค€๋น„๋˜๋ฉด ๋Œ€ํ™”ํ˜• ์„ค์ •

Windows ์‚ฌ์šฉ์ž๋Š” ์•„๋ž˜ WSL ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋„ค์ดํ‹ฐ๋ธŒ PowerShell์€ ์ง€์›๋˜๋Š” CLI-JAW ์„ค์น˜ ๋Œ€์ƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

# macOS / Linux / WSL, Node.js 22.4+๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ
npm install -g cli-jaw
jaw dashboard

๋์ž…๋‹ˆ๋‹ค. ๋งค๋‹ˆ์ € ๋Œ€์‹œ๋ณด๋“œ๋Š” http://localhost:24576 ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์—์ด์ „ํŠธ Web UI๋Š” jaw serve ์‹คํ–‰ ์‹œ http://localhost:3457 ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. Node.js 22.4+ ํ•„์š”.

์ฒ˜์Œ์ด์„ธ์š”? ๊ธฐ๋ณธ npm ์„ค์น˜๋Š” CLI-JAW ์ดˆ๊ธฐํ™”์™€ ๋„ค์ดํ‹ฐ๋ธŒ Claude ์„ค์ •์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ AI CLI๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. macOS/Linux์—์„œ npm ์„ค์น˜ ์ค‘ ๋ชจ๋‘ ์„ค์น˜ํ•˜๋ ค๋ฉด CLI_JAW_INSTALL_CLI_TOOLS=1 npm install -g cli-jaw๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. Windows์—์„œ๋Š” ์•„๋ž˜ WSL ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

macOS ์›ํด๋ฆญ โ€” Node.js๊ฐ€ ์—†๋‹ค๋ฉด ์ด๊ฑธ๋กœ
curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
source "${ZDOTDIR:-$HOME}/.zshrc" 2>/dev/null || true
bash "$(npm root -g)/cli-jaw/scripts/verify-fresh-install.sh"
Windows (WSL โ€” Windows Subsystem for Linux) โ€” ์ฒ˜์Œ๋ถ€ํ„ฐ ์›ํด๋ฆญ
# 1. WSL ์„ค์น˜ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ PowerShell)
wsl --install

์žฌ์‹œ์ž‘ ํ›„ Ubuntu๋ฅผ ์—ด๊ณ :

# 2. CLI-JAW + ์ „์ฒด ์˜์กด์„ฑ ์„ค์น˜
curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
source ~/.bashrc
jaw dashboard
bash "$(npm root -g)/cli-jaw/scripts/verify-fresh-install.sh"

Windows PowerShell์—์„œ WSL๋กœ ์‹คํ–‰ํ•  ๋•Œ๋Š” WSL ํ”„๋กœํ•„ PATH๊ฐ€ ๋กœ๋“œ๋˜๋„๋ก login shell์„ ๊ฑฐ์น˜์„ธ์š”:

wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"
Fresh-machine evidence โ€” maintainer release check

์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ๋ฆด๋ฆฌ์Šค ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์ „์—๋Š” ๊นจ๋—ํ•œ VM์—์„œ ์ด ์ ˆ์ฐจ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. collector๋Š” ํ™˜๊ฒฝ ์Šค๋ƒ…์ƒท, installer ๋กœ๊ทธ, ์‹ค์ œ ์‹คํ–‰๋œ collector/installer/verifier ์Šคํฌ๋ฆฝํŠธ์™€ SHA-256 ํ•ด์‹œ, verifier ๋กœ๊ทธ, ์ƒˆ shell PATH probe๋ฅผ ~/cli-jaw-fresh-install-evidence-*์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

# macOS Terminal
COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh
curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/collect-fresh-install-evidence.sh -o "$COLLECTOR"
bash "$COLLECTOR" --target macos

# Ubuntu inside WSL
COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh
curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/collect-fresh-install-evidence.sh -o "$COLLECTOR"
bash "$COLLECTOR" --target wsl

Windows PowerShell์—์„œ๋Š” ์ง€์›๋˜๋Š” WSL ๊ฒฝ๋กœ๋กœ ์‹คํ–‰ํ•˜์„ธ์š”:

wsl.exe -d Ubuntu -- bash -lc 'COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh; curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/collect-fresh-install-evidence.sh -o "$COLLECTOR"; bash "$COLLECTOR" --target wsl'

๊ฐ evidence ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฆด๋ฆฌ์Šค ์ฆ๊ฑฐ๋กœ ์“ฐ๊ธฐ ์ „์— auditํ•˜์„ธ์š”:

EVIDENCE_DIR="$(ls -dt ~/cli-jaw-fresh-install-evidence-* | head -1)"
AUDITOR="$(npm root -g)/cli-jaw/scripts/audit-fresh-install-evidence.mjs"
node "$AUDITOR" "$EVIDENCE_DIR" --target macos
node "$AUDITOR" "$EVIDENCE_DIR" --target wsl

๋ฆด๋ฆฌ์Šค ์ „ matrix gate์—๋Š” macOS์™€ WSL evidence๋ฅผ ๋ชจ๋‘ ๋„˜๊น๋‹ˆ๋‹ค:

GATE="$(npm root -g)/cli-jaw/scripts/verify-release-evidence.mjs"
node "$GATE" --macos /path/to/macos-evidence --wsl /path/to/wsl-evidence
Docker
docker compose up -d       # โ†’ http://localhost:3457

CLI-JAW๊ฐ€ ๋ญ”๊ฐ€์š”?

CLI-JAW๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ด๋ฏธ ์‚ฌ์šฉํ•˜๋Š” AI ์ฝ”๋”ฉ CLI โ€” Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Gemini, Grok, Kiro, OpenCode, Copilot โ€” ๋ฅผ ํ•˜๋‚˜์˜ ๋น„์„œ, ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ, ํ•˜๋‚˜์˜ ๋Œ€์‹œ๋ณด๋“œ๋กœ ํ†ตํ•ฉํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๋ฉ”์ธ CLI(Boss)๊ฐ€ ๋‹ค๋ฅธ CLI๋ฅผ "์ง์›"์œผ๋กœ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์•ฑ์„ ์™”๋‹ค ๊ฐ”๋‹ค ํ•  ํ•„์š” ์—†์ด ํ•œ ๊ณณ์—์„œ ์ง€์‹œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • API ํ‚ค ๋ถˆํ•„์š” โ€” ์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ ๊ตฌ๋…์œผ๋กœ ๋ผ์šฐํŒ…
  • ํ† ํฐ๋‹น ๊ณผ๊ธˆ ์—†์Œ โ€” ๊ธฐ์กด ์›”์ •์•ก ๊ทธ๋Œ€๋กœ
  • ๋กœ์ปฌ ์‹คํ–‰ โ€” ์ฝ”๋“œ๊ฐ€ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€์ง€ ์•Š์Œ

CLI-JAW Manager Dashboard

๋ฐ์Šคํฌํ†ฑ ์•ฑ

๋ธŒ๋ผ์šฐ์ € ํƒญ๋ณด๋‹ค ๋„ค์ดํ‹ฐ๋ธŒ ์ฐฝ์ด ํŽธํ•˜๋‹ค๋ฉด Electron ๋ฐ์Šคํฌํ†ฑ ์…ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํ†ฑ ์•ฑ์€ manager dashboard๋ฅผ ๋ถ€ํŒ…ํ•˜๊ณ  ๋‚ด๋ถ€ jaw dashboard serve ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ๋…ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง•๋œ ๋นŒ๋“œ๋Š” Node.js sidecar ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ, ์ „์—ญ ํ„ฐ๋ฏธ๋„ ์„ค์น˜๋ณด๋‹ค ์•ฑ์— ๋ฒˆ๋“ค๋œ jaw shim์„ ๋จผ์ € ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” GitHub Releases์—์„œ ๋ฐ์Šคํฌํ†ฑ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค:

  • macOS: DMG๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  CLI-JAW๋ฅผ Applications์— ๋“œ๋ž˜๊ทธํ•œ ๋’ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋นŒ๋“œ๋Š” unsigned / un-notarized ์ƒํƒœ๋ผ ์ฒซ ์‹คํ–‰ ์‹œ Finder์—์„œ ์šฐํด๋ฆญ โ†’ Open์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Windows: NSIS installer๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ sidecar ์„œ๋ฒ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ํŒจํ‚ค์ง•๋œ jaw shim์„ PATH์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • Linux: AppImage๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ ๊ถŒํ•œ์„ ์ค€ ๋’ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ์‹คํ–‰ ํ›„ Install CLI command ํ”„๋กฌํ”„ํŠธ๋ฅผ ์Šน์ธํ•˜๋ฉด ๋ฒˆ๋“ค sidecar ๊ธฐ๋ฐ˜ ํ„ฐ๋ฏธ๋„ jaw ๋ช…๋ น์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฑด๋„ˆ๋›ฐ์—ˆ๋‹ค๋ฉด ๋‚˜์ค‘์— tray menu์˜ Install CLI to Terminal ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด ๊ฒฝ๋กœ๋Š” ํŒจํ‚ค์ง•๋œ ์•ฑ๊ณผ ํ„ฐ๋ฏธ๋„ shim์— ์ „์—ญ npm ์„ค์น˜๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž ๋นŒ๋“œ:

# ์ €์žฅ์†Œ ๋ฃจํŠธ์—์„œ 1ํšŒ
npm install && npm --prefix electron install

npm run electron:dev          # hot reload ๊ฐœ๋ฐœ
npm run electron:dist:mac     # bundled sidecar ํฌํ•จ macOS arm64 .dmg + .zip ๋นŒ๋“œ

ํŒจํ‚ค์ง• ์‚ฐ์ถœ๋ฌผ์€ electron/dist/์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. GitHub Actions desktop release workflow๋Š” release publish ๋˜๋Š” manual dispatch์—์„œ macOS arm64 DMG/ZIP, Windows x64 NSIS/ZIP, Linux AppImage ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. better-sqlite3 ๊ฐ™์€ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์€ manager/sidecar ์„œ๋ฒ„ ์•ˆ์— ๋จธ๋ฌผ๊ณ  Electron main process๋Š” ์ง์ ‘ importํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


์ธ์ฆ

ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ ์„œ๋น„์Šค๋ฅผ ๊ณจ๋ผ์„œ ์ธ์ฆํ•˜์„ธ์š”:

# ๋ฌด๋ฃŒ (์‹ ์šฉ์นด๋“œ ๋ถˆํ•„์š”)
copilot login        # GitHub Copilot (๋ฌด๋ฃŒ ํ‹ฐ์–ด ์žˆ์Œ)
opencode             # OpenCode โ€” ๋ฌด๋ฃŒ ๋ชจ๋ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
kiro                 # AWS Kiro (AWS ๊ณ„์ • ๋ฌด๋ฃŒ ํ‹ฐ์–ด)

# ์œ ๋ฃŒ (์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ ์›” ๊ตฌ๋…)
claude auth login    # Anthropic Claude Pro ์ด์ƒ
codex login          # OpenAI ChatGPT Pro ์ด์ƒ
cursor-agent login   # Cursor
gemini               # Google Gemini Advanced
grok login --oauth   # xAI Grok / Grok Heavy

ํ•œ๊บผ๋ฒˆ์— ํ™•์ธ: jaw doctor

jaw doctor ์ถœ๋ ฅ ์˜ˆ์‹œ
๐Ÿฆˆ CLI-JAW Doctor โ€” 13 checks

 โœ… Node.js        v22.15.0
 โœ… Claude CLI      installed
 โœ… Codex CLI       installed
 โœ… Cursor CLI      installed
 โš ๏ธ Gemini CLI      not found (optional)
 โœ… OpenCode CLI    installed
 โœ… Copilot CLI     installed
 โœ… Database        jaw.db OK
 โœ… Skills          29 active, 238 reference
 โœ… MCP (ํ”Œ๋Ÿฌ๊ทธ์ธ)   3 servers configured
 โœ… Memory          structured/ exists
 โœ… Server          port 3457 available

๋Œ€์‹œ๋ณด๋“œ

๋Œ€์‹œ๋ณด๋“œ๋Š” jaw dashboard๊ฐ€ http://localhost:24576์—์„œ ๋„์šฐ๋Š” ๋กœ์ปฌ ์ œ์–ดํŒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์—์ด์ „ํŠธ Web UI๋Š” jaw serve๊ฐ€ http://localhost:3457 ๋ฐ ์ธ์ ‘ managed port์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Web/TUI ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋Š” SSE-first GET /api/events ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๋ฉฐ, WebSocket์€ SSE๊ฐ€ ํ•œ ๋ฒˆ๋„ ์—ด๋ฆฌ์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ์„œ๋ฒ„์šฉ fallback์ž…๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค ๋งค๋‹ˆ์ €

์‹คํ–‰ ์ค‘์ธ AI ์ธ์Šคํ„ด์Šค๋ฅผ ํ•œ ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘, ์ •์ง€, ์žฌ์‹œ์ž‘์„ ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , Web UI๋ฅผ ๋Œ€์‹œ๋ณด๋“œ ์•ˆ์—์„œ ๋ฐ”๋กœ ํ”„๋ฆฌ๋ทฐํ•ฉ๋‹ˆ๋‹ค.

Dashboard Navigator

์นธ๋ฐ˜ ๋ณด๋“œ

์ธ์Šคํ„ด์Šค ์นด๋“œ๋ฅผ ๋ ˆ์ธ(Backlog โ†’ Ready โ†’ In Progress โ†’ Review โ†’ Done)์— ๋“œ๋ž˜๊ทธํ•ด์„œ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ AI ์„ธ์…˜์ด ๋ฌด์Šจ ์ž‘์—…์„ ํ•˜๋Š”์ง€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์นธ๋ฐ˜ ๋ณด๋“œ

์šฐ์„ ์ˆœ์œ„ ๋งคํŠธ๋ฆญ์Šค

ํ•  ์ผ๊ณผ ๋ฆฌ๋งˆ์ธ๋”๋ฅผ ์•„์ด์  ํ•˜์›Œ ๋งคํŠธ๋ฆญ์Šค๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜์„ธ์š”.

์šฐ์„ ์ˆœ์œ„ ๋งคํŠธ๋ฆญ์Šค

๋…ธํŠธ

๋Œ€์‹œ๋ณด๋“œ ์•ˆ์˜ ๋ฏธ๋‹ˆ ์˜ต์‹œ๋””์–ธ์ž…๋‹ˆ๋‹ค. ํด๋”, ๋น„์ฃผ์–ผ(WYSIWYG) + ์›๋ณธ + ๋ถ„ํ•  ํŽธ์ง‘, KaTeX(์ˆ˜์‹ ๋ Œ๋”๋ง), Mermaid(๋‹ค์ด์–ด๊ทธ๋žจ), ๊ตฌ๋ฌธ ๊ฐ•์กฐ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋…ธํŠธ ์—๋””ํ„ฐ

์—์ด์ „ํŠธ ์ƒํƒœ

๊ฐ AI ์—”์ง„์˜ ์ƒํƒœ์™€ ์‚ฌ์šฉ๋Ÿ‰์„ ํ•œ ๋ˆˆ์— ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

Claude ์ƒํƒœ


์ง์›(Employee) ์‹œ์Šคํ…œ

ํ•ต์‹ฌ ์•„์ด๋””์–ด: ๋ฉ”์ธ CLI๊ฐ€ ๋‹ค๋ฅธ CLI๋ฅผ ์›Œ์ปค๋กœ ๋ถ€๋ฆฝ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ AI(Boss)์—๊ฒŒ ๋งํ•˜๋ฉด, ์ „๋ฌธ ์ž‘์—…์ด ํ•„์š”ํ•  ๋•Œ ์ง์›๋“ค์—๊ฒŒ ํƒœ์Šคํฌ๋ฅผ ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค โ€” ๊ฐ ์ง์›์€ ์ž์ฒด CLI์™€ ์ž์ฒด ๋ชจ๋ธ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค:

๋‚˜: "ํ”„๋ก ํŠธ์—”๋“œ ์Šคํƒ€์ผ ๊ณ ์น˜๊ณ , API ์—”๋“œํฌ์ธํŠธ๋„ ์—…๋ฐ์ดํŠธํ•ด"

Boss (Claude) ํŒ๋‹จ ์ค‘...
  โ”œโ”€โ”€ Frontend ์ง์› (OpenCode)์—๊ฒŒ ๋””์ŠคํŒจ์น˜ โ†’ "dashboard.tsx์˜ CSS ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •"
  โ”œโ”€โ”€ Backend ์ง์› (Codex)์—๊ฒŒ ๋””์ŠคํŒจ์น˜     โ†’ "/api/users์—์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ •"
  โ””โ”€โ”€ ์–‘์ชฝ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•ด์„œ ๋ณด๊ณ 
# ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์ด ๋ช…๋ น์–ด ํ•˜๋‚˜:
jaw dispatch --agent "Frontend" --task "dashboard.tsx์˜ CSS ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •"
jaw dispatch --agent "Backend" --task "์ฝ๊ธฐ ์ „์šฉ ๊ฒ€์ฆ ์‹คํ–‰" --watch
jaw worker status Backend

์ง์›์€ ์„ค์ •์— ๋“ฑ๋ก๋œ ๋‹ค๋ฅธ AI CLI์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ ์ž์ฒด ์„ธ์…˜, ์ž์ฒด ๋ชจ๋ธ, ์ž์ฒด ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. Boss๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•œ ๋’ค ์ตœ์ข… ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ง์› vs ์„œ๋ธŒ์—์ด์ „ํŠธ

์ด ๋‘˜์€ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

์ง์› ์„œ๋ธŒ์—์ด์ „ํŠธ
๋ญ”๊ฐ€์š” ๋‹ค๋ฅธ AI CLI (Codex, OpenCode ๋“ฑ)๋ฅผ ์›Œ์ปค๋กœ ์„ค์ •ํ•œ ๊ฒƒ ๋‹จ์ผ CLI ์•ˆ์˜ ๋ณ‘๋ ฌ ํƒœ์Šคํฌ ๋„๊ตฌ
์–ธ์ œ ์“ฐ๋‚˜์š” ์—ฌ๋Ÿฌ ์ „๋ฌธ๊ฐ€๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฒ ์ด์Šค/๋„๋ฉ”์ธ์„ ๋‹ค๋ฃฐ ๋•Œ ๋‚ด๋ถ€ ๋ฆฌ์„œ์น˜, ํŒŒ์ผ ์ฝ๊ธฐ, ๋ณ‘๋ ฌ ๋ถ„์„
์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š” jaw dispatch --agent "์ด๋ฆ„" --task "..." ์ž๋™ โ€” CLI๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒ์„ฑ

์ง์›์€ "Frontend๋Š” CSS, Backend๋Š” API"์šฉ. ์„œ๋ธŒ์—์ด์ „ํŠธ๋Š” "๊ฒฐ์ • ์ „์— ํŒŒ์ผ 5๊ฐœ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฝ๊ธฐ"์šฉ.


AI ๋Ÿฐํƒ€์ž„

ํ† ํฐ๋‹น API ๊ณผ๊ธˆ ์—†์Œ. ์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ ๊ตฌ๋…์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

CLI ๊ธฐ๋ณธ ๋ชจ๋ธ ์ธ์ฆ ๋น„์šฉ
Pi grok-composer-2.5-fast Settings profile API key, local proxy, ๋˜๋Š” PI_CODING_AGENT_BIN ๊ฒฉ๋ฆฌ๋œ PI_CODING_AGENT_DIR๋กœ ๋กœ์ปฌ/API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” first-class pi --mode rpc ๋Ÿฐํƒ€์ž„
Claude claude-opus-4-8 claude auth login Claude Pro ๊ตฌ๋… ์ด์ƒ
Claude E claude-opus-4-8 underlying claude auth login Claude Pro ๊ตฌ๋… ์ด์ƒ; 6์›” ๊ตฌ๋… ํฌํ•จ ์‚ฌ์šฉ๋Ÿ‰ ๊ถŒ์žฅ ๋Ÿฐํƒ€์ž„
AI-E provider-selected ์„ ํƒ provider ์ธ์ฆ ๋‹ค์ค‘ provider runtime wrapper
Antigravity AGY-selected agy ์‹คํ–‰ ์‹œ ํ™•์ธ --conversation resume์„ ์“ฐ๋Š” ์‹คํ—˜์  AGY print-mode runtime; ๋ชจ๋ธ ๋ณ€๊ฒฝ์€ native AGY UI ํ‘œ๋ฉด
Codex gpt-5.5 codex login ChatGPT Pro ๊ตฌ๋… ์ด์ƒ
Codex App gpt-5.5 codex login ChatGPT Pro ๊ตฌ๋… ์ด์ƒ
Cursor composer-2.5 cursor-agent login ๋˜๋Š” CURSOR_API_KEY Cursor ๊ตฌ๋…; ์ฟผํ„ฐ๋Š” ์ธ์ฆ/์ƒํƒœ ์ „์šฉ
Gemini gemini-3-flash-preview gemini Gemini Advanced ๊ตฌ๋…
Grok grok-build grok login --oauth Grok ๊ตฌ๋…; ์ฟผํ„ฐ๋Š” ์ธ์ฆ/์ƒํƒœ ์ „์šฉ
Kiro registry-selected kiro AWS Kiro ๋ฌด๋ฃŒ ํ‹ฐ์–ด
OpenCode opencode-go/kimi-k2.6 opencode ๋ฌด๋ฃŒ ๋ชจ๋ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
Copilot claude-sonnet-4.6 copilot login ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

GPT 5.5์™€ Claude Opus 4.8์€ Pro ๊ตฌ๋… ์ด์ƒ๋ถ€ํ„ฐ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. 6์›”๋ถ€ํ„ฐ ๊ตฌ๋…์ œ์— ํฌํ•จ๋œ Claude ์‚ฌ์šฉ๋Ÿ‰์„ ์“ฐ๋ ค๋ฉด claude-e ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•˜์„ธ์š”.

์ฟผํ„ฐ/์ƒํƒœ ํŒจ๋„์€ registry์™€ ๊ฐ™์€ runtime ํ‚ค์…‹์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. Wrapper runtime(ai-e, claude-e, codex-app)์€ underlying provider๋กœ ์œ„์ž„ํ•˜๊ณ , Pi/AGY/Cursor/Grok/OpenCode์ฒ˜๋Ÿผ CLI๊ฐ€ quota window๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ auth/status-only๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Fallback ์ฒด์ธ: ํ•œ ์—”์ง„์ด ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹๋˜๋ฉด ๋‹ค์Œ์ด ์ด์–ด๋ฐ›์Šต๋‹ˆ๋‹ค. /fallback [cli1 cli2...]๋กœ ์„ค์ •.

OpenCode ์™€์ผ๋“œ์นด๋“œ: OpenRouter, ๋กœ์ปฌ LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ), OpenAI ํ˜ธํ™˜ API ๋“ฑ ์–ด๋–ค ๋ชจ๋ธ ์—”๋“œํฌ์ธํŠธ๋“  ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ.

์—”์ง„ ์ „ํ™˜: /cli codex | ๋ชจ๋ธ ์ „ํ™˜: /model gpt-5.5 | Web, Terminal, Telegram, Discord ์–ด๋””์„œ๋“  ๊ฐ€๋Šฅ.


PABCD ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ (Plan โ†’ Audit โ†’ Build โ†’ Check โ†’ Done)

๋ณต์žกํ•œ ์ž‘์—…์— CLI-JAW๋Š” 5๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•˜๊ณ  ์Šน์ธํ•ฉ๋‹ˆ๋‹ค โ€” ์Šน์ธ ์—†์ด๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ง„ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

P (Plan) โ†’ A (Audit) โ†’ B (Build) โ†’ C (Check) โ†’ D (Done) โ†’ IDLE
   โ›”          โ›”          โ›”         auto        auto
๋‹จ๊ณ„ ํ•˜๋Š” ์ผ
P โ€” Plan Boss AI๊ฐ€ diff ์ˆ˜์ค€์˜ ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ์„ธ์›๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํ™•์ธ์„ ์œ„ํ•ด ๋ฉˆ์ถฅ๋‹ˆ๋‹ค
A โ€” Audit ์ฝ๊ธฐ ์ „์šฉ ์›Œ์ปค๊ฐ€ ๊ณ„ํš์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค (import ๊ฒฝ๋กœ, ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ผ์น˜ ๋“ฑ)
B โ€” Build Boss๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ์›Œ์ปค๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค
C โ€” Check ํƒ€์ž… ์ฒดํฌ (tsc --noEmit), ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ, ์ผ๊ด€์„ฑ ๊ฒ€์‚ฌ
D โ€” Done ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์š”์•ฝ. IDLE๋กœ ๋ณต๊ท€

์ƒํƒœ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋ฏ€๋กœ ์žฌ์‹œ์ž‘ํ•ด๋„ ์ด์–ด์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›Œ์ปค๋Š” ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค โ€” ๊ฒ€์ฆ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. jaw orchestrate, /orchestrate, /pabcd๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์ง„ํ–‰ ์ค‘์ธ worklog๋Š” /continue๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค. Workflow helper slash command๋Š” /plan, /interview, /deliberate, /planaudit, /goal๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. /goal run ...์€ bounded automation preview์ด๋ฉฐ, durable goal์€ update/done/cancel/pause/resume ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.


๋ฉ”๋ชจ๋ฆฌ

์„ธ ๊ฐœ์˜ ๊ณ„์ธต์ด ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํšŒ์ƒ ๋ฒ”์œ„๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ธต ์ €์žฅ ๋Œ€์ƒ ๋™์ž‘ ๋ฐฉ์‹
History Block ์ตœ๊ทผ ์„ธ์…˜ ๋งฅ๋ฝ ๋งˆ์ง€๋ง‰ 10๊ฐœ ์„ธ์…˜(์ตœ๋Œ€ 8,000์ž), ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ธฐ์ค€. ํ”„๋กฌํ”„ํŠธ ์‹œ์ž‘๋ถ€์— ์ž๋™ ์ฃผ์ž…
Memory Flush ๋Œ€ํ™”์—์„œ ์ถ”์ถœํ•œ ๊ตฌ์กฐํ™”๋œ ์ง€์‹ ์ผ์ • ํ„ด(๊ธฐ๋ณธ 10ํ„ด) ํ›„ ํŠธ๋ฆฌ๊ฑฐ. ์—ํ”ผ์†Œ๋“œ, ์ผ์ผ ๋กœ๊ทธ, ์‹œ๋งจํ‹ฑ ๋…ธํŠธ๋ฅผ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ์ถ”์ถœ
Soul + Task Snapshot ์ •์ฒด์„ฑ๊ณผ ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰ ํ•ต์‹ฌ ๊ฐ€์น˜, ํ†ค, ๊ฒฝ๊ณ„๋ฅผ ์ •์˜. ์ „๋ฌธ ๊ฒ€์ƒ‰(full-text search) ์ธ๋ฑ์Šค์—์„œ ํ”„๋กฌํ”„ํŠธ๋‹น ์ตœ๋Œ€ 4๊ฑด์˜ ๊ด€๋ จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜

์„ธ ๊ณ„์ธต ๋ชจ๋‘ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ์ž๋™์œผ๋กœ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ฒ€์ƒ‰:

jaw memory search "API ์ธ์ฆ์€ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ–ˆ์ง€?"

์Šคํ‚ฌ

200๊ฐœ ์ด์ƒ์˜ ์ฐธ์กฐ ์Šคํ‚ฌ๊ณผ ํ™œ์„ฑ ๋Ÿฐํƒ€์ž„ ์Šคํ‚ฌ์ด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ, ์˜คํ”ผ์Šค ๋ฌธ์„œ, ์ž๋™ํ™”, ๋ฏธ๋””์–ด๋ฅผ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ฅ˜ ์Šคํ‚ฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ
์˜คํ”ผ์Šค pdf, docx, xlsx, pptx, hwp ๋ฌธ์„œ ์ฝ๊ธฐ, ์ƒ์„ฑ, ํŽธ์ง‘. HWP/HWPX(ํ•œ๊ธ€ ๋ฌธ์„œ ํ˜•์‹) ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›
์ž๋™ํ™” browser, vision-click, screen-capture, desktop-control Chrome DevTools Protocol(CDP) ๋ธŒ๋ผ์šฐ์ € ์ œ์–ด, AI ์ขŒํ‘œ ํด๋ฆญ, macOS ์Šคํฌ๋ฆฐ์ƒท, Computer Use
๋ฏธ๋””์–ด video, imagegen, lecture-stt, tts Remotion ์˜์ƒ, OpenAI ์ด๋ฏธ์ง€ ์ƒ์„ฑ, ๊ฐ•์˜ ๋…น์Œ ๋ณ€ํ™˜, ์Œ์„ฑ ํ•ฉ์„ฑ
์—ฐ๋™ github, notion, telegram-send, memory Issue/PR/CI, Notion ํŽ˜์ด์ง€, Telegram ๋ฏธ๋””์–ด ์ „์†ก, ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ
์‹œ๊ฐํ™” diagram SVG ๋‹ค์ด์–ด๊ทธ๋žจ, ์ฐจํŠธ, ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™”๋ฅผ ์ฑ„ํŒ… ์•ˆ์—์„œ ๋ Œ๋”๋ง
๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ dev, dev-frontend, dev-backend, dev-data, dev-testing, dev-pabcd ์—์ด์ „ํŠธ ํ”„๋กฌํ”„ํŠธ์— ์ฃผ์ž…๋˜๋Š” ์—”์ง€๋‹ˆ์–ด๋ง ๊ฐ€์ด๋“œ๋ผ์ธ

์ฐธ์กฐ ์Šคํ‚ฌ์€ skills_ref/์— ์žˆ์œผ๋ฉฐ ํ•„์š” ์‹œ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

jaw skill install <name>    # ์ฐธ์กฐ ์Šคํ‚ฌ ํ™œ์„ฑํ™”
jaw skill list              # ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌ ๋ชฉ๋ก

๋ธŒ๋ผ์šฐ์ € & ๋ฐ์Šคํฌํ†ฑ ์ž๋™ํ™”

๊ธฐ๋Šฅ ๋™์ž‘ ๋ฐฉ์‹
Chrome DevTools Protocol ํƒ์ƒ‰, ํด๋ฆญ, ์ž…๋ ฅ, ์Šคํฌ๋ฆฐ์ƒท, JS ์‹คํ–‰, ์Šคํฌ๋กค, ํ‚ค ์ž…๋ ฅ โ€” Chrome ์›๊ฒฉ ์ œ์–ด
Vision-click ํ™”๋ฉด ์บก์ฒ˜ โ†’ AI๊ฐ€ ๋Œ€์ƒ ์ขŒํ‘œ ์ถ”์ถœ โ†’ ํด๋ฆญ. jaw browser vision-click "๋กœ๊ทธ์ธ ๋ฒ„ํŠผ"
Computer Use Codex Computer Use๋ฅผ ํ†ตํ•œ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ์ž๋™ํ™”. Safari๋กœ localhost์— ์ ‘์†ํ•˜๋ฉด Codex ์•ฑ์ฒ˜๋Ÿผ ๋™์ž‘
Web-AI ๋ฒค๋” jaw browser web-ai --vendor chatgpt|gemini|grok โ€” ์„ธ์…˜ ์ƒ๋ช…์ฃผ๊ธฐ, ์ง„๋‹จ, ์†Œ์Šค ๊ฐ์‚ฌ, ChatGPT code-mode zip ํšŒ์ˆ˜ ์ง€์›
Diagram ์Šคํ‚ฌ SVG ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™” ์ƒ์„ฑ, ์ฑ„ํŒ… ์•ˆ์—์„œ ์ธ๋ผ์ธ ๋ Œ๋”๋ง

Computer Use๋กœ Finder, Safari, ์‹œ์Šคํ…œ ์„ค์ •, Xcode ๋“ฑ ๋ชจ๋“  macOS ์•ฑ์„ ์ž์—ฐ์–ด๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ฉ”์‹œ์ง•

Telegram

๐Ÿ“ฑ Telegram โ†โ†’ ๐Ÿฆˆ CLI-JAW โ†โ†’ ๐Ÿค– AI Engines

ํ…์ŠคํŠธ ์ฑ„ํŒ…, ์Œ์„ฑ ๋ฉ”์‹œ์ง€(๋‹ค์ค‘ ํ”„๋กœ๋ฐ”์ด๋” STT โ€” ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ์ž๋™ ๋ณ€ํ™˜), ํŒŒ์ผ/์‚ฌ์ง„ ์—…๋กœ๋“œ, ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด(/cli, /model, /status), ์˜ˆ์•ฝ ์ž‘์—…(every/cron โ€” ๋ฐ˜๋ณต ์Šค์ผ€์ค„) ๊ฒฐ๊ณผ ์ž๋™ ์ „๋‹ฌ.

์„ค์ • (3๋‹จ๊ณ„)
  1. @BotFather์—์„œ /newbot โ†’ ํ† ํฐ ๋ณต์‚ฌ
  2. jaw init --telegram-token YOUR_TOKEN ๋˜๋Š” Web UI ์„ค์ •์—์„œ ์ž…๋ ฅ
  3. ๋ด‡์— ์•„๋ฌด ๋ฉ”์‹œ์ง€๋‚˜ ๋ณด๋‚ด๋ฉด Chat ID ์ž๋™ ์ €์žฅ

Discord

Telegram๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ โ€” ํ…์ŠคํŠธ, ํŒŒ์ผ, ๋ช…๋ น์–ด. ์ฑ„๋„/์Šค๋ ˆ๋“œ ๋ผ์šฐํŒ…, /api/channel/send ์ •๊ทœ ์—”๋“œํฌ์ธํŠธ, ์—์ด์ „ํŠธ ๊ฒฐ๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํฌ์›Œ๋” ์ง€์›. Web UI ์„ค์ •์—์„œ ์„ธํŒ….

์Œ์„ฑ & STT

Web(๋งˆ์ดํฌ ๋ฒ„ํŠผ), Telegram(์Œ์„ฑ ๋ฉ”์‹œ์ง€), Discord์—์„œ ์Œ์„ฑ ์ž…๋ ฅ ๊ฐ€๋Šฅ. ํ”„๋กœ๋ฐ”์ด๋”: OpenAI ํ˜ธํ™˜, Google Vertex AI, ์ปค์Šคํ…€ ์—”๋“œํฌ์ธํŠธ.


MCP (Model Context Protocol)

MCP๋Š” AI ๋„๊ตฌ๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€์ž…๋‹ˆ๋‹ค โ€” AI ์—์ด์ „ํŠธ์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. CLI-JAW๋Š” ๋ชจ๋“  ์—”์ง„์˜ MCP ์„ค์ •์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

jaw mcp install @anthropic/context7
# โ†’ Claude, Codex, Gemini, Kiro, OpenCode, Copilot, Antigravity ์„ค์ • ํŒŒ์ผ์— ๋™์‹œ์— ๋™๊ธฐํ™”

์—ฌ๋Ÿฌ JSON ํŒŒ์ผ์„ ๋”ฐ๋กœ ํŽธ์ง‘ํ•  ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์„ค์น˜ํ•˜๋ฉด MCP ์ง€์› ์—”์ง„ ์ „์ฒด์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. Grok CLI๋Š” ํ‘œ์ค€ ๋Ÿฐํƒ€์ž„์ด์ง€๋งŒ, Grok ์ชฝ์— ํ˜ธํ™˜ MCP ์„ค์ •์ด ํ™•์ธ๋  ๋•Œ๊นŒ์ง€ MCP ๋™๊ธฐํ™” ๋Œ€์ƒ์œผ๋กœ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Antigravity MCP ๋™๊ธฐํ™”๋Š” agy runtime registry entry์™€ ๋ณ„๊ฐœ์˜ config target์ž…๋‹ˆ๋‹ค.

jaw mcp sync       # ์ˆ˜๋™ ํŽธ์ง‘ ํ›„ ๋‹ค์‹œ ๋™๊ธฐํ™”

CLI ๋ช…๋ น์–ด

# ๊ธฐ๋ณธ
jaw dashboard                     # ๋งค๋‹ˆ์ € ๋Œ€์‹œ๋ณด๋“œ ์‹คํ–‰
jaw serve                         # ์„œ๋ฒ„ ์‹œ์ž‘ (http://localhost:3457)
jaw chat                          # ํ„ฐ๋ฏธ๋„ ์ฑ„ํŒ… UI
jaw chat search "query"           # ์ฑ„ํŒ… ํžˆ์Šคํ† ๋ฆฌ ๊ฒ€์ƒ‰
jaw doctor                        # ์„ค์น˜/๋Ÿฐํƒ€์ž„ ์ง„๋‹จ

# ์ธ์Šคํ„ด์Šค
jaw clone ~/project               # ์ธ์Šคํ„ด์Šค ๋ณต์ œ
jaw --home ~/project serve --port 3458  # ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค ์‹คํ–‰
jaw service install               # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘
jaw project set ~/repo            # review/orchestration์šฉ projectDirs ์„ค์ •
jaw lock                          # stop-all ํ๋ฆ„์—์„œ ํ˜„์žฌ ์ธ์Šคํ„ด์Šค ๋ณดํ˜ธ

# AI & ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜
jaw employee list                         # ์„ค์ •๋œ ์ง์› + static ์ง์› ๋ชฉ๋ก
jaw dispatch --agent "Backend" --task "..."  # ์ง์› ๋””์ŠคํŒจ์น˜
jaw dispatch --agent "Backend" --task "..." --watch  # ์•ˆ์ „ progress ์ŠคํŠธ๋ฆฌ๋ฐ
jaw worker status Backend            # ํ˜„์žฌ/์ด์ „ ์ง์› progress ํ™•์ธ
jaw orchestrate                   # PABCD ์›Œํฌํ”Œ๋กœ ์‹œ์ž‘/์ œ์–ด
jaw goal status                   # ์˜๊ตฌ goal lifecycle
jaw task list                     # ์—์ด์ „ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ task checklist
# ์ฑ„ํŒ… ์•ˆ์—์„œ๋Š”: /continue         # worklog/PABCD ๋ช…์‹œ ์žฌ๊ฐœ

# ์Šคํ‚ฌ & MCP
jaw skill install <name>          # ์Šคํ‚ฌ ํ™œ์„ฑํ™”
jaw skill list                    # ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌ ๋ชฉ๋ก
jaw mcp install <package>         # MCP ์„ค์น˜ โ†’ MCP ์ง€์› ์—”์ง„ ๋™๊ธฐํ™”
jaw mcp sync                      # MCP ์„ค์ • ์žฌ๋™๊ธฐํ™”

# ๋ฉ”๋ชจ๋ฆฌ
jaw memory search <query>         # ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ฒ€์ƒ‰
jaw memory save <file> <content>  # ๊ตฌ์กฐํ™”๋œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ

# ๋ธŒ๋ผ์šฐ์ €
jaw browser start                 # Chrome ์ž๋™ํ™” ์‹œ์ž‘
jaw browser fetch "https://example.com" --json --trace  # URL ์ ์‘ํ˜• ์ฝ๊ธฐ
jaw browser snapshot              # ํŽ˜์ด์ง€ ์ƒํƒœ ์บก์ฒ˜
jaw browser vision-click "๋กœ๊ทธ์ธ"  # AI ๊ธฐ๋ฐ˜ ํด๋ฆญ
jaw browser web-ai status         # ChatGPT/Gemini/Grok web-AI ์„ธ์…˜ ๋„๊ตฌ
jaw browser web-ai code --vendor chatgpt --model thinking --effort heavy --prompt "MVP ๋งŒ๋“ค๊ธฐ" --output-zip ./result.zip

# ๋Œ€์‹œ๋ณด๋“œ ์ปค๋„ฅํ„ฐ
jaw dashboard memory search "query"  # read-only cross-instance memory search
jaw dashboard chat search "query"    # cross-instance chat search
jaw connector board add --title "๋ฌธ์„œ ์ˆ˜์ •"
jaw reminders add "๋‚ด์ผ ํ™•์ธ"

# ์œ ์ง€๋ณด์ˆ˜
jaw reset                         # ์ „์ฒด ์ดˆ๊ธฐํ™”

๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค

์„ค์ •, ๋ฉ”๋ชจ๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ๋…๋ฆฝ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

jaw clone ~/my-project
jaw --home ~/my-project serve --port 3458

๊ฐ ์ธ์Šคํ„ด์Šค๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์  โ€” ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ, MCP ์„ค์ • ๋ชจ๋‘ ๋ณ„๊ฐœ. ๋งค๋‹ˆ์ € ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ „๋ถ€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฐœ๋ฐœ

npm run build          # tsc โ†’ dist/
npm run build:frontend # vite โ†’ public/dist/
npm run dev            # tsx server.ts (ํ•ซ ๋ฆฌ๋กœ๋“œ)
npm test               # Node.js ๋„ค์ดํ‹ฐ๋ธŒ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ
npm run gate:all       # named release/docs parity gates
bash structure/check-doc-drift.sh

์•„ํ‚คํ…์ฒ˜ ์ƒ์„ธ: ARCHITECTURE.md ยท ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€: TESTS.md ยท ๋‚ด๋ถ€ ๊ตฌ์กฐ ๋ฌธ์„œ: structure/


๋น„๊ต

CLI-JAW 2.x Hermes Agent Claude Code
๋ชจ๋ธ ์ ‘๊ทผ Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Gemini, Grok, Kiro, OpenCode, Copilot โ€” ๋ฒค๋”/๋„ค์ดํ‹ฐ๋ธŒ ์ธ์ฆ์œผ๋กœ ์—ฐ๊ฒฐ API ํ‚ค (OpenRouter 200+, Nous Portal) Anthropic ์ „์šฉ
๋น„์šฉ ๋ชจ๋ธ ์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ ์›” ๊ตฌ๋… ๊ทธ๋Œ€๋กœ ํ† ํฐ๋‹น API ๊ณผ๊ธˆ Anthropic ๊ตฌ๋…
๋ฉ”์ธ UI ๋งค๋‹ˆ์ € ๋Œ€์‹œ๋ณด๋“œ + ์›น์•ฑ + Mac์•ฑ + ํ„ฐ๋ฏธ๋„ UI ํ„ฐ๋ฏธ๋„ ์ „์šฉ CLI + IDE ํ”Œ๋Ÿฌ๊ทธ์ธ
๋Œ€์‹œ๋ณด๋“œ ๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค ๋งค๋‹ˆ์ €, ์นธ๋ฐ˜, ๋…ธํŠธ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์—†์Œ ์—†์Œ
๋ฉ”์‹œ์ง• Telegram (์Œ์„ฑ) + Discord Telegram/Discord/Slack/WhatsApp/Signal ์—†์Œ
๋ฉ”๋ชจ๋ฆฌ 3๊ณ„์ธต (History/Flush/Soul) + ์ „๋ฌธ ๊ฒ€์ƒ‰ Self-improving loop + Honcho ํŒŒ์ผ ๊ธฐ๋ฐ˜ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ
๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ง์› ์‹œ์Šคํ…œ (๋‹ค๋ฅธ CLI ๋””์ŠคํŒจ์น˜) + PABCD ์„œ๋ธŒ์—์ด์ „ํŠธ ์Šคํฐ Task ๋„๊ตฌ
๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” Chrome DevTools + vision-click + Computer Use ์ œํ•œ์  MCP ๊ฒฝ์œ 
์‹คํ–‰ ํ™˜๊ฒฝ ๋กœ์ปฌ + Docker ๋กœ์ปฌ/Docker/SSH/Daytona/Modal ๋กœ์ปฌ
์Šคํ‚ฌ 200+ ์ฐธ์กฐ ์Šคํ‚ฌ + ํ™œ์„ฑ ๋Ÿฐํƒ€์ž„ ์Šคํ‚ฌ ์ž๊ฐ€ ์ƒ์„ฑ + agentskills.io ์œ ์ € ์„ค์ •
๋‹ค๊ตญ์–ด ์˜์–ด, ํ•œ๊ตญ์–ด, ์ค‘๊ตญ์–ด, ์ผ๋ณธ์–ด ์˜์–ด ์˜์–ด

๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
cli-jaw: command not found npm install -g cli-jaw ์žฌ์‹คํ–‰. macOS/Linux/WSL์—์„œ๋Š” ~/.local/bin ๋˜๋Š” npm prefix -g + /bin์ด $PATH์— ์žˆ๋Š”์ง€ ํ™•์ธ. Windows PowerShell์—์„œ๋Š” wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"์ฒ˜๋Ÿผ WSL login shell๋กœ ์‹คํ–‰
Error: node version Node.js 22.4+๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ: nvm install 22
NODE_MODULE_VERSION mismatch npm run ensure:native (๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์ž๋™ ์žฌ๋นŒ๋“œ)
EADDRINUSE: port 3457 ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์‹คํ–‰ ์ค‘. --port 3458 ์‚ฌ์šฉ ๋˜๋Š” ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ
Telegram / Discord ์ธ์ฆ ์‹คํŒจ jaw doctor ์‹คํ–‰ ํ›„ jaw serve ์žฌ์‹œ์ž‘
๋ธŒ๋ผ์šฐ์ € ๋ช…๋ น ์‹คํŒจ Chrome/Chromium ์„ค์น˜ ํ›„ jaw browser start ๋จผ์ € ์‹คํ–‰
์ง์› ๋””์ŠคํŒจ์น˜๊ฐ€ ๋ฉˆ์ถค jaw employee list๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ง์› CLI๊ฐ€ ์ธ์ฆ๋๋Š”์ง€ ํ™•์ธํ•œ ๋’ค(jaw doctor) jaw dispatch --watch๋กœ ๋‹ค์‹œ ์‹œ๋„
์ง์› ๋””์ŠคํŒจ์น˜๊ฐ€ non-JSON ๋˜๋Š” HTML์„ ๋ฐ˜ํ™˜ ์„œ๋ฒ„๊ฐ€ ์˜ค๋ž˜๋๊ฑฐ๋‚˜ route๊ฐ€ ๋ˆ„๋ฝ๋์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. npm run build๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ manager/dashboard ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌ์‹œ์ž‘
Computer Use ์•ˆ๋จ macOS ์ „์šฉ. Codex CLI ํ•„์š”. ์‹œ์Šคํ…œ ์„ค์ •์—์„œ ์ž๋™ํ™” ๊ถŒํ•œ ํ™•์ธ

๊ธฐ์—ฌํ•˜๊ธฐ

  1. master์—์„œ Forkํ•˜๊ณ  ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค
  2. npm run build && npm run build:frontend && npm test
  3. release-sensitive ๋ณ€๊ฒฝ์€ npm run gate:all๊ณผ touched surface focused check๋„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
  4. PR์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ, ๊ธฐ๋Šฅ ์•„์ด๋””์–ด: Issue ์—ด๊ธฐ


MIT License ยท AI ์•ฑ์„ ์™”๋‹ค ๊ฐ”๋‹ค ํ•˜๋Š” ๊ฒŒ ์ง€๊ฒจ์šด ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.