cli-jaw 1.7.18 โ†’ 1.7.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md CHANGED
@@ -1,18 +1,14 @@
1
1
  <div align="center">
2
2
 
3
- # ๐Ÿฆˆ CLI-JAW
3
+ # CLI-JAW
4
4
 
5
- ### 5๋Œ€ AI ์—”์ง„์„ ํ’ˆ์€ ๋‚˜๋งŒ์˜ ๋กœ์ปฌ ๋น„์„œ
5
+ ### ์ด๋ฏธ ๊ฒฐ์ œํ•œ AI ๊ตฌ๋…, ํ•˜๋‚˜์˜ ๋น„์„œ๋กœ.
6
6
 
7
- *Claude, Codex, Gemini... ์ด์ œ ๋ฒˆ๊ฐˆ์•„ ์“ฐ์ง€ ๋งˆ์„ธ์š”.*
8
-
9
- [![Tests](https://img.shields.io/badge/tests-rolling%20inventory-blue)](#-ํ…Œ์ŠคํŠธ)
7
+ [![npm](https://img.shields.io/npm/v/cli-jaw)](https://npmjs.com/package/cli-jaw)
10
8
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
9
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
10
  [![License](https://img.shields.io/badge/license-MIT-yellow)](LICENSE)
13
- [![npm](https://img.shields.io/npm/v/cli-jaw)](https://npmjs.com/package/cli-jaw)
14
- [![Docker](https://img.shields.io/badge/Docker-supported-2496ED?logo=docker&logoColor=white)](#-๋„์ปค--์ปจํ…Œ์ด๋„ˆ-๊ฒฉ๋ฆฌ)
15
- [![Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20WSL%20%7C%20Docker-lightgrey)](#)
11
+ [![Docker](https://img.shields.io/badge/Docker-supported-2496ED?logo=docker&logoColor=white)](#-docker)
16
12
 
17
13
  [English](README.md) / **ํ•œ๊ตญ์–ด** / [ไธญๆ–‡](README.zh-CN.md)
18
14
 
@@ -20,399 +16,190 @@
20
16
 
21
17
  </div>
22
18
 
23
- ## ๋น ๋ฅธ ๋งํฌ
24
-
25
- - [์„ค์น˜ & ์‹คํ–‰](#-์„ค์น˜--์‹คํ–‰-30์ดˆ) ยท [AI ์—”์ง„ ์ธ์ฆ](#-ai-์—”์ง„-์ธ์ฆ) ยท [CLI-JAW๋ž€?](#cli-jaw๋ž€-๋ฌด์—‡์ธ๊ฐ€์š”)
26
- - [๊ธฐ๋Šฅ](#๋น„์„œ๊ฐ€-์–ด๋–ค-์ผ์„-ํ• -์ˆ˜-์žˆ๋‚˜์š”) ยท [์Šคํ‚ฌ](#-์Šคํ‚ฌ-์‹œ์Šคํ…œ) ยท [ํ…”๋ ˆ๊ทธ๋žจ](#-ํ…”๋ ˆ๊ทธ๋žจ--๋‚ด-์ฃผ๋จธ๋‹ˆ-์†์˜-๋น„์„œ) ยท [์Œ์„ฑ & STT](#-์Œ์„ฑ--stt--์Œ์„ฑ-์ธ์‹)
27
- - [์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜](#-๋ฉ€ํ‹ฐ-์—์ด์ „ํŠธ-์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜) ยท [MCP](#-mcp--๋‹จ์ผ-์„ค์ •-6๊ฐœ์˜-ai-์—”์ง„) ยท [CLI ๋ช…๋ น์–ด](#๏ธ-cli-๋ช…๋ น์–ด)
28
- - [๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค](#๏ธ-๋ฉ€ํ‹ฐ-์ธ์Šคํ„ด์Šค--ํ”„๋กœ์ ํŠธ๋ณ„-๋…๋ฆฝ-ํ™˜๊ฒฝ) ยท [๋ชจ๋ธ](#-๋ชจ๋ธ) ยท [Docker](#-docker--์ปจํ…Œ์ด๋„ˆ-๊ฒฉ๋ฆฌ)
29
- - [๊ฐœ๋ฐœ](#๏ธ-๊ฐœ๋ฐœ) ยท [ํ…Œ์ŠคํŠธ](#-ํ…Œ์ŠคํŠธ) ยท [๋ฌธ์„œ](#-๋ฌธ์„œ) ยท [๋ฌธ์ œ ํ•ด๊ฒฐ](#-๋ฌธ์ œ-ํ•ด๊ฒฐ) ยท [๊ธฐ์—ฌํ•˜๊ธฐ](#-๊ธฐ์—ฌํ•˜๊ธฐ)
30
-
31
- <details>
32
- <summary>๐ŸชŸ <b>Windows ์‚ฌ์šฉ์ž์ด์‹ ๊ฐ€์š”?</b> โ€” WSL ์›ํด๋ฆญ ์„ค์น˜</summary>
33
-
34
- **Step 1: WSL ์„ค์น˜** (PowerShell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ โ€” ์ตœ์ดˆ 1ํšŒ)
35
-
36
- ```powershell
37
- wsl --install
38
- ```
39
-
40
- ์•ˆ๋‚ด์— ๋”ฐ๋ผ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์„ธ์š”. ์žฌ๋ถ€ํŒ… ํ›„ ์‹œ์ž‘ ๋ฉ”๋‰ด์—์„œ **Ubuntu**๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.
41
-
42
- **Step 2: CLI-JAW ์„ค์น˜** (Ubuntu/WSL ํ„ฐ๋ฏธ๋„์—์„œ)
43
-
44
- ```bash
45
- curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
46
- ```
47
-
48
- ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•„์ˆ˜ ํŒจํ‚ค์ง€(`curl`, `unzip`, `git`), Node.js 22+, CLI-JAW๋ฅผ ์ž๋™ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
49
-
50
- **Step 3: ์‰˜ ๋‹ค์‹œ ๋กœ๋“œ** (์ค‘์š” โ€” PATH ๋ณ€๊ฒฝ ์ ์šฉ)
51
-
52
- ```bash
53
- source ~/.bashrc
54
- ```
55
-
56
- **Step 4: AI ์—”์ง„ ์ธ์ฆ** (ํ•˜๋‚˜ ์„ ํƒ)
57
-
58
- ```bash
59
- copilot login # GitHub Copilot (๋ฌด๋ฃŒ)
60
- opencode # OpenCode (๋ฌด๋ฃŒ ๋ชจ๋ธ ์ œ๊ณต)
61
- claude auth # Anthropic Claude
62
- codex login # OpenAI Codex
63
- gemini # Google Gemini
64
- ```
65
-
66
- **Step 5: ์‹œ์ž‘ํ•˜๊ธฐ**
67
-
68
- ```bash
69
- jaw serve
70
- # โ†’ http://localhost:3457
71
- ```
72
-
73
- > ๐Ÿ’ก ์Šคํฌ๋ฆฝํŠธ๋Š” [fnm](https://github.com/Schniz/fnm)์œผ๋กœ Node.js๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ `nvm`์ด ์žˆ์œผ๋ฉด ๊ทธ๊ฑธ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
74
-
75
- <details>
76
- <summary>๐Ÿ”ง <b>WSL ๋ฌธ์ œ ํ•ด๊ฒฐ</b></summary>
19
+ <table>
20
+ <tr><td><b>๊ธฐ์กด ๊ตฌ๋…์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉ</b></td><td>Claude Max, ChatGPT Pro, Copilot, Gemini Advanced โ€” OAuth ๋ผ์šฐํŒ…. OpenCode๋กœ ์•„๋ฌด ๋ชจ๋ธ์ด๋‚˜ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ. ํ† ํฐ ๊ณผ๊ธˆ ์—†์Œ.</td></tr>
21
+ <tr><td><b>์–ด๋””์„œ๋“  ์ ‘๊ทผ</b></td><td>์›น PWA(๊ฐ€์ƒ ์Šคํฌ๋กค, WS ์ŠคํŠธ๋ฆฌ๋ฐ) + Mac WebView ์•ฑ + ํ„ฐ๋ฏธ๋„ TUI + Telegram(์Œ์„ฑ) + Discord โ€” 5๊ฐœ ์ธํ„ฐํŽ˜์ด์Šค, ํ•˜๋‚˜์˜ ๋Œ€ํ™”.</td></tr>
22
+ <tr><td><b>3๊ณ„์ธต ๋ฉ”๋ชจ๋ฆฌ</b></td><td>History Block(์ตœ๊ทผ ์„ธ์…˜) + Memory Flush(์—ํ”ผ์†Œ๋“œ, ์ผ์ผ ๋กœ๊ทธ) + Soul & Task Snapshot(์ •์ฒด์„ฑ, ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰). SQLite FTS5 ์ „๋ฌธ ๊ฒ€์ƒ‰.</td></tr>
23
+ <tr><td><b>๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜</b></td><td>PABCD โ€” DB ๊ธฐ๋ฐ˜ 5๋‹จ๊ณ„ FSM. Employee ์‹œ์Šคํ…œ๊ณผ Worker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ. ํŒŒ์ผ ์ถฉ๋Œ ๊ฐ์ง€ ๋ณ‘๋ ฌ ์‹คํ–‰. ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ์ž ์Šน์ธ ํ•„์š”.</td></tr>
24
+ <tr><td><b>๋ธŒ๋ผ์šฐ์ € ๋ฐ ๋ฐ์Šคํฌํ†ฑ ์ž๋™ํ™”</b></td><td>Chrome CDP, vision-click, ChatGPT/Grok/Gemini DOM ๋ ˆํผ๋Ÿฐ์Šค, Codex App Computer Use ํ†ตํ•ฉ, diagram ์Šคํ‚ฌ๋กœ SVG/์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™”.</td></tr>
25
+ <tr><td><b>MCP ํ•œ ๋ฒˆ ์„ค์น˜, 5๊ฐœ ์—”์ง„</b></td><td><code>jaw mcp install</code>๋กœ Claude, Codex, Gemini, OpenCode, Copilot์— ๋™์‹œ ๋™๊ธฐํ™”. ์„ค์ • ํŒŒ์ผ ํ•˜๋‚˜.</td></tr>
26
+ <tr><td><b>ํ•œ๊ตญ์–ด ์ง€์›</b></td><td>ํ•œ๊ตญ์–ด/์˜์–ด/์ค‘๊ตญ์–ด README. i18n ์›น UI. OfficeCLI๋ฅผ ํ†ตํ•œ HWP/HWPX ํ•œ๊ธ€ ๋ฌธ์„œ ์ง€์›.</td></tr>
27
+ </table>
77
28
 
78
- | ๋ฌธ์ œ | ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• |
79
- | --------------------------------------- | ------------------------------------------------------- |
80
- | `unzip: command not found` | ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š” โ€” `unzip`์„ ์ž๋™ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค |
81
- | `jaw: command not found` (์„ค์น˜ ํ›„) | `source ~/.bashrc`๋กœ PATH๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜์„ธ์š” |
82
- | ์—ฌ์ „ํžˆ `jaw`๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ | `export PATH="$(npm config get prefix)/bin:$PATH"` ์‹คํ–‰ |
83
- | `npm install -g` ๊ถŒํ•œ ์˜ค๋ฅ˜ | `sudo chown -R $USER $(npm config get prefix)` ์‹คํ–‰ |
84
-
85
- </details>
86
-
87
- </details>
88
-
89
- <details>
90
- <summary>๐ŸŽ <b>ํ„ฐ๋ฏธ๋„์ด ์ฒ˜์Œ์ด์‹ ๊ฐ€์š”?</b> โ€” ์›ํด๋ฆญ Node.js + CLI-JAW ์„ค์น˜</summary>
91
-
92
- **Step 1: ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ**
93
-
94
- **Finder** โ†’ **์‘์šฉ ํ”„๋กœ๊ทธ๋žจ** โ†’ **์œ ํ‹ธ๋ฆฌํ‹ฐ** โ†’ **ํ„ฐ๋ฏธ๋„.app** ์„ ์—ด์–ด์ฃผ์„ธ์š”.
95
- (๋˜๋Š” `โŒ˜ Space` ๋ˆ„๋ฅด๊ณ  `ํ„ฐ๋ฏธ๋„` ์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜์„ธ์š”)
96
-
97
- **Step 2: ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  Enter**
98
-
99
- ```bash
100
- curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
101
- ```
102
-
103
- Node.js + CLI-JAW๊ฐ€ ์ž๋™์œผ๋กœ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰ ๊ฐ€ ๋œฐ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”.
104
-
105
- **Step 3: ๋กœ๊ทธ์ธ & ์‹คํ–‰**
106
-
107
- ```bash
108
- copilot login # ๋˜๋Š”: claude auth / codex login / gemini login
109
- jaw serve
110
- ```
29
+ ---
111
30
 
112
- ๋ธŒ๋ผ์šฐ์ €์—์„œ **http://localhost:3457** ์„ ์—ด๋ฉด ๋! ๐Ÿฆˆ
31
+ ## ๋น ๋ฅธ ๋งํฌ
113
32
 
114
- </details>
33
+ - [์„ค์น˜](#-์„ค์น˜--์‹คํ–‰) ยท [์ธ์ฆ](#-์ธ์ฆ) ยท [์ธํ„ฐํŽ˜์ด์Šค](#๏ธ-์–ด๋””์„œ-์“ฐ๋‚˜)
34
+ - [์—”์ง„ ๋ผ์šฐํŒ…](#-์—”์ง„-๋ผ์šฐํŒ…) ยท [๋ฉ”๋ชจ๋ฆฌ](#-๋ฉ”๋ชจ๋ฆฌ) ยท [PABCD](#-์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜--pabcd) ยท [์Šคํ‚ฌ](#-์Šคํ‚ฌ)
35
+ - [๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”](#-๋ธŒ๋ผ์šฐ์ €--๋ฐ์Šคํฌํ†ฑ-์ž๋™ํ™”) ยท [MCP](#-mcp) ยท [๋ฉ”์‹œ์ง•](#-๋ฉ”์‹œ์ง•)
36
+ - [CLI ๋ช…๋ น์–ด](#๏ธ-cli-๋ช…๋ น์–ด) ยท [Docker](#-docker) ยท [๋ฌธ์„œ](#-๋ฌธ์„œ) ยท [๋น„๊ต](#๏ธ-๋น„๊ต)
115
37
 
116
38
  ---
117
39
 
118
- ## ๐Ÿš€ ์„ค์น˜ & ์‹คํ–‰ (30์ดˆ)
40
+ ## ๐Ÿš€ ์„ค์น˜ & ์‹คํ–‰
119
41
 
120
42
  ```bash
121
43
  npm install -g cli-jaw
122
44
  jaw serve
123
45
  ```
124
46
 
125
- **๋.** **http://localhost:3457** ์—ด๊ณ  ๋ฐ”๋กœ ์ฑ„ํŒ…ํ•˜์„ธ์š”. ๐Ÿฆˆ
126
-
127
- > ๐Ÿ• **24์‹œ๊ฐ„ ๋Œ์•„๊ฐ€๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์„ธ์š”?** `jaw service install` โ€” systemd, launchd, Docker ์ž๋™ ๊ฐ์ง€.
47
+ **http://localhost:3457**์„ ์—ด๋ฉด ๋. Node.js 22+ ๋ฐ ์•„๋ž˜ AI CLI ์ค‘ ํ•˜๋‚˜ ์ด์ƒ ์ธ์ฆ ํ•„์š”.
128
48
 
129
- > **Node.js โ‰ฅ 22** ([๋‹ค์šด๋กœ๋“œ](https://nodejs.org)) + ์•„๋ž˜์—์„œ **AI CLI ์ตœ์†Œ 1๊ฐœ** ์ธ์ฆ ํ•„์š”.
49
+ > `jaw service install` โ€” ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ (systemd, launchd, Docker ์ž๋™ ๊ฐ์ง€).
130
50
 
131
51
  ---
132
52
 
133
- ## ๐Ÿ”‘ AI ์—”์ง„ ์ธ์ฆ
53
+ ## ๐Ÿ”‘ ์ธ์ฆ
134
54
 
135
- **ํ•˜๋‚˜๋งŒ** ์žˆ์œผ๋ฉด ๋ผ์š” โ€” ๊ฐ€์ง„ ๊ฑฐ ๊ณจ๋ผ์„œ:
55
+ ํ•˜๋‚˜๋งŒ ์žˆ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ตฌ๋… ์ค‘์ธ ๊ฒƒ์„ ์„ ํƒํ•˜์„ธ์š”:
136
56
 
137
57
  ```bash
138
- # โ”€โ”€ ๋ฌด๋ฃŒ โ”€โ”€
139
- copilot login # GitHub Copilot (๋ฌด๋ฃŒ ํ”Œ๋žœ)
140
- opencode # OpenCode โ€” ์ฒซ ์‹คํ–‰ ์‹œ ์ž๋™ ์ธ์ฆ (๋ฌด๋ฃŒ ๋ชจ๋ธ ์žˆ์Œ)
141
-
142
- # โ”€โ”€ ์œ ๋ฃŒ โ”€โ”€
143
- claude auth # Anthropic Claude
144
- codex login # OpenAI Codex
145
- gemini # Google Gemini โ€” ์ฒซ ์‹คํ–‰ ์‹œ ์ธ์ฆ
58
+ # ๋ฌด๋ฃŒ
59
+ copilot login # GitHub Copilot
60
+ opencode # OpenCode โ€” ๋ฌด๋ฃŒ ๋ชจ๋ธ ์ œ๊ณต
61
+
62
+ # ์œ ๋ฃŒ (์›”์ •์•ก)
63
+ claude auth # Anthropic Claude Max
64
+ codex login # OpenAI ChatGPT Pro
65
+ gemini # Google Gemini Advanced
146
66
  ```
147
67
 
148
- ์ค€๋น„ ์ƒํƒœ ํ™•์ธ: `jaw doctor`
68
+ ์ƒํƒœ ํ™•์ธ: `jaw doctor`
149
69
 
150
- <details>
151
- <summary>๐Ÿ“‹ <code>jaw doctor</code> ์ถœ๋ ฅ ์˜ˆ์‹œ</summary>
70
+ ---
152
71
 
153
- ```
154
- ๐Ÿฆˆ CLI-JAW Doctor โ€” 12 checks
155
-
156
- โœ… Node.js v22.15.0
157
- โœ… npm v10.9.4
158
- โœ… Claude CLI installed
159
- โœ… Codex CLI installed
160
- โš ๏ธ Gemini CLI not found (optional)
161
- โœ… OpenCode CLI installed
162
- โœ… Copilot CLI installed
163
- โœ… Database jaw.db OK
164
- โœ… Skills 22 active, 94 reference
165
- โœ… MCP 3 servers configured
166
- โœ… Memory MEMORY.md exists
167
- โœ… Server port 3457 available
168
- ```
72
+ ## ๐Ÿ–ฅ๏ธ ์–ด๋””์„œ ์“ฐ๋‚˜
169
73
 
170
- </details>
74
+ 5๊ฐœ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋™์ผํ•œ ๋น„์„œ, ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ, ๋™์ผํ•œ ์Šคํ‚ฌ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
171
75
 
172
- > ๐Ÿ’ก **5๊ฐœ ๋‹ค ๊น” ํ•„์š” ์—†์–ด์š”.** ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์—”์ง„์ด ์„ค์น˜๋ผ ์žˆ๋Š”์ง€ ์ž๋™ ๊ฐ์ง€ํ•˜๊ณ , ์—†์œผ๋ฉด ๋‹ค์Œ ์—”์ง„์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.
76
+ | ์ธํ„ฐํŽ˜์ด์Šค | ๊ธฐ๋Šฅ |
77
+ |---|---|
78
+ | **์›น PWA** | markdown/KaTeX/Mermaid ๋ Œ๋”๋ง, ๊ฐ€์ƒ ์Šคํฌ๋กค, WS ์ŠคํŠธ๋ฆฌ๋ฐ, ํŒŒ์ผ ๋“œ๋ž˜๊ทธ์•ค๋“œ๋กญ, ์Œ์„ฑ ๋…น์Œ, PABCD ๋กœ๋“œ๋งต ๋ฐ”, i18n(ํ•œ๊ตญ์–ด/์˜์–ด), ๋‹คํฌ/๋ผ์ดํŠธ ํ…Œ๋งˆ, IndexedDB ์˜คํ”„๋ผ์ธ ์บ์‹œ |
79
+ | **Mac WebView ์•ฑ** | `jaw serve`๋ฅผ macOS ์•ฑ ์…ธ๋กœ ๊ฐ์‹ผ ๊ฒƒ. ๋ธŒ๋ผ์šฐ์ € ์—†์ด Dock์—์„œ ๋ฐ”๋กœ ์ ‘๊ทผ |
80
+ | **ํ„ฐ๋ฏธ๋„ TUI** | ๋ฉ€ํ‹ฐ๋ผ์ธ ํŽธ์ง‘, ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด ์ž๋™์™„์„ฑ, ์˜ค๋ฒ„๋ ˆ์ด ์…€๋ ‰ํ„ฐ, ์„ธ์…˜ ์œ ์ง€, ์žฌ๊ฐœ ๋ถ„๋ฅ˜ |
81
+ | **Telegram** | ์Œ์„ฑ ๋ฉ”์‹œ์ง€(๋ฉ€ํ‹ฐ STT ํ”„๋กœ๋ฐ”์ด๋”), ์‚ฌ์ง„, ํŒŒ์ผ. ์˜ˆ์•ฝ ์ž‘์—… ๊ฒฐ๊ณผ ์ž๋™ ์ „์†ก. `/cli`, `/model` ๋“ฑ ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด |
82
+ | **Discord** | ํ…์ŠคํŠธ/ํŒŒ์ผ ๋ฉ”์‹œ์ง•, ๋ช…๋ น์–ด ๋™๊ธฐํ™”, ์ฑ„๋„/์Šค๋ ˆ๋“œ ๋ผ์šฐํŒ…, ์—์ด์ „ํŠธ ๊ฒฐ๊ณผ ํฌ์›Œ๋” |
173
83
 
174
84
  ---
175
85
 
176
- ## CLI-JAW๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?
177
-
178
- CLI-JAW๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์ƒ์ฃผํ•˜๋ฉฐ ์ด๋ฏธ ์ต์ˆ™ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ธ **์›น, ํ„ฐ๋ฏธ๋„, ํ…”๋ ˆ๊ทธ๋žจ, ๋””์Šค์ฝ”๋“œ**์—์„œ ์ž‘๋™ํ•˜๋Š” **๊ฐœ์ธ์šฉ AI ๋น„์„œ**์ž…๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ๊ฒƒ์„ ๋ฌป๊ณ , ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ , ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ํ™”ํ•˜์„ธ์š”.
179
- ![CLI-JAW Web UI](image/README/1772128366759.png)
86
+ ## ๐Ÿ”€ ์—”์ง„ ๋ผ์šฐํŒ…
180
87
 
181
- > ๐Ÿ’ฌ *"์˜ค๋Š˜ ์ผ์ • ์ •๋ฆฌํ•ด์ค˜"* โ†’ ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ๋ฐ”๋กœ ์ •๋ฆฌํ•ด์„œ ๋ณด๋‚ด์ค˜์š”
182
- > ๐Ÿ’ฌ *"์ด ๋ชจ๋“ˆ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋„ ์งœ์ค˜"* โ†’ ์„œ๋ธŒ์—์ด์ „ํŠธ๊ฐ€ ์•Œ์•„์„œ, ์ปคํ”ผ ํ•œ ์ž” ํ•˜๊ณ  ์˜ค๋ฉด ๋ผ์š”
183
- > ๐Ÿ’ฌ *"์ € PDF ๋‹ค์šด๋ฐ›์•„์„œ ํ•ต์‹ฌ๋งŒ ๋…ธ์…˜์— ์ •๋ฆฌํ•ด"* โ†’ ๋ธŒ๋ผ์šฐ์ € + ๋…ธ์…˜ ์Šคํ‚ฌ ์กฐํ•ฉ์œผ๋กœ ๋š๋”ฑ
88
+ ์ด๋ฏธ ๊ฒฐ์ œ ์ค‘์ธ OAuth ์›”์ •์•ก์„ ํ†ตํ•ด 5๊ฐœ CLI ๋ฐฑ์—”๋“œ๋ฅผ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ ๋‹จ์œ„ ๊ณผ๊ธˆ ์—†์Œ.
184
89
 
185
- ๋‹จ์ผ ๋ชจ๋ธ๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ๋น„์„œ๋“ค๊ณผ ๋‹ฌ๋ฆฌ, CLI-JAW๋Š” 5๊ฐœ์˜ AI ์—”์ง„(Claude, Codex, Gemini, OpenCode, Copilot)์„ ๊ณต์‹ CLI๋ฅผ ํ†ตํ•ด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋ชจ๋“  ์ œ๊ณต์—…์ฒด์˜ ์žฅ์ ์„ ํ†ตํ•ฉ๋œ ๊ฒฝํ—˜์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์—”์ง„ ์‚ฌ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์Œ ์—”์ง„์œผ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. **100๊ฐœ ์ด์ƒ์˜ ๋‚ด์žฅ ์Šคํ‚ฌ**์ด ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”๋ถ€ํ„ฐ ๋ฌธ์„œ ์ƒ์„ฑ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
90
+ | CLI | ๊ธฐ๋ณธ ๋ชจ๋ธ | ์ธ์ฆ | ๋น„์šฉ |
91
+ |---|---|---|---|
92
+ | **Claude** | `opus-4-6` | `claude auth` | Claude Max ๊ตฌ๋… |
93
+ | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro ๊ตฌ๋… |
94
+ | **Gemini** | `gemini-3.1-pro-preview` | `gemini` | Gemini Advanced ๊ตฌ๋… |
95
+ | **OpenCode** | `minimax-m2.7` | `opencode` | ๋ฌด๋ฃŒ ๋ชจ๋ธ ์ œ๊ณต |
96
+ | **Copilot** | `gpt-5-mini` | `copilot login` | ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์ œ๊ณต |
186
97
 
187
- | | ์™œ CLI-JAW์ธ๊ฐ€์š”? |
188
- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
189
- | ๐Ÿ›ก๏ธ **์•ˆ์ „ํ•œ ์„œ๋น„์Šค ์•ฝ๊ด€ ์ค€์ˆ˜** | ๊ณต์‹ CLI๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค โ€” API ํ‚ค ์Šคํฌ๋ž˜ํ•‘์ด๋‚˜ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์ด ์—†์œผ๋ฏ€๋กœ ๊ณ„์ • ์ •์ง€ ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค. |
190
- | ๐Ÿค– **๊ฒ€์ฆ๋œ ์—์ด์ „ํŠธ ๋„๊ตฌ** | ์‹ค์ „์—์„œ ๊ฒ€์ฆ๋œ 5๊ฐœ์˜ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude, Codex, Gemini, OpenCode, Copilot)๋ฅผ ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜์„ธ์š”. |
191
- | โšก **๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ž๋™ ์ „ํ™˜(Fallback)** | ์—”์ง„ ํ•˜๋‚˜๊ฐ€ ๋ฉˆ์ถฐ๋„ ๊ฑฑ์ • ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์—”์ง„์ด ์ฆ‰์‹œ ์ด์–ด๋ฐ›์•„ ์ค‘๋‹จ ์—†๋Š” ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. |
192
- | ๐ŸŽญ **์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”** | ๋ณต์žกํ•œ ์ž‘์—…์€ ์ „๋ฌธํ™”๋œ ์„œ๋ธŒ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. |
193
- | ๐Ÿ“ฆ **100๊ฐœ+ ๋‚ด์žฅ ์Šคํ‚ฌ** | ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”, ๋ฌธ์„œ ์ƒ์„ฑ, ํ…”๋ ˆ๊ทธ๋žจ ์—ฐ๋™, ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์„ค์น˜ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. |
194
- | ๐Ÿ–ฅ๏ธ **ํฌ๋กœ์Šค ํ”Œ๋žซํผ** | macOS, Linux, Windows โ€” ENOENT-safe CLI ์Šคํฐ, ์ž๋™ ๊ฐ์ง€, `.cmd` shim ์ง€์›, ๋„ค์ดํ‹ฐ๋ธŒ ์„ค์น˜ ์ „๋ถ€ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๋™์ž‘. |
98
+ **ํด๋ฐฑ ์ฒด์ธ**: ํ•˜๋‚˜๊ฐ€ ์ œํ•œ๋˜๊ฑฐ๋‚˜ ๋‹ค์šด๋˜๋ฉด ๋‹ค์Œ ์—”์ง„์ด ์ž๋™์œผ๋กœ ์ด์–ด๋ฐ›์Œ. `/fallback [cli1 cli2...]`๋กœ ์„ค์ •.
195
99
 
196
- ![CLI-JAW ํ„ฐ๋ฏธ๋„](docs/screenshots/terminal-cli.png)
100
+ **OpenCode ์™€์ผ๋“œ์นด๋“œ**: OpenRouter, ๋กœ์ปฌ LLM ๋“ฑ ์•„๋ฌด ๋ชจ๋ธ ์—”๋“œํฌ์ธํŠธ๋‚˜ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ.
197
101
 
198
102
  ---
199
103
 
200
- ## ๐Ÿ†• ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ (v1.6.0)
104
+ ## ๐Ÿง  ๋ฉ”๋ชจ๋ฆฌ
201
105
 
202
- `v1.6.0`์€ `v1.2.0` ์ดํ›„ ๋ˆ„์ ๋œ ๋Œ€๊ทœ๋ชจ ์ œํ’ˆ ํ™•์žฅ์„ ์ฒ˜์Œ์œผ๋กœ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•˜๋Š” ๋ฌธ์„œ ์บ์น˜์—… ๋ฆด๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.
106
+ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ๋‹ด๋‹นํ•˜๋Š” 3๊ณ„์ธต ๊ตฌ์กฐ.
203
107
 
204
- - ์ „์ฒด ์—…๋ฐ์ดํŠธ ๋กœ๊ทธ: [CHANGELOG.md](CHANGELOG.md#160---2026-04-13)
205
- - ๋ฒ”์œ„: `v1.2.0` โ†’ `v1.5.1`
206
- - ๊ทœ๋ชจ: `59` commits, `307` files changed, `32,760` insertions, `4,263` deletions
207
- - ํ•ต์‹ฌ ๋ณ€ํ™”: ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ๊ตฌ์กฐํ™” ๋ฉ”๋ชจ๋ฆฌ, Discord/์Œ์„ฑ ์ฑ„๋„, ๋Œ€ํญ ํ™•์žฅ๋œ UI, ๋‹ค์ด์–ด๊ทธ๋žจ/์œ„์ ฏ ๋ Œ๋”๋ง, ๋ฆด๋ฆฌ์ฆˆ/์šด์˜ ํˆด๋ง ๊ฐ•ํ™”
108
+ | ๊ณ„์ธต | ์ €์žฅ ๋‚ด์šฉ | ๋™์ž‘ |
109
+ |---|---|---|
110
+ | **History Block** | ์ตœ๊ทผ ์„ธ์…˜ ์ปจํ…์ŠคํŠธ | ์ตœ๊ทผ 10๊ฐœ ์„ธ์…˜, ์ตœ๋Œ€ 8000์ž, ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ์ค€. ํ”„๋กฌํ”„ํŠธ ์•ž์— ์ฃผ์ž… |
111
+ | **Memory Flush** | ๋Œ€ํ™”์—์„œ ์ถ”์ถœํ•œ ๊ตฌ์กฐํ™” ์ง€์‹ | ์ž„๊ณ„๊ฐ’(๊ธฐ๋ณธ 10ํ„ด) ๋„๋‹ฌ ์‹œ ํŠธ๋ฆฌ๊ฑฐ. ์—ํ”ผ์†Œ๋“œ, ์ผ์ผ ๋กœ๊ทธ(`YYYY-MM-DD.md`), ๋ผ์ด๋ธŒ ๋…ธํŠธ๋กœ ์š”์•ฝ |
112
+ | **Soul + Task Snapshot** | ์ •์ฒด์„ฑ๊ณผ ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰ | `soul.md`๋กœ ํ•ต์‹ฌ ๊ฐ€์น˜/ํ†ค/๊ฒฝ๊ณ„ ์ •์˜. FTS5 ์ธ๋ฑ์Šค์—์„œ ํ”„๋กฌํ”„ํŠธ๋‹น ์ตœ๋Œ€ 4๊ฐœ ๊ด€๋ จ ํžˆํŠธ(700์ž) ๊ฒ€์ƒ‰ |
208
113
 
209
- | ๊ธฐ๋Šฅ | ์„ค๋ช… |
210
- | ---- | ---- |
211
- | ๐ŸŽญ **PABCD ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜** | `jaw dispatch`, `jaw orchestrate`, ์˜์† ์ƒํƒœ๋จธ์‹ , ์›Œ์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ๋ฆฌ์„œ์น˜ ๋””์ŠคํŒจ์น˜, ์›น UI ์ƒํƒœ ํ‘œ์‹œ๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๋ณธ๊ฒฉ์ ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ‘œ๋ฉด์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
212
- | ๐Ÿง  **๊ตฌ์กฐํ™” ๋ฉ”๋ชจ๋ฆฌ ๋Ÿฐํƒ€์ž„** | ๋‹จ์ˆœ ์ €์žฅ์„ ๋„˜์–ด ๊ตฌ์กฐํ™” ์ €์žฅ์†Œ, ์ธ๋ฑ์‹ฑ, ์ฟผ๋ฆฌ ํ™•์žฅ, task snapshot, ๋ฆฌ์ธ๋ฑ์Šค/๊ฐ์‚ฌ UI๊นŒ์ง€ ๊ฐ–์ถ˜ ๋ฉ”๋ชจ๋ฆฌ ์„œ๋ธŒ์‹œ์Šคํ…œ์œผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
213
- | ๐Ÿ’ฌ **Discord + ์Œ์„ฑ ์ฑ„๋„** | Web, Terminal, Telegram๋ฟ ์•„๋‹ˆ๋ผ Discord์™€ ์Œ์„ฑ/STT ํ๋ฆ„์ด ์ œํ’ˆ์˜ ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์˜ฌ๋ผ์™”์Šต๋‹ˆ๋‹ค. |
214
- | ๐Ÿ–ฅ๏ธ **๋Œ€ํญ ํ™•์žฅ๋œ ์›น UI** | ์„ค์ • ํŒจ๋„, ๋ฉ”๋ชจ๋ฆฌ/ํ•˜ํŠธ๋น„ํŠธ ์ œ์–ด, tool UI, provider icon, gesture, drag/drop ๋ณดํ˜ธ, virtual scroll, ๋ Œ๋”๋ง ๊ฐœ์„ ์ด ๋Œ€๊ฑฐ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
215
- | ๐Ÿ“Š **๋‹ค์ด์–ด๊ทธ๋žจ/์œ„์ ฏ ๋ Œ๋”๋ง** | iframe renderer, validator, ์ „์šฉ CSS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ๋ผ์ธ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์œ„์ ฏ ๋ Œ๋”๋ง์ด ๊ฐ€์‹œ์ ์ธ ๊ธฐ๋Šฅ๊ตฐ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
216
- | โŒจ๏ธ **CLI/TUI ์‚ฌ์šฉ์„ฑ ๊ฐœ์„ ** | `/compact`, ์˜ค๋ฒ„๋ ˆ์ด/์…€๋ ‰ํ„ฐ, ์„ธ์…˜ ์ง€์†์„ฑ, resume ๋ถ„๋ฅ˜, readiness ์ ๊ฒ€ ๋“ฑ ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉ์„ฑ์ด ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
217
- | ๐Ÿงช **์šด์˜/CI/์„ค์น˜ ๊ฐ•ํ™”** | `jaw doctor`, ๋ธŒ๋ผ์šฐ์ € launch policy, ์Šคํ‚ฌ fallback/reset, submodule-safe CI, preview release, Vite ๊ธฐ๋ฐ˜ ๋ฐฐํฌ๊ฐ€ ๊ฐ•ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
218
- | ๐Ÿ“„ **์˜คํ”ผ์Šค ์ž๋™ํ™” ์„ฑ์ˆ™** | OfficeCLI ์„ค์น˜, smoke test, ๋กœ์ปฌ ๋ฐ”์ด๋„ˆ๋ฆฌ, Office/PDF ์›Œํฌํ”Œ๋กœ๊ฐ€ `v1.2.0` ๋Œ€๋น„ ํ›จ์”ฌ ์‹ค์ „ํ˜•์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. |
114
+ ์„ธ ๊ณ„์ธต ๋ชจ๋‘ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ์ž๋™ ๋ฐ˜์˜. `jaw memory search <query>` ๋˜๋Š” `/memory <query>`๋กœ ๊ฒ€์ƒ‰.
219
115
 
220
116
  ---
221
117
 
222
- ## ๋น„์„œ๊ฐ€ ์–ด๋–ค ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
223
-
224
- ```mermaid
225
- graph LR
226
- YOU["๐Ÿ‘ค ์‚ฌ์šฉ์ž"] -->|์›น / ํ„ฐ๋ฏธ๋„ / Telegram| JAW["๐Ÿฆˆ CLI-JAW"]
227
- JAW -->|์ƒ์„ฑ| C["Claude"]
228
- JAW -->|์ƒ์„ฑ| X["Codex"]
229
- JAW -->|์ƒ์„ฑ| G["Gemini"]
230
- JAW -->|์ƒ์„ฑ| O["OpenCode"]
231
- JAW -->|์ƒ์„ฑ| P["Copilot"]
232
- JAW -->|์ฃผ์ž…| SK["๐Ÿ“ฆ ์Šคํ‚ฌ"]
233
- JAW -->|์ œ์–ด| BR["๐ŸŒ Chrome"]
234
- JAW -->|์ „์†ก| TG["๐Ÿ“ฑ Telegram"]
235
-
236
- style JAW fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
237
- ```
238
-
239
- - ๐Ÿค– **5๊ฐœ์˜ AI ์—”์ง„, 1๋ช…์˜ ๋น„์„œ** โ€” Claude ยท Codex ยท Gemini ยท OpenCode ยท Copilot. `/cli` ๋ช…๋ น์–ด๋กœ ์ „ํ™˜ํ•˜์„ธ์š”.
240
- - โšก **์ž๋™ ์ „ํ™˜(Fallback)** โ€” ์—”์ง„ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋‹ค์Œ ์—”์ง„์ด ๋งค๋„๋Ÿฝ๊ฒŒ ์ด์–ด๋ฐ›์Šต๋‹ˆ๋‹ค.
241
- - ๐ŸŽญ **๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜** โ€” ๋ณต์žกํ•œ ์ž‘์—…์€ ์ „๋ฌธํ™”๋œ ์„œ๋ธŒ ์—์ด์ „ํŠธ๋“ค์—๊ฒŒ ์ž๋™์œผ๋กœ ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
242
- - ๐ŸŽค **์Œ์„ฑ ์ž…๋ ฅ** โ€” ์›น ๋งˆ์ดํฌ ๋ฒ„ํŠผ + ํ…”๋ ˆ๊ทธ๋žจ ์Œ์„ฑ ๋ฉ”์‹œ์ง€. ๋ฉ€ํ‹ฐ ํ”„๋กœ๋ฐ”์ด๋” STT (OpenAI, Vertex AI).
243
- - ๐Ÿ“ **ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ** โ€” ์‹œ๊ฐ์  ๋…ธ๋“œ๋งต ์—๋””ํ„ฐ๋กœ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ, ๊ด€๋ฆฌ, ์žฌ์‚ฌ์šฉ.
244
- - ๐Ÿ“ฆ **100๊ฐœ+ ์Šคํ‚ฌ** โ€” ๋ธŒ๋ผ์šฐ์ € ์ œ์–ด, ํŒŒ์ผ ํŽธ์ง‘, ์ด๋ฏธ์ง€ ์ƒ์„ฑ, ์›น ๊ฒ€์ƒ‰ ์™ธ [๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ](#-์Šคํ‚ฌ-์‹œ์Šคํ…œ).
245
- - ๐Ÿง  **์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ** โ€” ์„ธ์…˜์„ ๋„˜๋‚˜๋“ค๋ฉฐ ๊ณผ๊ฑฐ์˜ ๋Œ€ํ™”์™€ ์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„๋ฅผ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.
246
- - ๐Ÿ“ฑ **ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡** โ€” ํœด๋Œ€ํฐ์œผ๋กœ ๋น„์„œ์™€ ์ฑ„ํŒ…ํ•˜๊ณ , ์Œ์„ฑ/์‚ฌ์ง„/ํŒŒ์ผ์„ ์ „์†กํ•˜์„ธ์š”.
247
- - ๐ŸŒ **๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”** โ€” ๋น„์„œ๊ฐ€ ์•Œ์•„์„œ ์›น์„ ํƒ์ƒ‰ํ•˜๊ณ , ํด๋ฆญํ•˜๊ณ , ํƒ€์ดํ•‘ํ•˜๊ณ , ์Šคํฌ๋ฆฐ์ƒท์„ ์ฐ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
248
- - ๐Ÿ”Œ **MCP ์ƒํƒœ๊ณ„** โ€” ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜ํ•˜๋ฉด 5๊ฐœ์˜ AI ์—”์ง„ ๋ชจ๋‘์—์„œ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
249
- - ๐Ÿ” **์›น ๊ฒ€์ƒ‰** โ€” MCP ๋„๊ตฌ๋ฅผ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ์ •๋ณด ๊ฒ€์ƒ‰.
250
- - โฐ **ํ•˜ํŠธ๋น„ํŠธ ์ž‘์—…** โ€” ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฐ˜๋ณต ์ผ์ •์„ ๋“ฑ๋กํ•˜์„ธ์š”.
118
+ ## ๐ŸŽญ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ โ€” PABCD
251
119
 
252
- ---
253
-
254
- ### ๊ธฐํƒ€ ์‹คํ–‰ ๋ฐฉ๋ฒ•
120
+ ๋ณต์žกํ•œ ์ž‘์—…์„ ์œ„ํ•œ 5๋‹จ๊ณ„ ์ƒํƒœ ๋จธ์‹ . ๋ชจ๋“  ์ „ํ™˜์— ์‚ฌ์šฉ์ž ์Šน์ธ ํ•„์š”.
255
121
 
256
- ```bash
257
- jaw chat # ํ„ฐ๋ฏธ๋„ TUI (๋ธŒ๋ผ์šฐ์ € ํ•„์š” ์—†์Œ)
258
- jaw service install # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰ (systemd/launchd/docker ์ž๋™ ๊ฐ์ง€)
122
+ ```
123
+ P (Plan) โ†’ A (Audit) โ†’ B (Build) โ†’ C (Check) โ†’ D (Done) โ†’ IDLE
124
+ โ›” โ›” โ›” ์ž๋™ ์ž๋™
259
125
  ```
260
126
 
261
- > โš ๏ธ **์„ค์น˜ ์‹œ ์ฐธ๊ณ :** `npm install -g cli-jaw`๋Š” postinstall ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์Šคํ‚ฌ ๋””๋ ‰ํ† ๋ฆฌ, ์ปค์Šคํ…€ ์ธ์ŠคํŠธ๋Ÿญ์…˜, MCP ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์„ค์ •์€ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
262
-
263
- ---
264
-
265
- ## ๐Ÿ“ฆ ์Šคํ‚ฌ ์‹œ์Šคํ…œ
127
+ | ๋‹จ๊ณ„ | ๋™์ž‘ |
128
+ |---|---|
129
+ | **P** | Boss AI๊ฐ€ diff ์ˆ˜์ค€ ๊ณ„ํš ์ž‘์„ฑ. ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ๋Œ€๊ธฐ |
130
+ | **A** | ์ฝ๊ธฐ ์ „์šฉ Worker๊ฐ€ ๊ณ„ํš์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ ๊ฒ€์ฆ |
131
+ | **B** | Boss๊ฐ€ ๊ตฌํ˜„. ์ฝ๊ธฐ ์ „์šฉ Worker๊ฐ€ ๊ฒฐ๊ณผ ๊ฒ€์ฆ |
132
+ | **C** | ํƒ€์ž… ์ฒดํฌ, ๋ฌธ์„œ ๊ฐฑ์‹ , ์ผ๊ด€์„ฑ ๊ฒ€์‚ฌ |
133
+ | **D** | ์ „์ฒด ๋ณ€๊ฒฝ ์š”์•ฝ. IDLE๋กœ ๋ณต๊ท€ |
266
134
 
267
- **100๊ฐœ+ ์Šคํ‚ฌ** ๋‚ด์žฅ โ€” ๋ธŒ๋ผ์šฐ์ €, GitHub, ๋…ธ์…˜, ํ…”๋ ˆ๊ทธ๋žจ, ๋ฉ”๋ชจ๋ฆฌ, PDF, ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋“ฑ [๋‹ค์–‘ํ•˜๊ฒŒ](#).
135
+ ์ƒํƒœ๋Š” DB์— ์˜์†ํ™”๋˜์–ด ์„œ๋ฒ„ ์žฌ์‹œ์ž‘์—๋„ ์œ ์ง€. Worker๋Š” ํŒŒ์ผ ์ˆ˜์ • ๋ถˆ๊ฐ€. `jaw orchestrate` ๋˜๋Š” `/pabcd`๋กœ ํ™œ์„ฑํ™”.
268
136
 
269
- <details>
270
- <summary>์ „์ฒด ์Šคํ‚ฌ ๋ชฉ๋ก ๋ณด๊ธฐ</summary>
137
+ ---
271
138
 
272
- | ํ‹ฐ์–ด | ์ˆ˜๋Ÿ‰ | ์ž‘๋™ ๋ฐฉ์‹ |
273
- | ------------------ | :---: | ------------------------------------------------ |
274
- | **Active ์Šคํ‚ฌ** | 22 | ๋งค๋ฒˆ AIํ•œํ…Œ ์ž๋™์œผ๋กœ ์ฃผ์ž…๋ผ์š”. ํ•ญ์ƒ ์ผœ์ ธ ์žˆ์–ด์š”. |
275
- | **Reference ์Šคํ‚ฌ** | 94 | ๊ด€๋ จ ์ž‘์—…์„ ์‹œํ‚ค๋ฉด ๊ทธ๋•Œ AI๊ฐ€ ์ฝ์–ด์„œ ์จ์š”. |
139
+ ## ๐Ÿ“ฆ ์Šคํ‚ฌ
276
140
 
277
- #### Active ์Šคํ‚ฌ (ํ•ญ์ƒ ์ผœ์ง)
141
+ 100๊ฐœ ์ด์ƒ์˜ ์Šคํ‚ฌ, ์šฉ๋„๋ณ„ ์ •๋ฆฌ.
278
142
 
279
- | ์Šคํ‚ฌ | ๊ธฐ๋Šฅ |
280
- | ------------------------------------------------------------------- | -------------------------------------------------- |
281
- | `browser` | Chrome ์ž๋™ํ™” โ€” ์Šค๋ƒ…์ƒท, ํด๋ฆญ, ๋„ค๋น„๊ฒŒ์ดํŠธ, ์Šคํฌ๋ฆฐ์ƒท |
282
- | `github` | ์ด์Šˆ, PR, CI, ์ฝ”๋“œ ๋ฆฌ๋ทฐ (`gh` CLI ์‚ฌ์šฉ) |
283
- | `notion` | Notion ํŽ˜์ด์ง€ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ |
284
- | `memory` | ์„ธ์…˜ ๊ฐ„ ์˜์† ์žฅ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ |
285
- | `telegram-send` | Telegram์œผ๋กœ ์‚ฌ์ง„, ๋ฌธ์„œ, ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ์ „์†ก |
286
- | `vision-click` | ์Šคํฌ๋ฆฐ์ƒท โ†’ AI๊ฐ€ ์ขŒํ‘œ ์ฐพ๊ธฐ โ†’ ํด๋ฆญ (์›์ปค๋งจ๋“œ) |
287
- | `pdf` / `pdf-expert` / `docx` / `xlsx` / `pptx` / `hwp` | ์˜คํ”ผ์Šค ๋ฐ PDF ๋ฌธ์„œ ์ฝ๊ธฐ, ์ƒ์„ฑ, ํŽธ์ง‘ (ํ•œ๊ธ€ HWP ํฌํ•จ) |
288
- | `screen-capture` | macOS ์Šคํฌ๋ฆฐ์ƒท ๋ฐ ์นด๋ฉ”๋ผ ์บก์ฒ˜ |
289
- | `video` | JSON ๊ธฐ๋ฐ˜ Remotion ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ ๋น„๋””์˜ค ๋ Œ๋”๋ง |
290
- | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | ์„œ๋ธŒ์—์ด์ „ํŠธ์šฉ ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ |
291
- | `dev-pabcd` / `dev-scaffolding` / `dev-code-reviewer` | ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ์Šค์บํด๋”ฉ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ฐ€์ด๋“œ |
143
+ | ์นดํ…Œ๊ณ ๋ฆฌ | ์Šคํ‚ฌ | ๊ธฐ๋Šฅ |
144
+ |---|---|---|
145
+ | **์˜คํ”ผ์Šค** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | ๋ฌธ์„œ ์ฝ๊ธฐ/์ƒ์„ฑ/ํŽธ์ง‘. OfficeCLI๋ฅผ ํ†ตํ•œ ํ•œ๊ธ€ HWP/HWPX |
146
+ | **์ž๋™ํ™”** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome CDP, AI ์ขŒํ‘œ ํด๋ฆญ, macOS ์Šคํฌ๋ฆฐ์ƒท/์นด๋ฉ”๋ผ, Computer Use |
147
+ | **๋ฏธ๋””์–ด** | `video`, `imagegen`, `lecture-stt`, `tts` | Remotion ๋น„๋””์˜ค, OpenAI ์ด๋ฏธ์ง€ ์ƒ์„ฑ, ๊ฐ•์˜ ์ „์‚ฌ, ์Œ์„ฑ ํ•ฉ์„ฑ |
148
+ | **ํ†ตํ•ฉ** | `github`, `notion`, `telegram-send`, `memory` | ์ด์Šˆ/PR/CI, Notion ํŽ˜์ด์ง€, Telegram ๋ฏธ๋””์–ด, ์˜์† ๋ฉ”๋ชจ๋ฆฌ |
149
+ | **์‹œ๊ฐํ™”** | `diagram` | SVG ๋‹ค์ด์–ด๊ทธ๋žจ, ์ฐจํŠธ, ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™”๋ฅผ ์ฑ„ํŒ…์—์„œ ๋ Œ๋”๋ง |
150
+ | **๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd` | ์„œ๋ธŒ์—์ด์ „ํŠธ ํ”„๋กฌํ”„ํŠธ์— ์ฃผ์ž…๋˜๋Š” ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ๋ผ์ธ |
292
151
 
293
- #### Reference ์Šคํ‚ฌ (ํ•„์š”ํ•  ๋•Œ๋งŒ)
152
+ 22๊ฐœ ํ™œ์„ฑ ์Šคํ‚ฌ (ํ•ญ์ƒ ์ฃผ์ž…). 94๊ฐœ ์ด์ƒ ์ฐธ์กฐ ์Šคํ‚ฌ (์š”์ฒญ ์‹œ ๋กœ๋“œ).
294
153
 
295
- 94๊ฐœ ์Šคํ‚ฌ์ด ๋” ์žˆ์–ด์š” โ€” imagegen, openai-docs, spotify, ๋‚ ์”จ, ๋”ฅ๋ฆฌ์„œ์น˜, TTS, ๋น„๋””์˜ค ๋‹ค์šด๋กœ๋“œ, Apple ๋ฏธ๋ฆฌ์•Œ๋ฆผ, 1Password, Terraform, PostgreSQL, Jupyter ๋“ฑ.
154
+ ---
296
155
 
297
- ```bash
298
- jaw skill install <name> # reference โ†’ active๋กœ ์˜๊ตฌ ํ™œ์„ฑํ™”
299
- ```
156
+ ## ๐ŸŒ ๋ธŒ๋ผ์šฐ์ € & ๋ฐ์Šคํฌํ†ฑ ์ž๋™ํ™”
300
157
 
301
- </details>
158
+ | ๊ธฐ๋Šฅ | ๋™์ž‘ |
159
+ |---|---|
160
+ | **Chrome CDP** | ํƒ์ƒ‰, ํด๋ฆญ, ํƒ€์ดํ•‘, ์Šคํฌ๋ฆฐ์ƒท, JS ์‹คํ–‰, ์Šคํฌ๋กค, ํฌ์ปค์Šค, ํ‚ค ์ž…๋ ฅ โ€” DevTools Protocol 10๊ฐœ ์•ก์…˜ |
161
+ | **Vision-click** | ํ™”๋ฉด ์บก์ฒ˜ โ†’ AI๊ฐ€ ์ขŒํ‘œ ์ถ”์ถœ โ†’ ํด๋ฆญ. `jaw browser vision-click "๋กœ๊ทธ์ธ ๋ฒ„ํŠผ"` |
162
+ | **DOM ๋ ˆํผ๋Ÿฐ์Šค** | ChatGPT, Grok, Gemini ์›น UI์˜ ์…€๋ ‰ํ„ฐ ๋งต โ€” ๋ชจ๋ธ ์„ ํƒ, ์ค‘์ง€ ๋ฒ„ํŠผ, ๋„๊ตฌ ๋“œ๋กœ์–ด |
163
+ | **Computer Use** | Codex App Computer Use MCP๋ฅผ ํ†ตํ•œ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ์ž๋™ํ™” |
164
+ | **Diagram ์Šคํ‚ฌ** | SVG ๋‹ค์ด์–ด๊ทธ๋žจ/์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ HTML ์‹œ๊ฐํ™”, ์ƒŒ๋“œ๋ฐ•์Šค iframe์—์„œ ๋ Œ๋”๋ง |
302
165
 
303
166
  ---
304
167
 
305
- ## ๐Ÿ“ฑ ํ…”๋ ˆ๊ทธ๋žจ โ€” ๋‚ด ์ฃผ๋จธ๋‹ˆ ์†์˜ ๋น„์„œ
168
+ ## ๐Ÿ”Œ MCP
306
169
 
307
- ๋น„์„œ๋Š” ์ฑ…์ƒ ์•ž์—๋งŒ ๋จธ๋ฌผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…”๋ ˆ๊ทธ๋žจ์„ ํ†ตํ•ด ์–ด๋””์„œ๋“  ๋Œ€ํ™”ํ•˜์„ธ์š”:
170
+ [Model Context Protocol](https://modelcontextprotocol.io)์€ AI ์—์ด์ „ํŠธ๊ฐ€ ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. CLI-JAW๋Š” 5๊ฐœ ์—”์ง„์˜ MCP ์„ค์ •์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
308
171
 
172
+ ```bash
173
+ jaw mcp install @anthropic/context7
174
+ # โ†’ Claude, Codex, Gemini, OpenCode, Copilot ์„ค์ • ํŒŒ์ผ์— ๋™์‹œ ๋™๊ธฐํ™”
309
175
  ```
310
- ๐Ÿ“ฑ Telegram โ†โ†’ ๐Ÿฆˆ CLI-JAW โ†โ†’ ๐Ÿค– AI ์—”์ง„
311
- ```
312
-
313
- <details>
314
- <summary>๐Ÿ“‹ ํ…”๋ ˆ๊ทธ๋žจ ์„ค์ • (3๋‹จ๊ณ„)</summary>
315
-
316
- 1. **๋ด‡ ๋งŒ๋“ค๊ธฐ** โ€” [@BotFather](https://t.me/BotFather)์—๊ฒŒ `/newbot` โ†’ ํ† ํฐ ๋ณต์‚ฌ
317
- 2. **์„ค์ •** โ€” `jaw init --telegram-token ํ† ํฐ` ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Web UI ์„ค์ •์—์„œ ์ž…๋ ฅ
318
- 3. **์ฑ„ํŒ… ์‹œ์ž‘** โ€” ๋ด‡์—๊ฒŒ ์•„๋ฌด ๋ฉ”์‹œ์ง€๋‚˜ ๋ณด๋‚ด์„ธ์š”. ์ฒซ ๋ฉ”์‹œ์ง€์—์„œ ์ฑ„ํŒ… ID๊ฐ€ ์ž๋™ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
319
-
320
- </details>
321
-
322
- **ํ…”๋ ˆ๊ทธ๋žจ์—์„œ ๊ฐ€๋Šฅํ•œ ์ž‘์—…:**
323
- - ๐Ÿ’ฌ ๋น„์„œ์™€ ์ฑ„ํŒ… (5๊ฐœ AI ์—”์ง„ ์ค‘ ์„ ํƒ)
324
- - ๐ŸŽค ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ์ „์†ก (์ž๋™ ํ…์ŠคํŠธ ๋ณ€ํ™˜)
325
- - ๐Ÿ“Ž ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒŒ์ผ ๋ฐ ์‚ฌ์ง„ ์ „์†ก
326
- - ๐ŸŽ™๏ธ ์Œ์„ฑ + ํ…์ŠคํŠธ + ์ฒจ๋ถ€ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€์— ์กฐํ•ฉ ๊ฐ€๋Šฅ
327
- - โšก ๋ช…๋ น์–ด ์‹คํ–‰ (`/cli`, `/model`, `/status`)
328
- - ๐Ÿ”„ ์‹ค์‹œ๊ฐ„ AI ์—”์ง„ ์ „ํ™˜
329
-
330
- **๋น„์„œ๊ฐ€ ๋ณด๋‚ด์ฃผ๋Š” ๋‚ด์šฉ:**
331
- - ๋งˆํฌ๋‹ค์šด ์„œ์‹์ด ์ ์šฉ๋œ AI ์‘๋‹ต
332
- - ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€, PDF, ๋ฌธ์„œ
333
- - ์˜ˆ์•ฝ๋œ ์ž‘์—… ๊ฒฐ๊ณผ (ํ•˜ํŠธ๋น„ํŠธ ์ž‘์—…)
334
- - ๋ธŒ๋ผ์šฐ์ € ์Šคํฌ๋ฆฐ์ƒท
335
-
336
- <p align="center">
337
- <img src="docs/screenshots/telegram-bot.png" width="300" alt="ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡" />
338
- </p>
339
176
 
340
177
  ---
341
178
 
342
- ## ๐ŸŽค ์Œ์„ฑ & STT โ€” ์Œ์„ฑ ์ธ์‹
343
-
344
- CLI-JAW๋Š” ๋ฉ€ํ‹ฐ ํ”„๋กœ๋ฐ”์ด๋” STT๋กœ ๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์Œ์„ฑ ์ž…๋ ฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:
179
+ ## ๐Ÿ’ฌ ๋ฉ”์‹œ์ง•
345
180
 
346
- | ํ”„๋กœ๋ฐ”์ด๋” | ์„ค์ • ๋ฐฉ๋ฒ• |
347
- | --------------------- | ---------------------------------------------- |
348
- | **OpenAI ํ˜ธํ™˜** | Settings UI โ†’ STT โ†’ OpenAI ์—”๋“œํฌ์ธํŠธ + API ํ‚ค |
349
- | **Google Vertex AI** | Settings UI โ†’ STT โ†’ Vertex AI ์ธ์ฆ ์ •๋ณด |
350
- | **์ปค์Šคํ…€ ์—”๋“œํฌ์ธํŠธ** | OpenAI ํ˜ธํ™˜ STT API URL ์ง์ ‘ ์ž…๋ ฅ |
181
+ ### Telegram
351
182
 
352
- **์Œ์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ:**
183
+ ์„ค์ • 3๋‹จ๊ณ„: BotFather์—์„œ ๋ด‡ ์ƒ์„ฑ โ†’ `jaw init --telegram-token` โ†’ ๋ฉ”์‹œ์ง€ ์ „์†ก.
353
184
 
354
- - ๐ŸŒ **์›น UI** โ€” ๋งˆ์ดํฌ ๋ฒ„ํŠผ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋…น์Œ ๋ฐ ์ „์‚ฌ
355
- - ๐Ÿ“ฑ **ํ…”๋ ˆ๊ทธ๋žจ** โ€” ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ์ „์†ก ์‹œ AI์— ์ „๋‹ฌ ์ „ ์ž๋™ ์ „์‚ฌ
356
- - ๐ŸŽ™๏ธ **๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ** โ€” ์Œ์„ฑ + ํ…์ŠคํŠธ + ํŒŒ์ผ ์ฒจ๋ถ€๋ฅผ ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€์— ์กฐํ•ฉ ๊ฐ€๋Šฅ
185
+ ํ…์ŠคํŠธ ์ฑ„ํŒ…, ์Œ์„ฑ ๋ฉ”์‹œ์ง€(์ž๋™ STT), ํŒŒ์ผ/์‚ฌ์ง„ ์—…๋กœ๋“œ, ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด, ์˜ˆ์•ฝ ์ž‘์—… ๊ฒฐ๊ณผ ์ „์†ก.
357
186
 
358
- ๋ชจ๋“  STT ์„ค์ •(ํ”„๋กœ๋ฐ”์ด๋”, API ํ‚ค, ์–ธ์–ด)์€ **Settings UI**์—์„œ ๊ด€๋ฆฌ โ€” ์„ค์ • ํŒŒ์ผ ํŽธ์ง‘ ๋ถˆํ•„์š”.
187
+ ### Discord
359
188
 
360
- ---
189
+ Telegram๊ณผ ๋™์ผ โ€” ํ…์ŠคํŠธ, ํŒŒ์ผ, ๋ช…๋ น์–ด. ์ฑ„๋„/์Šค๋ ˆ๋“œ ๋ผ์šฐํŒ…, ์—์ด์ „ํŠธ ๊ฒฐ๊ณผ ํฌ์›Œ๋”. ์›น UI ์„ค์ •์—์„œ ๊ตฌ์„ฑ.
361
190
 
362
- ## ๐ŸŽญ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜
363
-
364
- ![์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋กœ๊ทธ](docs/screenshots/orchestration-log.png)
365
-
366
- ๋ณต์žกํ•œ ์ž‘์—…์˜ ๊ฒฝ์šฐ, ๋น„์„œ๊ฐ€ ์ „๋ฌธ ์„œ๋ธŒ ์—์ด์ „ํŠธ์—๊ฒŒ ์ž‘์—…์„ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค:
367
-
368
- ```mermaid
369
- graph TD
370
- USER["๐Ÿ‘ค ์‚ฌ์šฉ์ž ์š”์ฒญ"] --> TRIAGE["๐Ÿ” ํŠธ๋ฆฌ์•„์ง€ โ€” ๋‹จ์ˆœ? ๋ณต์žก?"]
371
-
372
- TRIAGE -->|๋‹จ์ˆœ| DIRECT["โšก ์ง์ ‘ ์‘๋‹ต"]
373
- TRIAGE -->|๋ณต์žก| PLAN["๐Ÿ“ ๊ธฐํš"]
374
-
375
- PLAN --> FE["๐ŸŽจ ํ”„๋ก ํŠธ์—”๋“œ"]
376
- PLAN --> BE["โš™๏ธ ๋ฐฑ์—”๋“œ"]
377
- PLAN --> DATA["๐Ÿ“Š ๋ฐ์ดํ„ฐ"]
378
-
379
- FE --> GATE["๐Ÿšช ๊ฒŒ์ดํŠธ ๋ฆฌ๋ทฐ"]
380
- BE --> GATE
381
- DATA --> GATE
382
-
383
- GATE -->|ํ†ต๊ณผ| NEXT["โœ… ์™„๋ฃŒ"]
384
- GATE -->|์‹คํŒจ| RETRY["๐Ÿ”„ ๋””๋ฒ„๊ทธ & ์žฌ์‹œ๋„"]
385
-
386
- style USER fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
387
- style TRIAGE fill:#fdf2e9,stroke:#d4a574,color:#5c4033
388
- style PLAN fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
389
- style GATE fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
390
- ```
191
+ ### ์Œ์„ฑ & STT
391
192
 
392
- ๋น„์„œ๋Š” ์ž‘์—…์— ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•œ์ง€ ์ง์ ‘ ์‘๋‹ต์ด ํ•„์š”ํ•œ์ง€ **์Šค์Šค๋กœ ๊ฒฐ์ •**ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์„ค์ •์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
193
+ ์›น(๋งˆ์ดํฌ ๋ฒ„ํŠผ), Telegram(์Œ์„ฑ ๋ฉ”์‹œ์ง€), Discord์—์„œ ๋™์ž‘. OpenAI ํ˜ธํ™˜, Google Vertex AI, ์ปค์Šคํ…€ ์—”๋“œํฌ์ธํŠธ ์ง€์›.
393
194
 
394
195
  ---
395
196
 
396
- ## ๐Ÿ”Œ MCP โ€” ๋‹จ์ผ ์„ค์ •, 6๊ฐœ์˜ AI ์—”์ง„
397
-
398
- ```bash
399
- jaw mcp install @anthropic/context7 # ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜
400
- # โ†’ Claude, Codex, Gemini, OpenCode, Copilot, Antigravity ์ „๋ถ€ ์ž๋™ ๋™๊ธฐํ™”
401
- ```
402
-
403
- ```mermaid
404
- graph LR
405
- MJ["๐Ÿ“„ mcp.json"] -->|์ž๋™ ๋™๊ธฐํ™”| CL["Claude"]
406
- MJ -->|์ž๋™ ๋™๊ธฐํ™”| CX["Codex"]
407
- MJ -->|์ž๋™ ๋™๊ธฐํ™”| GM["Gemini"]
408
- MJ -->|์ž๋™ ๋™๊ธฐํ™”| OC["OpenCode"]
409
- MJ -->|์ž๋™ ๋™๊ธฐํ™”| CP["์ฝ”ํŒŒ์ผ๋Ÿฟ"]
410
- MJ -->|์ž๋™ ๋™๊ธฐํ™”| AG["์•ˆํ‹ฐ๊ทธ๋ž˜๋น„ํ‹ฐ"]
411
-
412
- style MJ fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
413
- ```
197
+ ## โฐ ์Šค์ผ€์ค„๋ง
414
198
 
415
- ์„ค์ • ํŒŒ์ผ 6๊ฐœ๋ฅผ ๋ณ„๋„๋กœ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜ํ•˜๋ฉด ๋ชจ๋“  AI ์—”์ง„์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
199
+ | ๊ธฐ๋Šฅ | ์„ค๋ช… |
200
+ |---|---|
201
+ | **Heartbeat ์ž‘์—…** | Cron ์˜ˆ์•ฝ ์ž‘์—…์„ ๋ฌด์ธ ์‹คํ–‰. Telegram/Discord๋กœ ๊ฒฐ๊ณผ ์ „๋‹ฌ |
202
+ | **์„œ๋น„์Šค ์ž๋™ ์‹œ์ž‘** | `jaw service install` โ€” systemd, launchd, Docker ์ž๋™ ๊ฐ์ง€ |
416
203
 
417
204
  ---
418
205
 
@@ -420,185 +207,140 @@ graph LR
420
207
 
421
208
  ```bash
422
209
  jaw serve # ์„œ๋ฒ„ ์‹œ์ž‘
423
- jaw service install # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰ (systemd/launchd/docker ์ž๋™ ๊ฐ์ง€)
424
- jaw service status # ๋ฐ๋ชฌ ์ƒํƒœ ํ™•์ธ
425
- jaw service unset # ์ž๋™ ์‹คํ–‰ ํ•ด์ œ
426
- jaw service logs # ์„œ๋น„์Šค ๋กœ๊ทธ ๋ณด๊ธฐ
427
210
  jaw chat # ํ„ฐ๋ฏธ๋„ TUI
428
- jaw doctor # ์ง„๋‹จ (12๊ฐœ ์ฒดํฌ)
429
- jaw skill install <name> # ์Šคํ‚ฌ ์„ค์น˜
430
- jaw mcp install <package> # MCP ์„ค์น˜ โ†’ 6๊ฐœ CLI ์ „๋ถ€ ๋™๊ธฐํ™”
211
+ jaw doctor # 12๊ฐœ ํ•ญ๋ชฉ ์ง„๋‹จ
212
+ jaw service install # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘
213
+ jaw skill install <name> # ์Šคํ‚ฌ ํ™œ์„ฑํ™”
214
+ jaw mcp install <package> # MCP ์„ค์น˜ โ†’ 5๊ฐœ ์—”์ง„ ๋™๊ธฐํ™”
431
215
  jaw memory search <query> # ๋ฉ”๋ชจ๋ฆฌ ๊ฒ€์ƒ‰
432
- jaw browser start # Chrome ์‹œ์ž‘ (CDP)
433
- jaw browser vision-click "๋กœ๊ทธ์ธ" # AI๊ฐ€ ์•Œ์•„์„œ ํด๋ฆญ
434
- jaw clone ~/my-project # ์ธ์Šคํ„ด์Šค ๋ณต์ œ
435
- jaw --home ~/my-project serve --port 3458 # ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค ์‹คํ–‰
216
+ jaw browser start # Chrome ์‹คํ–‰ (CDP)
217
+ jaw browser vision-click "๋กœ๊ทธ์ธ" # AI ์ขŒํ‘œ ํด๋ฆญ
218
+ jaw clone ~/project # ์ธ์Šคํ„ด์Šค ๋ณต์ œ
219
+ jaw orchestrate # PABCD ์ง„์ž…
436
220
  jaw reset # ์ „์ฒด ์ดˆ๊ธฐํ™”
437
221
  ```
438
222
 
439
223
  ---
440
224
 
441
- ## ๐Ÿ—๏ธ ๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค โ€” ํ”„๋กœ์ ํŠธ๋ณ„ ๋…๋ฆฝ ํ™˜๊ฒฝ
442
-
443
- CLI-JAW์˜ ๋…๋ฆฝ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์š” โ€” ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ์„ค์ •, ๋ฉ”๋ชจ๋ฆฌ, ์Šคํ‚ฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
225
+ ## ๐Ÿณ Docker
444
226
 
445
227
  ```bash
446
- # ๊ธฐ๋ณธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ํ”„๋กœ์ ํŠธ๋กœ ๋ณต์ œ
447
- jaw clone ~/my-project
448
-
449
- # ๋‹ค๋ฅธ ํฌํŠธ๋กœ ์‹คํ–‰
450
- jaw --home ~/my-project serve --port 3458
451
-
452
- # ๋˜๋Š” ๋‘˜ ๋‹ค ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰
453
- jaw service install # ๊ธฐ๋ณธ โ†’ ํฌํŠธ 3457
454
- jaw --home ~/my-project service install --port 3458 # ํ”„๋กœ์ ํŠธ โ†’ ํฌํŠธ 3458
228
+ docker compose up -d # โ†’ http://localhost:3457
455
229
  ```
456
230
 
457
- ๊ฐ ์ธ์Šคํ„ด์Šค๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค โ€” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ, MCP ์„ค์ •์ด ๋ชจ๋‘ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—…๋ฌด/๊ฐœ์ธ ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๋‚˜ ํ”„๋กœ์ ํŠธ๋ณ„ AI ์„ค์ •์— ์•ˆ์„ฑ๋งž์ถค์ด์—์š”.
458
-
459
- | ํ”Œ๋ž˜๊ทธ / ํ™˜๊ฒฝ๋ณ€์ˆ˜ | ๊ธฐ๋Šฅ |
460
- | --------------------- | ---------------------------------------- |
461
- | `--home <๊ฒฝ๋กœ>` | ์ด ์‹คํ–‰์— ์‚ฌ์šฉํ•  ์ปค์Šคํ…€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ • |
462
- | `--home=<๊ฒฝ๋กœ>` | ๋™์ผ (`=` ๊ตฌ๋ฌธ) |
463
- | `CLI_JAW_HOME=<๊ฒฝ๋กœ>` | ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ง€์ • |
464
- | `jaw clone <๋Œ€์ƒ>` | ํ˜„์žฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์ œ |
465
- | `--port <ํฌํŠธ>` | `serve` / `service`์šฉ ์ปค์Šคํ…€ ํฌํŠธ |
231
+ ๋น„root `jaw` ์‚ฌ์šฉ์ž, Chromium ์ƒŒ๋“œ๋ฐ•์Šค ๊ธฐ๋ณธ ํ™œ์„ฑํ™”. `Dockerfile`(npm ์„ค์น˜)๊ณผ `Dockerfile.dev`(๋กœ์ปฌ ์†Œ์Šค) ์ œ๊ณต.
466
232
 
467
233
  ---
468
234
 
469
- ## ๐Ÿค– ๋ชจ๋ธ
235
+ ## ๐Ÿ“– ๋ฌธ์„œ
470
236
 
471
- ๊ฐ CLI๋งˆ๋‹ค ํ”„๋ฆฌ์…‹์ด ์žˆ์ง€๋งŒ, **์•„๋ฌด ๋ชจ๋ธ ID๋‚˜** ์ง์ ‘ ์ณ๋„ ๋ผ์š”.
237
+ | ๋ฌธ์„œ | ๋‚ด์šฉ |
238
+ |---|---|
239
+ | [CHANGELOG.md](CHANGELOG.md) | ๋ฆด๋ฆฌ์Šค ๋กœ๊ทธ (v1.6.0 ์บ์น˜์—…: v1.2.0~v1.5.1 ํฌํ•จ) |
240
+ | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | ์‹œ์Šคํ…œ ์„ค๊ณ„, ๋ชจ๋“ˆ ๊ทธ๋ž˜ํ”„, 95๊ฐœ API ํ•ธ๋“ค๋Ÿฌ |
241
+ | [TESTS.md](TESTS.md) | ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€, ์นด์šดํŠธ, ๊ณ„ํš |
242
+ | [memory-architecture.md](docs/memory-architecture.md) | 3๊ณ„์ธต ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ, ์ธ๋ฑ์‹ฑ, ๋Ÿฐํƒ€์ž„ |
243
+ | [devlog/structure/](devlog/structure/) | ๋‚ด๋ถ€ ์•„ํ‚คํ…์ฒ˜ ๋ ˆํผ๋Ÿฐ์Šค |
472
244
 
473
- <details>
474
- <summary>์ „์ฒด ํ”„๋ฆฌ์…‹ ๋ณด๊ธฐ</summary>
245
+ ---
475
246
 
476
- | CLI | ๊ธฐ๋ณธ๊ฐ’ | ์ฃผ์š” ๋ชจ๋ธ |
477
- | ------------ | -------------------------- | ---------------------------------------------- |
478
- | **Claude** | `claude-sonnet-4-6` | opus-4-6, haiku-4-5, ํ™•์žฅ ์‚ฌ๊ณ  ๋ณ€ํ˜• |
479
- | **Codex** | `gpt-5.3-codex` | spark, 5.2, 5.1-max, 5.1-mini |
480
- | **Gemini** | `gemini-2.5-pro` | 3.0-pro-preview, 3-flash-preview, 2.5-flash |
481
- | **OpenCode** | `claude-opus-4-6-thinking` | ๐Ÿ†“ big-pickle, GLM-5, MiniMax, Kimi, GPT-5-Nano |
482
- | **Copilot** | `gpt-4.1` ๐Ÿ†“ | ๐Ÿ†“ gpt-5-mini, claude-sonnet-4.6, opus-4.6 |
247
+ ## โš–๏ธ ๋น„๊ต
483
248
 
484
- </details>
249
+ | | CLI-JAW | Hermes Agent | Claude Code |
250
+ |---|---|---|---|
251
+ | **๋ชจ๋ธ ์ ‘๊ทผ** | OAuth ์›”์ •์•ก + OpenCode ์™€์ผ๋“œ์นด๋“œ | API ํ‚ค (OpenRouter 200+) | Anthropic ์ „์šฉ |
252
+ | **๋น„์šฉ** | ๊ธฐ์กด ์›”์ •์•ก | ํ† ํฐ ๋‹จ์œ„ ๊ณผ๊ธˆ | Anthropic ๊ตฌ๋… |
253
+ | **์ฃผ UI** | ์›น PWA + Mac ์•ฑ + TUI | TUI ์ „์šฉ | CLI + IDE ํ”Œ๋Ÿฌ๊ทธ์ธ |
254
+ | **๋ฉ”์‹œ์ง•** | Telegram(์Œ์„ฑ) + Discord | TG/Discord/Slack/WhatsApp/Signal | ์—†์Œ |
255
+ | **๋ฉ”๋ชจ๋ฆฌ** | 3๊ณ„์ธต + FTS5 | ์ž๊ธฐํ•™์Šต ๋ฃจํ”„ + Honcho | ํŒŒ์ผ ๊ธฐ๋ฐ˜ |
256
+ | **๋ธŒ๋ผ์šฐ์ €** | CDP + vision-click + DOM ref | ์ œํ•œ์  | MCP ๊ฒฝ์œ  |
257
+ | **์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜** | PABCD 5๋‹จ๊ณ„ FSM | ์„œ๋ธŒ์—์ด์ „ํŠธ ์Šคํฐ | Task ๋„๊ตฌ |
485
258
 
486
- > ๐Ÿ”ง ํ”„๋ฆฌ์…‹์— ๋ชจ๋ธ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด: `src/cli/registry.ts` ํ•˜๋‚˜๋งŒ ๊ณ ์น˜๋ฉด ์ „์ฒด ์ž๋™ ๋ฐ˜์˜.
259
+ CLI-JAW๋Š” OpenClaw ํ•˜๋„ค์Šค ์•„ํ‚คํ…์ฒ˜(ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ ๋งค๋‹ˆ์ €, ํด๋ฐฑ ํŒจํ„ด, ์„ธ์…˜ ์ธ๋ฑ์‹ฑ)๋ฅผ ๊ณ„์Šนํ•ฉ๋‹ˆ๋‹ค.
487
260
 
488
261
  ---
489
262
 
490
- ## ๐Ÿณ Docker โ€” ์ปจํ…Œ์ด๋„ˆ ๊ฒฉ๋ฆฌ
263
+ ## ๐Ÿ—๏ธ ๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค
491
264
 
492
- ๋ณด์•ˆ ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ โ€” AI ์—์ด์ „ํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ ํŒŒ์ผ์— ์ ‘๊ทผ ๋ถˆ๊ฐ€.
265
+ ๋ณ„๋„์˜ ์„ค์ •, ๋ฉ”๋ชจ๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง„ ๋…๋ฆฝ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
493
266
 
494
267
  ```bash
495
- docker compose up -d # โ†’ http://localhost:3457
268
+ jaw clone ~/my-project
269
+ jaw --home ~/my-project serve --port 3458
496
270
  ```
497
271
 
498
- > ์ž์„ธํ•œ ๋‚ด์šฉ์€ [English README](README.md#-docker--container-isolation) ์ฐธ๊ณ .
499
- > `Dockerfile` (npm ๋ฐฐํฌํŒ) / `Dockerfile.dev` (๋กœ์ปฌ ์†Œ์Šค) ๋‘ ๊ฐ€์ง€ ์ œ๊ณต.
500
-
501
272
  ---
502
273
 
503
274
  ## ๐Ÿ› ๏ธ ๊ฐœ๋ฐœ
504
275
 
505
276
  <details>
506
- <summary>๋นŒ๋“œ, ์‹คํ–‰, ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ</summary>
277
+ <summary>๋นŒ๋“œ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ</summary>
507
278
 
508
279
  ```bash
509
- # ๋นŒ๋“œ (TypeScript โ†’ JavaScript)
510
280
  npm run build # tsc โ†’ dist/
511
-
512
- # ์†Œ์Šค์—์„œ ์‹คํ–‰ (๊ฐœ๋ฐœ์šฉ)
513
- npm run dev # tsx server.ts
514
- npx tsx bin/cli-jaw.ts serve # .ts์—์„œ ์ง์ ‘ ์‹คํ–‰
515
-
516
- # ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ๋กœ ์‹คํ–‰ (ํ”„๋กœ๋•์…˜)
517
- node dist/bin/cli-jaw.js serve
281
+ npm run dev # tsx server.ts (ํ•ซ ๋ฆฌ๋กœ๋“œ)
518
282
  ```
519
283
 
520
- **ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ:**
521
-
522
284
  ```
523
285
  src/
524
- โ”œโ”€โ”€ agent/ # AI ์—์ด์ „ํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด & ์Šคํฐ
525
- โ”œโ”€โ”€ browser/ # Chrome CDP ์ž๋™ํ™”
526
- โ”œโ”€โ”€ cli/ # CLI ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ & ๋ชจ๋ธ ํ”„๋ฆฌ์…‹
527
- โ”œโ”€โ”€ core/ # DB, ์„ค์ •, ๋กœ๊น…
528
- โ”œโ”€โ”€ http/ # Express ์„œ๋ฒ„ & ๋ฏธ๋“ค์›จ์–ด
529
- โ”œโ”€โ”€ memory/ # ์˜์† ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ
530
- โ”œโ”€โ”€ orchestrator/ # ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํŒŒ์ดํ”„๋ผ์ธ
531
- โ”œโ”€โ”€ prompt/ # ํ”„๋กฌํ”„ํŠธ ์ฃผ์ž… & AGENTS.md ์ƒ์„ฑ
532
- โ”œโ”€โ”€ routes/ # REST API ์—”๋“œํฌ์ธํŠธ (40+)
533
- โ”œโ”€โ”€ security/ # ์ž…๋ ฅ ๊ฒ€์ฆ & ๊ฐ€๋“œ๋ ˆ์ผ
534
- โ””โ”€โ”€ telegram/ # ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ์—ฐ๋™
286
+ โ”œโ”€โ”€ agent/ # AI ์—์ด์ „ํŠธ ์ƒ๋ช…์ฃผ๊ธฐ, ์Šคํฐ, History Block
287
+ โ”œโ”€โ”€ browser/ # Chrome CDP, vision-click
288
+ โ”œโ”€โ”€ cli/ # CLI ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด, ๋ชจ๋ธ ํ”„๋ฆฌ์…‹
289
+ โ”œโ”€โ”€ core/ # DB, ์„ค์ •, Employee, ๋กœ๊น…
290
+ โ”œโ”€โ”€ discord/ # Discord ๋ด‡, ๋ช…๋ น์–ด, ํŒŒ์ผ ์ „์†ก
291
+ โ”œโ”€โ”€ memory/ # 3๊ณ„์ธต ๋ฉ”๋ชจ๋ฆฌ, FTS5 ์ธ๋ฑ์‹ฑ, Flush, Soul
292
+ โ”œโ”€โ”€ orchestrator/ # PABCD ์ƒํƒœ ๋จธ์‹ , Worker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ
293
+ โ”œโ”€โ”€ routes/ # REST API (95๊ฐœ ํ•ธ๋“ค๋Ÿฌ, 94๊ฐœ ์—”๋“œํฌ์ธํŠธ)
294
+ โ”œโ”€โ”€ security/ # ์ž…๋ ฅ ๊ฒ€์ฆ, ๊ฒฝ๋กœ ๋ณดํ˜ธ
295
+ โ””โ”€โ”€ telegram/ # Telegram ๋ด‡, ์Œ์„ฑ STT, ํฌ์›Œ๋”
535
296
  ```
536
297
 
537
- > TypeScript โ€” `strict: true`, `NodeNext` ๋ชจ๋“ˆ ํ•ด์ƒ๋„, ES2022 ํƒ€๊ฒŸ.
538
-
539
298
  </details>
540
299
 
541
300
  ---
542
301
 
543
302
  ## ๐Ÿงช ํ…Œ์ŠคํŠธ
544
303
 
545
- <details>
546
- <summary>ํ˜„์žฌ ํŒจ์Šค ์ˆ˜์™€ ์ธ๋ฒคํ† ๋ฆฌ๋Š” TESTS.md ๊ธฐ์ค€</summary>
547
-
548
304
  ```bash
549
- npm test
305
+ npm test # tsx --test (Node.js ๋„ค์ดํ‹ฐ๋ธŒ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ)
550
306
  ```
551
307
 
552
- `tsx --test`๋กœ ์‹คํ–‰ (Node.js ๋„ค์ดํ‹ฐ๋ธŒ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ + TypeScript).
553
-
554
- </details>
308
+ [TESTS.md](TESTS.md)์—์„œ ํ˜„์žฌ ์ธ๋ฒคํ† ๋ฆฌ์™€ ํ†ต๊ณผ ์ˆ˜ ํ™•์ธ.
555
309
 
556
310
  ---
557
311
 
558
- ## ๐Ÿ“– ๋ฌธ์„œ
559
-
560
- | ๋ฌธ์„œ | ๋‚ด์šฉ |
561
- | --------------------------------------- | --------------------------------------------------- |
562
- | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | ์‹œ์Šคํ…œ ์„ค๊ณ„, ๋ชจ๋“ˆ ๊ทธ๋ž˜ํ”„, REST API (40+ ์—”๋“œํฌ์ธํŠธ) |
563
- | [TESTS.md](TESTS.md) | ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€, ํ…Œ์ŠคํŠธ ๊ณ„ํš |
312
+ ## โ“ ๋ฌธ์ œ ํ•ด๊ฒฐ
564
313
 
565
- ---
566
-
567
- ## ๐Ÿ”ง ๋ฌธ์ œ ํ•ด๊ฒฐ
568
-
569
- | ์ฆ์ƒ | ์›์ธ | ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• |
570
- | ---------------------------- | ---------------------------------- | --------------------------------------------------------------------------- |
571
- | `command not found: cli-jaw` | npm ์ „์—ญ bin์ด PATH์— ์—†์Œ | `npm config get prefix` ํ™•์ธ ํ›„ `bin/`์„ PATH์— ์ถ”๊ฐ€ |
572
- | `doctor`์—์„œ CLI ๋ˆ„๋ฝ ํ‘œ์‹œ | ํ•ด๋‹น CLI ๋ฏธ์„ค์น˜ | `npm i -g @anthropic-ai/claude-code` ๋“ฑ ์„ค์น˜ |
573
- | ํฌํŠธ 3457 ์‚ฌ์šฉ ์ค‘ | ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ  | `PORT=4000 jaw serve` ๋˜๋Š” ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ |
574
- | ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋ฌด๋ฐ˜์‘ | ํ† ํฐ ๋ฏธ์„ค์ • ๋˜๋Š” Chat ID ๋ˆ„๋ฝ | `jaw init --telegram-token ...` ์žฌ์‹คํ–‰ |
575
- | ํ…”๋ ˆ๊ทธ๋žจ โœ“โœ“ ์ง€์—ฐ ํ‘œ์‹œ | Telegram ์„œ๋ฒ„ ์ธก ์ „๋‹ฌ ํ™•์ธ ํƒ€์ด๋ฐ | ์ •์ƒ ๋™์ž‘ โ€” ์„œ๋ฒ„ ๋ถ€ํ•˜์— ๋”ฐ๋ผ ์ˆ˜ ๋ถ„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ. ๋ฒ„๊ทธ ์•„๋‹˜ |
576
- | `npm install -g` ๊ถŒํ•œ ์˜ค๋ฅ˜ | ๊ธ€๋กœ๋ฒŒ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ ๋ฌธ์ œ | `sudo npm i -g cli-jaw` ๋˜๋Š” [nvm](https://github.com/nvm-sh/nvm) ์‚ฌ์šฉ ๊ถŒ์žฅ |
577
- | ๋นŒ๋“œ ์‹คํŒจ (`tsc` ์—๋Ÿฌ) | Node 22 ๋ฏธ๋งŒ ๋ฒ„์ „ | `node -v` ํ™•์ธ โ†’ 22 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ |
578
- | ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„ธ์…˜ ๊ฐ„ ์œ ์ง€ ์•ˆ ๋จ | `~/.cli-jaw/memory/` ๋””๋ ‰ํ† ๋ฆฌ ์—†์Œ | `jaw init` ์žฌ์‹คํ–‰ํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ |
314
+ <details>
315
+ <summary>์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ</summary>
316
+
317
+ | ๋ฌธ์ œ | ํ•ด๊ฒฐ |
318
+ |---|---|
319
+ | `cli-jaw: command not found` | `npm install -g cli-jaw` ์žฌ์‹คํ–‰. `npm bin -g`๊ฐ€ `$PATH`์— ์žˆ๋Š”์ง€ ํ™•์ธ |
320
+ | `Error: node version` | Node.js 22+๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ: `nvm install 22` |
321
+ | `NODE_MODULE_VERSION` ๋ถˆ์ผ์น˜ | `npm run ensure:native` (์ž๋™ ์žฌ๋นŒ๋“œ) |
322
+ | ์—์ด์ „ํŠธ ํƒ€์ž„์•„์›ƒ | `jaw doctor`๋กœ CLI ์ธ์ฆ ํ™•์ธ |
323
+ | `EADDRINUSE: port 3457` | ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์‹คํ–‰ ์ค‘. `--port 3458` ์‚ฌ์šฉ |
324
+ | Telegram ๋ฌด์‘๋‹ต | `jaw doctor`๋กœ ํ† ํฐ ํ™•์ธ. `jaw serve` ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ |
325
+ | ์Šคํ‚ฌ ๋ฏธ๋กœ๋“œ | `jaw skill reset` ํ›„ `jaw mcp sync` |
326
+ | ๋ธŒ๋ผ์šฐ์ € ๋ช…๋ น์–ด ์‹คํŒจ | Chrome ์„ค์น˜. `jaw browser start` ๋จผ์ € ์‹คํ–‰ |
579
327
 
580
- > ๐Ÿ“‹ ํด๋ฆฐ ์žฌ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜์‹ ๊ฐ€์š”? [์˜๋ฌธ README์˜ Fresh Start ๊ฐ€์ด๋“œ](README.md#-troubleshooting)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
328
+ </details>
581
329
 
582
330
  ---
583
331
 
584
332
  ## ๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ
585
333
 
586
- ๊ธฐ์—ฌ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•:
334
+ 1. `master`์—์„œ ํฌํฌ & ๋ธŒ๋žœ์น˜
335
+ 2. `npm run build && npm test`
336
+ 3. PR ์ œ์ถœ
587
337
 
588
- 1. ๋ ˆํฌ๋ฅผ ํฌํฌํ•˜๊ณ  `master`์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“œ์„ธ์š”
589
- 2. `npm run build && npm test`๋กœ ๋นŒ๋“œ & ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธ
590
- 3. PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š” โ€” ๋น ๋ฅด๊ฒŒ ๋ฆฌ๋ทฐํ• ๊ฒŒ์š”
591
-
592
- > ๐Ÿ“‹ ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•˜๊ฑฐ๋‚˜ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”? [์ด์Šˆ ์—ด๊ธฐ](https://github.com/lidge-jun/cli-jaw/issues)
338
+ ๋ฒ„๊ทธ๋‚˜ ์•„์ด๋””์–ด? [์ด์Šˆ ์—ด๊ธฐ](https://github.com/lidge-jun/cli-jaw/issues)
593
339
 
594
340
  ---
595
341
 
596
342
  <div align="center">
597
343
 
598
- **โญ CLI-JAW๊ฐ€ ๋„์›€์ด ๋๋‹ค๋ฉด Star ํ•œ ๋ฒˆ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!**
599
-
600
- Made with โค๏ธ by the CLI-JAW community
601
-
602
- [MIT License](LICENSE)
344
+ **[MIT License](LICENSE)**
603
345
 
604
346
  </div>