cli-jaw 1.0.4 โ†’ 1.1.0

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.
Files changed (52) hide show
  1. package/README.ko.md +84 -19
  2. package/README.md +113 -48
  3. package/README.zh-CN.md +81 -16
  4. package/dist/bin/commands/browser.js +10 -4
  5. package/dist/bin/commands/browser.js.map +1 -1
  6. package/dist/bin/commands/serve.js +16 -3
  7. package/dist/bin/commands/serve.js.map +1 -1
  8. package/dist/lib/quota-copilot.js +133 -14
  9. package/dist/lib/quota-copilot.js.map +1 -1
  10. package/dist/lib/upload.js +2 -1
  11. package/dist/lib/upload.js.map +1 -1
  12. package/dist/server.js +54 -30
  13. package/dist/server.js.map +1 -1
  14. package/dist/src/agent/spawn.js +1 -1
  15. package/dist/src/agent/spawn.js.map +1 -1
  16. package/dist/src/browser/connection.js +83 -13
  17. package/dist/src/browser/connection.js.map +1 -1
  18. package/dist/src/cli/command-context.js +3 -3
  19. package/dist/src/cli/command-context.js.map +1 -1
  20. package/dist/src/cli/commands.js +23 -11
  21. package/dist/src/cli/commands.js.map +1 -1
  22. package/dist/src/cli/handlers.js +27 -3
  23. package/dist/src/cli/handlers.js.map +1 -1
  24. package/dist/src/cli/registry.js +2 -2
  25. package/dist/src/cli/registry.js.map +1 -1
  26. package/dist/src/command-contract/policy.js +5 -3
  27. package/dist/src/command-contract/policy.js.map +1 -1
  28. package/dist/src/core/config.js +8 -0
  29. package/dist/src/core/config.js.map +1 -1
  30. package/dist/src/prompt/builder.js +3 -2
  31. package/dist/src/prompt/builder.js.map +1 -1
  32. package/dist/src/routes/browser.js +8 -4
  33. package/dist/src/routes/browser.js.map +1 -1
  34. package/dist/src/routes/quota.js +20 -7
  35. package/dist/src/routes/quota.js.map +1 -1
  36. package/dist/src/telegram/bot.js +5 -7
  37. package/dist/src/telegram/bot.js.map +1 -1
  38. package/dist/src/telegram/telegram-file.js +121 -0
  39. package/dist/src/telegram/telegram-file.js.map +1 -0
  40. package/package.json +1 -1
  41. package/public/css/chat.css +3 -4
  42. package/public/css/sidebar.css +17 -0
  43. package/public/dist/bundle.js +33 -33
  44. package/public/dist/bundle.js.map +3 -3
  45. package/public/index.html +1 -2
  46. package/public/js/features/settings.ts +27 -9
  47. package/public/js/render.ts +76 -19
  48. package/public/js/ui.ts +15 -11
  49. package/public/locales/en.json +12 -0
  50. package/public/locales/ko.json +12 -0
  51. package/scripts/install-wsl.sh +135 -0
  52. package/scripts/install.sh +117 -0
package/README.ko.md CHANGED
@@ -20,6 +20,71 @@
20
20
 
21
21
  </div>
22
22
 
23
+ <details>
24
+ <summary>๐ŸชŸ <b>Windows ์‚ฌ์šฉ์ž์ด์‹ ๊ฐ€์š”?</b> โ€” WSL ์›ํด๋ฆญ ์„ค์น˜</summary>
25
+
26
+ **Step 1: WSL ์„ค์น˜** (PowerShell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ โ€” ์ตœ์ดˆ 1ํšŒ)
27
+
28
+ ```powershell
29
+ wsl --install
30
+ ```
31
+
32
+ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์„ธ์š”. ์žฌ๋ถ€ํŒ… ํ›„ ์‹œ์ž‘ ๋ฉ”๋‰ด์—์„œ **Ubuntu**๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.
33
+
34
+ **Step 2: CLI-JAW ์„ค์น˜** (Ubuntu/WSL ํ„ฐ๋ฏธ๋„์—์„œ)
35
+
36
+ ```bash
37
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
38
+ ```
39
+
40
+ **Step 3: AI ์—”์ง„ ์ธ์ฆ** (ํ•˜๋‚˜ ์„ ํƒ)
41
+
42
+ ```bash
43
+ copilot login # GitHub Copilot (๋ฌด๋ฃŒ)
44
+ opencode # OpenCode (๋ฌด๋ฃŒ ๋ชจ๋ธ ์ œ๊ณต)
45
+ claude auth # Anthropic Claude
46
+ codex login # OpenAI Codex
47
+ gemini # Google Gemini
48
+ ```
49
+
50
+ **Step 4: ์‹œ์ž‘ํ•˜๊ธฐ**
51
+
52
+ ```bash
53
+ jaw serve
54
+ # โ†’ http://localhost:3457
55
+ ```
56
+
57
+ > ๐Ÿ’ก ์Šคํฌ๋ฆฝํŠธ๋Š” [fnm](https://github.com/Schniz/fnm)์œผ๋กœ Node.js๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ `nvm`์ด ์žˆ์œผ๋ฉด ๊ทธ๊ฑธ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
58
+
59
+ </details>
60
+
61
+ <details>
62
+ <summary>๐ŸŽ <b>ํ„ฐ๋ฏธ๋„์ด ์ฒ˜์Œ์ด์‹ ๊ฐ€์š”?</b> โ€” ์›ํด๋ฆญ Node.js + CLI-JAW ์„ค์น˜</summary>
63
+
64
+ **Step 1: ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ**
65
+
66
+ **Finder** โ†’ **์‘์šฉ ํ”„๋กœ๊ทธ๋žจ** โ†’ **์œ ํ‹ธ๋ฆฌํ‹ฐ** โ†’ **ํ„ฐ๋ฏธ๋„.app** ์„ ์—ด์–ด์ฃผ์„ธ์š”.
67
+ (๋˜๋Š” `โŒ˜ Space` ๋ˆ„๋ฅด๊ณ  `ํ„ฐ๋ฏธ๋„` ์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜์„ธ์š”)
68
+
69
+ **Step 2: ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  Enter**
70
+
71
+ ```bash
72
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
73
+ ```
74
+
75
+ Node.js + CLI-JAW๊ฐ€ ์ž๋™์œผ๋กœ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰ ๊ฐ€ ๋œฐ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”.
76
+
77
+ **Step 3: ๋กœ๊ทธ์ธ & ์‹คํ–‰**
78
+
79
+ ```bash
80
+ copilot login # ๋˜๋Š”: claude auth / codex login / gemini login
81
+ jaw serve
82
+ ```
83
+
84
+ ๋ธŒ๋ผ์šฐ์ €์—์„œ **http://localhost:3457** ์„ ์—ด๋ฉด ๋! ๐Ÿฆˆ
85
+
86
+ </details>
87
+
23
88
  ---
24
89
 
25
90
  ## ๐Ÿš€ ์„ค์น˜ & ์‹คํ–‰ (30์ดˆ)
@@ -41,7 +106,7 @@ jaw serve
41
106
 
42
107
  ```bash
43
108
  # โ”€โ”€ ๋ฌด๋ฃŒ โ”€โ”€
44
- gh auth login # GitHub Copilot (๋ฌด๋ฃŒ ํ”Œ๋žœ) โ€” ์ดํ›„: gh copilot --help
109
+ copilot login # GitHub Copilot (๋ฌด๋ฃŒ ํ”Œ๋žœ)
45
110
  opencode # OpenCode โ€” ์ฒซ ์‹คํ–‰ ์‹œ ์ž๋™ ์ธ์ฆ (๋ฌด๋ฃŒ ๋ชจ๋ธ ์žˆ์Œ)
46
111
 
47
112
  # โ”€โ”€ ์œ ๋ฃŒ โ”€โ”€
@@ -89,14 +154,14 @@ CLI-JAW๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์ƒ์ฃผํ•˜๋ฉฐ ์ด๋ฏธ ์ต์ˆ™ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ธ **
89
154
 
90
155
  ๋‹จ์ผ ๋ชจ๋ธ๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ๋น„์„œ๋“ค๊ณผ ๋‹ฌ๋ฆฌ, CLI-JAW๋Š” 5๊ฐœ์˜ AI ์—”์ง„(Claude, Codex, Gemini, OpenCode, Copilot)์„ ๊ณต์‹ CLI๋ฅผ ํ†ตํ•ด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋ชจ๋“  ์ œ๊ณต์—…์ฒด์˜ ์žฅ์ ์„ ํ†ตํ•ฉ๋œ ๊ฒฝํ—˜์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์—”์ง„ ์‚ฌ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์Œ ์—”์ง„์œผ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. 107๊ฐœ์˜ ๋‚ด์žฅ ์Šคํ‚ฌ์ด ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”๋ถ€ํ„ฐ ๋ฌธ์„œ ์ƒ์„ฑ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
91
156
 
92
- | | ์™œ CLI-JAW์ธ๊ฐ€์š”? |
93
- | --------------------------------------- | ----------------------------------------------------------------------------------------------------- |
94
- | ๐Ÿ›ก๏ธ **์•ˆ์ „ํ•œ ์„œ๋น„์Šค ์•ฝ๊ด€ ์ค€์ˆ˜** | ๊ณต์‹ CLI๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค โ€” API ํ‚ค ์Šคํฌ๋ž˜ํ•‘์ด๋‚˜ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์ด ์—†์œผ๋ฏ€๋กœ ๊ณ„์ • ์ •์ง€ ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค. |
95
- | ๐Ÿค– **๊ฒ€์ฆ๋œ ์—์ด์ „ํŠธ ๋„๊ตฌ** | ์‹ค์ „์—์„œ ๊ฒ€์ฆ๋œ 5๊ฐœ์˜ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude, Codex, Gemini, OpenCode, Copilot)๋ฅผ ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜์„ธ์š”. |
96
- | โšก **๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ž๋™ ์ „ํ™˜(Fallback)** | ์—”์ง„ ํ•˜๋‚˜๊ฐ€ ๋ฉˆ์ถฐ๋„ ๊ฑฑ์ • ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์—”์ง„์ด ์ฆ‰์‹œ ์ด์–ด๋ฐ›์•„ ์ค‘๋‹จ ์—†๋Š” ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. |
97
- | ๐ŸŽญ **์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”** | ๋ณต์žกํ•œ ์ž‘์—…์€ ์ „๋ฌธํ™”๋œ ์„œ๋ธŒ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. |
98
- | ๐Ÿ“ฆ **107๊ฐœ์˜ ๋‚ด์žฅ ์Šคํ‚ฌ** | ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”, ๋ฌธ์„œ ์ƒ์„ฑ, ํ…”๋ ˆ๊ทธ๋žจ ์—ฐ๋™, ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์„ค์น˜ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. |
99
- | ๐Ÿ–ฅ๏ธ **ํฌ๋กœ์Šค ํ”Œ๋žซํผ** | macOS, Linux, Windows โ€” ENOENT-safe CLI ์Šคํฐ, ์ž๋™ ๊ฐ์ง€, `.cmd` shim ์ง€์›, ๋„ค์ดํ‹ฐ๋ธŒ ์„ค์น˜ ์ „๋ถ€ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๋™์ž‘. |
157
+ | | ์™œ CLI-JAW์ธ๊ฐ€์š”? |
158
+ | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
159
+ | ๐Ÿ›ก๏ธ **์•ˆ์ „ํ•œ ์„œ๋น„์Šค ์•ฝ๊ด€ ์ค€์ˆ˜** | ๊ณต์‹ CLI๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค โ€” API ํ‚ค ์Šคํฌ๋ž˜ํ•‘์ด๋‚˜ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์ด ์—†์œผ๋ฏ€๋กœ ๊ณ„์ • ์ •์ง€ ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค. |
160
+ | ๐Ÿค– **๊ฒ€์ฆ๋œ ์—์ด์ „ํŠธ ๋„๊ตฌ** | ์‹ค์ „์—์„œ ๊ฒ€์ฆ๋œ 5๊ฐœ์˜ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude, Codex, Gemini, OpenCode, Copilot)๋ฅผ ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜์„ธ์š”. |
161
+ | โšก **๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ž๋™ ์ „ํ™˜(Fallback)** | ์—”์ง„ ํ•˜๋‚˜๊ฐ€ ๋ฉˆ์ถฐ๋„ ๊ฑฑ์ • ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์—”์ง„์ด ์ฆ‰์‹œ ์ด์–ด๋ฐ›์•„ ์ค‘๋‹จ ์—†๋Š” ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. |
162
+ | ๐ŸŽญ **์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”** | ๋ณต์žกํ•œ ์ž‘์—…์€ ์ „๋ฌธํ™”๋œ ์„œ๋ธŒ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. |
163
+ | ๐Ÿ“ฆ **107๊ฐœ์˜ ๋‚ด์žฅ ์Šคํ‚ฌ** | ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”, ๋ฌธ์„œ ์ƒ์„ฑ, ํ…”๋ ˆ๊ทธ๋žจ ์—ฐ๋™, ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์„ค์น˜ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. |
164
+ | ๐Ÿ–ฅ๏ธ **ํฌ๋กœ์Šค ํ”Œ๋žซํผ** | macOS, Linux, Windows โ€” ENOENT-safe CLI ์Šคํฐ, ์ž๋™ ๊ฐ์ง€, `.cmd` shim ์ง€์›, ๋„ค์ดํ‹ฐ๋ธŒ ์„ค์น˜ ์ „๋ถ€ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๋™์ž‘. |
100
165
 
101
166
  ![CLI-JAW ํ„ฐ๋ฏธ๋„](docs/screenshots/terminal-cli.png)
102
167
 
@@ -315,13 +380,13 @@ jaw --home ~/my-project launchd --port 3458 # ํ”„๋กœ์ ํŠธ โ†’ ํฌํŠธ 3458
315
380
 
316
381
  ๊ฐ ์ธ์Šคํ„ด์Šค๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค โ€” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ, MCP ์„ค์ •์ด ๋ชจ๋‘ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—…๋ฌด/๊ฐœ์ธ ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๋‚˜ ํ”„๋กœ์ ํŠธ๋ณ„ AI ์„ค์ •์— ์•ˆ์„ฑ๋งž์ถค์ด์—์š”.
317
382
 
318
- | ํ”Œ๋ž˜๊ทธ / ํ™˜๊ฒฝ๋ณ€์ˆ˜ | ๊ธฐ๋Šฅ |
383
+ | ํ”Œ๋ž˜๊ทธ / ํ™˜๊ฒฝ๋ณ€์ˆ˜ | ๊ธฐ๋Šฅ |
319
384
  | --------------------- | ---------------------------------------- |
320
- | `--home <๊ฒฝ๋กœ>` | ์ด ์‹คํ–‰์— ์‚ฌ์šฉํ•  ์ปค์Šคํ…€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ • |
321
- | `--home=<๊ฒฝ๋กœ>` | ๋™์ผ (`=` ๊ตฌ๋ฌธ) |
322
- | `CLI_JAW_HOME=<๊ฒฝ๋กœ>` | ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ง€์ • |
323
- | `jaw clone <๋Œ€์ƒ>` | ํ˜„์žฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์ œ |
324
- | `--port <ํฌํŠธ>` | `serve` / `launchd`์šฉ ์ปค์Šคํ…€ ํฌํŠธ |
385
+ | `--home <๊ฒฝ๋กœ>` | ์ด ์‹คํ–‰์— ์‚ฌ์šฉํ•  ์ปค์Šคํ…€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ • |
386
+ | `--home=<๊ฒฝ๋กœ>` | ๋™์ผ (`=` ๊ตฌ๋ฌธ) |
387
+ | `CLI_JAW_HOME=<๊ฒฝ๋กœ>` | ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ง€์ • |
388
+ | `jaw clone <๋Œ€์ƒ>` | ํ˜„์žฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์ œ |
389
+ | `--port <ํฌํŠธ>` | `serve` / `launchd`์šฉ ์ปค์Šคํ…€ ํฌํŠธ |
325
390
 
326
391
  ---
327
392
 
@@ -429,12 +494,12 @@ npm test
429
494
  | ---------------------------- | ---------------------------------- | --------------------------------------------------------------------------- |
430
495
  | `command not found: cli-jaw` | npm ์ „์—ญ bin์ด PATH์— ์—†์Œ | `npm config get prefix` ํ™•์ธ ํ›„ `bin/`์„ PATH์— ์ถ”๊ฐ€ |
431
496
  | `doctor`์—์„œ CLI ๋ˆ„๋ฝ ํ‘œ์‹œ | ํ•ด๋‹น CLI ๋ฏธ์„ค์น˜ | `npm i -g @anthropic-ai/claude-code` ๋“ฑ ์„ค์น˜ |
432
- | ํฌํŠธ 3457 ์‚ฌ์šฉ ์ค‘ | ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ  | `PORT=4000 jaw serve` ๋˜๋Š” ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ |
433
- | ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋ฌด๋ฐ˜์‘ | ํ† ํฐ ๋ฏธ์„ค์ • ๋˜๋Š” Chat ID ๋ˆ„๋ฝ | `jaw init --telegram-token ...` ์žฌ์‹คํ–‰ |
434
- | ํ…”๋ ˆ๊ทธ๋žจ โœ“โœ“ ์ง€์—ฐ ํ‘œ์‹œ | Telegram ์„œ๋ฒ„ ์ธก ์ „๋‹ฌ ํ™•์ธ ํƒ€์ด๋ฐ | ์ •์ƒ ๋™์ž‘ โ€” ์„œ๋ฒ„ ๋ถ€ํ•˜์— ๋”ฐ๋ผ ์ˆ˜ ๋ถ„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ. ๋ฒ„๊ทธ ์•„๋‹˜ |
497
+ | ํฌํŠธ 3457 ์‚ฌ์šฉ ์ค‘ | ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ  | `PORT=4000 jaw serve` ๋˜๋Š” ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ |
498
+ | ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋ฌด๋ฐ˜์‘ | ํ† ํฐ ๋ฏธ์„ค์ • ๋˜๋Š” Chat ID ๋ˆ„๋ฝ | `jaw init --telegram-token ...` ์žฌ์‹คํ–‰ |
499
+ | ํ…”๋ ˆ๊ทธ๋žจ โœ“โœ“ ์ง€์—ฐ ํ‘œ์‹œ | Telegram ์„œ๋ฒ„ ์ธก ์ „๋‹ฌ ํ™•์ธ ํƒ€์ด๋ฐ | ์ •์ƒ ๋™์ž‘ โ€” ์„œ๋ฒ„ ๋ถ€ํ•˜์— ๋”ฐ๋ผ ์ˆ˜ ๋ถ„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ. ๋ฒ„๊ทธ ์•„๋‹˜ |
435
500
  | `npm install -g` ๊ถŒํ•œ ์˜ค๋ฅ˜ | ๊ธ€๋กœ๋ฒŒ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ ๋ฌธ์ œ | `sudo npm i -g cli-jaw` ๋˜๋Š” [nvm](https://github.com/nvm-sh/nvm) ์‚ฌ์šฉ ๊ถŒ์žฅ |
436
501
  | ๋นŒ๋“œ ์‹คํŒจ (`tsc` ์—๋Ÿฌ) | Node 22 ๋ฏธ๋งŒ ๋ฒ„์ „ | `node -v` ํ™•์ธ โ†’ 22 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ |
437
- | ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„ธ์…˜ ๊ฐ„ ์œ ์ง€ ์•ˆ ๋จ | `~/.cli-jaw/memory/` ๋””๋ ‰ํ† ๋ฆฌ ์—†์Œ | `jaw init` ์žฌ์‹คํ–‰ํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ |
502
+ | ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„ธ์…˜ ๊ฐ„ ์œ ์ง€ ์•ˆ ๋จ | `~/.cli-jaw/memory/` ๋””๋ ‰ํ† ๋ฆฌ ์—†์Œ | `jaw init` ์žฌ์‹คํ–‰ํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ |
438
503
 
439
504
  ---
440
505
 
package/README.md CHANGED
@@ -20,6 +20,71 @@
20
20
 
21
21
  </div>
22
22
 
23
+ <details>
24
+ <summary>๐ŸชŸ <b>Are you on Windows?</b> โ€” WSL One-Click Setup</summary>
25
+
26
+ **Step 1: Install WSL** (PowerShell as Admin โ€” one time only)
27
+
28
+ ```powershell
29
+ wsl --install
30
+ ```
31
+
32
+ Restart your computer when prompted. After reboot, open **Ubuntu** from the Start Menu.
33
+
34
+ **Step 2: Install CLI-JAW** (in the Ubuntu/WSL terminal)
35
+
36
+ ```bash
37
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
38
+ ```
39
+
40
+ **Step 3: Authenticate an AI Engine** (pick one)
41
+
42
+ ```bash
43
+ copilot login # GitHub Copilot (Free)
44
+ opencode # OpenCode (Free models available)
45
+ claude auth # Anthropic Claude
46
+ codex login # OpenAI Codex
47
+ gemini # Google Gemini
48
+ ```
49
+
50
+ **Step 4: Start Chatting**
51
+
52
+ ```bash
53
+ jaw serve
54
+ # โ†’ http://localhost:3457
55
+ ```
56
+
57
+ > ๐Ÿ’ก The script uses [fnm](https://github.com/Schniz/fnm) for Node.js management. If you already have `nvm`, it will use that instead.
58
+
59
+ </details>
60
+
61
+ <details>
62
+ <summary>๐ŸŽ <b>New to the terminal?</b> โ€” One-click Node.js + CLI-JAW install</summary>
63
+
64
+ **Step 1: Open Terminal**
65
+
66
+ Open **Finder** โ†’ **Applications** โ†’ **Utilities** โ†’ **Terminal.app**
67
+ (or press `โŒ˜ Space` and type `Terminal`)
68
+
69
+ **Step 2: Paste this and hit Enter**
70
+
71
+ ```bash
72
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
73
+ ```
74
+
75
+ This installs Node.js + CLI-JAW automatically. Just wait until you see ๐ŸŽ‰.
76
+
77
+ **Step 3: Login & Launch**
78
+
79
+ ```bash
80
+ copilot login # or: claude auth / codex login / gemini login
81
+ jaw serve
82
+ ```
83
+
84
+ Open **http://localhost:3457** in your browser. That's it! ๐Ÿฆˆ
85
+
86
+ </details>
87
+
23
88
  ---
24
89
 
25
90
  ## ๐Ÿš€ Install & Run (30 seconds)
@@ -41,7 +106,7 @@ You only need **one** โ€” pick whichever you have:
41
106
 
42
107
  ```bash
43
108
  # โ”€โ”€ Free options โ”€โ”€
44
- gh auth login # GitHub Copilot (free tier) โ€” then run: gh copilot --help
109
+ copilot login # GitHub Copilot (free tier)
45
110
  opencode # OpenCode โ€” auto-auth on first run (free models available)
46
111
 
47
112
  # โ”€โ”€ Paid options โ”€โ”€
@@ -89,14 +154,14 @@ CLI-JAW is a **personal AI assistant** that lives on your machine and works from
89
154
 
90
155
  Unlike single-model assistants, CLI-JAW orchestrates **5 AI engines** (Claude, Codex, Gemini, OpenCode, Copilot) through their official CLIs โ€” giving you the best of every provider in one unified experience. If one engine is busy, it automatically falls back to the next. 107 built-in skills handle everything from browser automation to document generation.
91
156
 
92
- | | Why CLI-JAW? |
93
- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
94
- | ๐Ÿ›ก๏ธ**TOS-Safe** | Uses official CLIs only โ€” no API key scraping, no reverse engineering, no ban risk. |
95
- | ๐Ÿค–**Verified Agent Tools** | 5 battle-tested coding agents (Claude, Codex, Gemini, OpenCode, Copilot) under one roof. |
96
- | โšก**Multi-Agent Fallback** | One engine down? The next picks up automatically. Zero downtime. |
97
- | ๐ŸŽญ**Orchestrated Performance** | Complex tasks split across specialized sub-agents for maximum throughput. |
98
- | ๐Ÿ“ฆ**107 Built-in Skills** | Browser automation, document generation, Telegram, memory โ€” ready out of the box. |
99
- | ๐Ÿ–ฅ๏ธ**Cross-Platform** | macOS, Linux, Windows โ€” ENOENT-safe CLI spawn, auto-detection,`.cmd` shim support, and native install all work across platforms. |
157
+ | | Why CLI-JAW? |
158
+ | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
159
+ | ๐Ÿ›ก๏ธ**TOS-Safe** | Uses official CLIs only โ€” no API key scraping, no reverse engineering, no ban risk. |
160
+ | ๐Ÿค–**Verified Agent Tools** | 5 battle-tested coding agents (Claude, Codex, Gemini, OpenCode, Copilot) under one roof. |
161
+ | โšก**Multi-Agent Fallback** | One engine down? The next picks up automatically. Zero downtime. |
162
+ | ๐ŸŽญ**Orchestrated Performance** | Complex tasks split across specialized sub-agents for maximum throughput. |
163
+ | ๐Ÿ“ฆ**107 Built-in Skills** | Browser automation, document generation, Telegram, memory โ€” ready out of the box. |
164
+ | ๐Ÿ–ฅ๏ธ**Cross-Platform** | macOS, Linux, Windows โ€” ENOENT-safe CLI spawn, auto-detection,`.cmd` shim support, and native install all work across platforms. |
100
165
 
101
166
  ![CLI-JAW Terminal](docs/screenshots/terminal-cli.png)
102
167
 
@@ -139,26 +204,26 @@ graph LR
139
204
  <details>
140
205
  <summary>View all skills</summary>
141
206
 
142
- | Tier | Count | How it works |
143
- | -------------------------- | :---: | --------------------------------------------------------- |
144
- | **Active Skills** | 17 | Auto-injected into every AI prompt. Always available. |
145
- | **Reference Skills** | 90 | AI reads them on-demand when you ask for a relevant task. |
207
+ | Tier | Count | How it works |
208
+ | -------------------- | :---: | --------------------------------------------------------- |
209
+ | **Active Skills** | 17 | Auto-injected into every AI prompt. Always available. |
210
+ | **Reference Skills** | 90 | AI reads them on-demand when you ask for a relevant task. |
146
211
 
147
212
  #### Active Skills (always on)
148
213
 
149
- | Skill | What it does |
150
- | ----------------------------------------------------------------------------- | ---------------------------------------------------------- |
151
- | `browser` | Chrome automation โ€” snapshot, click, navigate, screenshot |
152
- | `github` | Issues, PRs, CI, code review via `gh` CLI |
153
- | `notion` | Create/manage Notion pages and databases |
154
- | `memory` | Persistent long-term memory across sessions |
155
- | `telegram-send` | Send photos, documents, voice messages to Telegram |
156
- | `vision-click` | Screenshot โ†’ AI finds coordinates โ†’ clicks (one command) |
157
- | `imagegen` | Generate/edit images via OpenAI Image API |
158
- | `pdf` / `docx` / `xlsx` | Read, create, edit office documents |
159
- | `screen-capture` | macOS screenshot and camera capture |
160
- | `openai-docs` | Up-to-date OpenAI API documentation |
161
- | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | Development guidelines for sub-agents |
214
+ | Skill | What it does |
215
+ | ------------------------------------------------------------------- | --------------------------------------------------------- |
216
+ | `browser` | Chrome automation โ€” snapshot, click, navigate, screenshot |
217
+ | `github` | Issues, PRs, CI, code review via `gh` CLI |
218
+ | `notion` | Create/manage Notion pages and databases |
219
+ | `memory` | Persistent long-term memory across sessions |
220
+ | `telegram-send` | Send photos, documents, voice messages to Telegram |
221
+ | `vision-click` | Screenshot โ†’ AI finds coordinates โ†’ clicks (one command) |
222
+ | `imagegen` | Generate/edit images via OpenAI Image API |
223
+ | `pdf` / `docx` / `xlsx` | Read, create, edit office documents |
224
+ | `screen-capture` | macOS screenshot and camera capture |
225
+ | `openai-docs` | Up-to-date OpenAI API documentation |
226
+ | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | Development guidelines for sub-agents |
162
227
 
163
228
  #### Reference Skills (on-demand)
164
229
 
@@ -307,13 +372,13 @@ jaw --home ~/my-project launchd --port 3458 # project โ†’ port 3458
307
372
 
308
373
  Each instance is fully independent โ€” different working directory, different memory, different MCP config. Perfect for separating work/personal contexts or per-project AI setups.
309
374
 
310
- | Flag / Env | What it does |
311
- | ----------------------- | ----------------------------------------- |
375
+ | Flag / Env | What it does |
376
+ | --------------------- | ----------------------------------------- |
312
377
  | `--home <path>` | Use a custom home directory for this run |
313
- | `--home=<path>` | Same, with `=` syntax |
378
+ | `--home=<path>` | Same, with `=` syntax |
314
379
  | `CLI_JAW_HOME=<path>` | Set via environment variable |
315
380
  | `jaw clone <target>` | Clone current instance to a new directory |
316
- | `--port <port>` | Custom port for `serve` / `launchd` |
381
+ | `--port <port>` | Custom port for `serve` / `launchd` |
317
382
 
318
383
  ---
319
384
 
@@ -324,13 +389,13 @@ Each CLI comes with preconfigured presets, but you can type **any model ID** dir
324
389
  <details>
325
390
  <summary>View all presets</summary>
326
391
 
327
- | CLI | Default | Notable Models |
328
- | ------------------ | ---------------------------- | ----------------------------------------------- |
392
+ | CLI | Default | Notable Models |
393
+ | ------------ | -------------------------- | ----------------------------------------------- |
329
394
  | **Claude** | `claude-sonnet-4-6` | opus-4-6, haiku-4-5, extended thinking variants |
330
395
  | **Codex** | `gpt-5.3-codex` | spark, 5.2, 5.1-max, 5.1-mini |
331
396
  | **Gemini** | `gemini-2.5-pro` | 3.0-pro-preview, 3-flash-preview, 2.5-flash |
332
- | **OpenCode** | `claude-opus-4-6-thinking` | ๐Ÿ†“ big-pickle, GLM-5, MiniMax, Kimi, GPT-5-Nano |
333
- | **Copilot** | `gpt-4.1` ๐Ÿ†“ | ๐Ÿ†“ gpt-5-mini, claude-sonnet-4.6, opus-4.6 |
397
+ | **OpenCode** | `claude-opus-4-6-thinking` | ๐Ÿ†“ big-pickle, GLM-5, MiniMax, Kimi, GPT-5-Nano |
398
+ | **Copilot** | `gpt-4.1` ๐Ÿ†“ | ๐Ÿ†“ gpt-5-mini, claude-sonnet-4.6, opus-4.6 |
334
399
 
335
400
  </details>
336
401
 
@@ -357,8 +422,8 @@ docker run -d -p 3457:3457 --env-file .env --name jaw cli-jaw
357
422
 
358
423
  **Two Dockerfiles:**
359
424
 
360
- | File | Purpose | Use Case |
361
- | ------------------ | -------------------------- | ----------------------- |
425
+ | File | Purpose | Use Case |
426
+ | ---------------- | -------------------------- | ----------------------- |
362
427
  | `Dockerfile` | Installs from npm registry | Production / deployment |
363
428
  | `Dockerfile.dev` | Builds from local source | Development / testing |
364
429
 
@@ -445,8 +510,8 @@ All tests run via `tsx --test` (native Node.js test runner + TypeScript).
445
510
 
446
511
  ## ๐Ÿ“– Documentation
447
512
 
448
- | Document | What's inside |
449
- | ------------------------------------ | ----------------------------------------------------- |
513
+ | Document | What's inside |
514
+ | --------------------------------------- | ----------------------------------------------------- |
450
515
  | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | System design, module graph, REST API (40+ endpoints) |
451
516
  | [TESTS.md](TESTS.md) | Test coverage and test plan |
452
517
 
@@ -457,16 +522,16 @@ All tests run via `tsx --test` (native Node.js test runner + TypeScript).
457
522
  <details>
458
523
  <summary>Common issues</summary>
459
524
 
460
- | Problem | Solution |
461
- | ------------------------------ | --------------------------------------------------------------------------------------------- |
462
- | `cli-jaw: command not found` | Run `npm install -g cli-jaw` again. Check `npm bin -g` is in your `$PATH`. |
463
- | `Error: node version` | Upgrade to Node.js โ‰ฅ 22:`nvm install 22` or download from [nodejs.org](https://nodejs.org) |
464
- | Agent timeout / no response | Run `jaw doctor` to check CLI auth. Re-authenticate with `claude auth` / `codex login`. |
465
- | `EADDRINUSE: port 3457` | Another instance is running. Stop it or use `jaw serve --port 3458`. |
466
- | Telegram bot not responding | Check token with `jaw doctor`. Ensure `jaw serve` is running. |
467
- | Telegram โœ“โœ“ delayed | Normal โ€” Telegram server-side delivery ack can take a few minutes under load. Not a bug. |
468
- | Skills not loading | Run `jaw skill reset` then `jaw mcp sync`. |
469
- | Browser commands fail | Install Chrome/Chromium. Run `jaw browser start` first. |
525
+ | Problem | Solution |
526
+ | ---------------------------- | ------------------------------------------------------------------------------------------ |
527
+ | `cli-jaw: command not found` | Run `npm install -g cli-jaw` again. Check `npm bin -g` is in your `$PATH`. |
528
+ | `Error: node version` | Upgrade to Node.js โ‰ฅ 22:`nvm install 22` or download from [nodejs.org](https://nodejs.org) |
529
+ | Agent timeout / no response | Run `jaw doctor` to check CLI auth. Re-authenticate with `claude auth` / `codex login`. |
530
+ | `EADDRINUSE: port 3457` | Another instance is running. Stop it or use `jaw serve --port 3458`. |
531
+ | Telegram bot not responding | Check token with `jaw doctor`. Ensure `jaw serve` is running. |
532
+ | Telegram โœ“โœ“ delayed | Normal โ€” Telegram server-side delivery ack can take a few minutes under load. Not a bug. |
533
+ | Skills not loading | Run `jaw skill reset` then `jaw mcp sync`. |
534
+ | Browser commands fail | Install Chrome/Chromium. Run `jaw browser start` first. |
470
535
 
471
536
  </details>
472
537
 
package/README.zh-CN.md CHANGED
@@ -20,6 +20,71 @@
20
20
 
21
21
  </div>
22
22
 
23
+ <details>
24
+ <summary>๐ŸชŸ <b>ไฝ ๅœจ็”จ Windows ๅ—๏ผŸ</b> โ€” WSL ไธ€้”ฎๅฎ‰่ฃ…</summary>
25
+
26
+ **็ฌฌไธ€ๆญฅ๏ผšๅฎ‰่ฃ… WSL**๏ผˆไปฅ็ฎก็†ๅ‘˜่บซไปฝ่ฟ่กŒ PowerShell โ€” ไป…้œ€ไธ€ๆฌก๏ผ‰
27
+
28
+ ```powershell
29
+ wsl --install
30
+ ```
31
+
32
+ ๆŒ‰ๆ็คบ้‡ๅฏ็”ต่„‘ใ€‚้‡ๅฏๅŽไปŽๅผ€ๅง‹่œๅ•ๆ‰“ๅผ€ **Ubuntu**ใ€‚
33
+
34
+ **็ฌฌไบŒๆญฅ๏ผšๅฎ‰่ฃ… CLI-JAW**๏ผˆๅœจ Ubuntu/WSL ็ปˆ็ซฏไธญ๏ผ‰
35
+
36
+ ```bash
37
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
38
+ ```
39
+
40
+ **็ฌฌไธ‰ๆญฅ๏ผš่ฎค่ฏ AI ๅผ•ๆ“Ž**๏ผˆไปป้€‰ๅ…ถไธ€๏ผ‰
41
+
42
+ ```bash
43
+ copilot login # GitHub Copilot๏ผˆๅ…่ดน๏ผ‰
44
+ opencode # OpenCode๏ผˆๆไพ›ๅ…่ดนๆจกๅž‹๏ผ‰
45
+ claude auth # Anthropic Claude
46
+ codex login # OpenAI Codex
47
+ gemini # Google Gemini
48
+ ```
49
+
50
+ **็ฌฌๅ››ๆญฅ๏ผšๅฏๅŠจ่Šๅคฉ**
51
+
52
+ ```bash
53
+ jaw serve
54
+ # โ†’ http://localhost:3457
55
+ ```
56
+
57
+ > ๐Ÿ’ก ่„šๆœฌไฝฟ็”จ [fnm](https://github.com/Schniz/fnm) ็ฎก็† Node.jsใ€‚ๅฆ‚ๆžœๅทฒๆœ‰ `nvm`๏ผŒๅˆ™่‡ชๅŠจไฝฟ็”จ nvmใ€‚
58
+
59
+ </details>
60
+
61
+ <details>
62
+ <summary>๐ŸŽ <b>็ปˆ็ซฏๆ–ฐๆ‰‹๏ผŸ</b> โ€” ไธ€้”ฎๅฎ‰่ฃ… Node.js + CLI-JAW</summary>
63
+
64
+ **็ฌฌไธ€ๆญฅ๏ผšๆ‰“ๅผ€็ปˆ็ซฏ**
65
+
66
+ ๆ‰“ๅผ€ **Finder** โ†’ **ๅบ”็”จ็จ‹ๅบ** โ†’ **ๅฎž็”จๅทฅๅ…ท** โ†’ **็ปˆ็ซฏ.app**
67
+ ๏ผˆๆˆ–่€…ๆŒ‰ `โŒ˜ Space` ็„ถๅŽ่พ“ๅ…ฅ `Terminal`๏ผ‰
68
+
69
+ **็ฌฌไบŒๆญฅ๏ผš็ฒ˜่ดดๅนถๆŒ‰ Enter**
70
+
71
+ ```bash
72
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
73
+ ```
74
+
75
+ Node.js + CLI-JAW ไผš่‡ชๅŠจๅฎ‰่ฃ…ใ€‚็ญ‰ๅˆฐๅ‡บ็Žฐ ๐ŸŽ‰ ๅฐฑๅฎŒๆˆไบ†ใ€‚
76
+
77
+ **็ฌฌไธ‰ๆญฅ๏ผš็™ปๅฝ•ๅนถๅฏๅŠจ**
78
+
79
+ ```bash
80
+ copilot login # ๆˆ–่€…: claude auth / codex login / gemini login
81
+ jaw serve
82
+ ```
83
+
84
+ ๅœจๆต่งˆๅ™จไธญๆ‰“ๅผ€ **http://localhost:3457**ใ€‚ๆžๅฎš๏ผ๐Ÿฆˆ
85
+
86
+ </details>
87
+
23
88
  ---
24
89
 
25
90
  ## ๐Ÿš€ ๅฎ‰่ฃ…ไธŽๅฏๅŠจ๏ผˆ30 ็ง’๏ผ‰
@@ -41,7 +106,7 @@ jaw serve
41
106
 
42
107
  ```bash
43
108
  # โ”€โ”€ ๅ…่ดน โ”€โ”€
44
- gh auth login # GitHub Copilot๏ผˆๅ…่ดนๅฅ—้ค๏ผ‰โ€” ็„ถๅŽ: gh copilot --help
109
+ copilot login # GitHub Copilot๏ผˆๅ…่ดนๅฅ—้ค๏ผ‰
45
110
  opencode # OpenCode โ€” ้ฆ–ๆฌก่ฟ่กŒ่‡ชๅŠจ่ฎค่ฏ๏ผˆๆœ‰ๅ…่ดนๆจกๅž‹๏ผ‰
46
111
 
47
112
  # โ”€โ”€ ไป˜่ดน โ”€โ”€
@@ -89,14 +154,14 @@ CLI-JAW ๆ˜ฏ้ฉป็•™ๅœจๆ‚จๆœฌๅœฐๆœบๅ™จไธŠ็š„**ไธ“ๅฑž AI ๅŠฉๆ‰‹**๏ผŒๅนถๅœจๆ‚จ็†Ÿๆ‚‰
89
154
 
90
155
  ไธŽๅ•ไธ€ๆจกๅž‹็š„ๅŠฉๆ‰‹ไธๅŒ๏ผŒCLI-JAW ้€š่ฟ‡ๅฎ˜ๆ–น CLI ๅ‘ฝไปค่กŒๅทฅๅ…ทๅฏน **5 ๅคง AI ๅผ•ๆ“Ž**๏ผˆClaudeใ€Codexใ€Geminiใ€OpenCodeใ€Copilot๏ผ‰่ฟ›่กŒ็ผ–ๆŽ’ โ€” ไธบๆ‚จๆไพ›ๅ„ๅคงไพ›ๅบ”ๅ•†ๆœ€ไผ˜ๅŠฟ็š„่ƒฝๅŠ›ๅŠ็ปŸไธ€็š„ไฝ“้ชŒใ€‚ๅฝ“ไธ€ไธชๅผ•ๆ“Žๅค„ไบŽ็นๅฟ™็Šถๆ€ๆ—ถ๏ผŒๅฎƒไผš่‡ชๅŠจๆ— ็ผๅˆ‡ๆข่‡ณไธ‹ไธ€ไธชใ€‚107 ไธชๅ†…็ฝฎๆŠ€่ƒฝๅฏๅค„็†ไปŽๆต่งˆๅ™จ่‡ชๅŠจๅŒ–ๅˆฐๆ–‡ๆกฃ็”Ÿๆˆ็š„ๆ‰€ๆœ‰ไบ‹ๅŠกใ€‚
91
156
 
92
- | | ไธบไป€ไนˆ้€‰ๆ‹ฉ CLI-JAW๏ผŸ |
93
- | ------------------------------- | -------------------------------------------------------------------------- |
94
- | ๐Ÿ›ก๏ธ **ๅฎ‰ๅ…จๅˆ่ง„ (TOS-Safe)** | ไป…ไฝฟ็”จๅฎ˜ๆ–น CLI โ€” ๆ—  API ๅฏ†้’ฅๆŠ“ๅ–ใ€ๆ— ้€†ๅ‘ๅทฅ็จ‹ใ€ๆ— ๅฐๅท้ฃŽ้™ฉใ€‚ |
95
- | ๐Ÿค– **็ป่ฟ‡้ชŒ่ฏ็š„ๆ™บ่ƒฝไฝ“ๅทฅๅ…ท** | 5 ๅคงๅฎžๆˆ˜็บง็ผ–็ ๆ™บ่ƒฝไฝ“๏ผˆClaudeใ€Codexใ€Geminiใ€OpenCodeใ€Copilot๏ผ‰้›†ไบŽไธ€่บซใ€‚ |
96
- | โšก **ๅคšๆจกๅž‹่‡ชๅŠจๅ›ž้€€ (Fallback)** | ๅ•ไธ€ๅผ•ๆ“Žๅ‘็”Ÿๆ•…้šœ๏ผŸไธ‹ไธ€ไธช็ซ‹ๅณๆŽฅ็ฎกใ€‚็กฎไฟ้›ถๅœๆœบใ€‚ |
97
- | ๐ŸŽญ **ๅŸบไบŽ็ผ–ๆŽ’็š„ๆ€ง่ƒฝไผ˜ๅŒ–** | ๅคๆ‚็š„ไปปๅŠกไผš่ขซๆ‹†ๅˆ†็ป™ไธ“ไธš็š„ๅญๆ™บ่ƒฝไฝ“๏ผŒไปฅๅฎž็Žฐๆ•ˆ็އๆœ€ๅคงๅŒ–ใ€‚ |
98
- | ๐Ÿ“ฆ **107 ไธชๅ†…็ฝฎๆŠ€่ƒฝ** | ๆต่งˆๅ™จ่‡ชๅŠจๅŒ–ใ€ๆ–‡ๆกฃ็”Ÿๆˆใ€Telegram ้€š็Ÿฅใ€ๆŒไน…ๅŒ–่ฎฐๅฟ† โ€” ๅผ€็ฎฑๅณ็”จใ€‚ |
99
- | ๐Ÿ–ฅ๏ธ **่ทจๅนณๅฐๆ”ฏๆŒ** | macOSใ€Linuxใ€Windows โ€” ENOENT-safe CLI ๅฏๅŠจใ€่‡ชๅŠจๆฃ€ๆต‹ใ€`.cmd` ๆ”ฏๆŒ๏ผŒ่ทจๅนณๅฐๅŽŸ็”Ÿ่ฟ่กŒใ€‚ |
157
+ | | ไธบไป€ไนˆ้€‰ๆ‹ฉ CLI-JAW๏ผŸ |
158
+ | ------------------------------- | ------------------------------------------------------------------------------------- |
159
+ | ๐Ÿ›ก๏ธ **ๅฎ‰ๅ…จๅˆ่ง„ (TOS-Safe)** | ไป…ไฝฟ็”จๅฎ˜ๆ–น CLI โ€” ๆ—  API ๅฏ†้’ฅๆŠ“ๅ–ใ€ๆ— ้€†ๅ‘ๅทฅ็จ‹ใ€ๆ— ๅฐๅท้ฃŽ้™ฉใ€‚ |
160
+ | ๐Ÿค– **็ป่ฟ‡้ชŒ่ฏ็š„ๆ™บ่ƒฝไฝ“ๅทฅๅ…ท** | 5 ๅคงๅฎžๆˆ˜็บง็ผ–็ ๆ™บ่ƒฝไฝ“๏ผˆClaudeใ€Codexใ€Geminiใ€OpenCodeใ€Copilot๏ผ‰้›†ไบŽไธ€่บซใ€‚ |
161
+ | โšก **ๅคšๆจกๅž‹่‡ชๅŠจๅ›ž้€€ (Fallback)** | ๅ•ไธ€ๅผ•ๆ“Žๅ‘็”Ÿๆ•…้šœ๏ผŸไธ‹ไธ€ไธช็ซ‹ๅณๆŽฅ็ฎกใ€‚็กฎไฟ้›ถๅœๆœบใ€‚ |
162
+ | ๐ŸŽญ **ๅŸบไบŽ็ผ–ๆŽ’็š„ๆ€ง่ƒฝไผ˜ๅŒ–** | ๅคๆ‚็š„ไปปๅŠกไผš่ขซๆ‹†ๅˆ†็ป™ไธ“ไธš็š„ๅญๆ™บ่ƒฝไฝ“๏ผŒไปฅๅฎž็Žฐๆ•ˆ็އๆœ€ๅคงๅŒ–ใ€‚ |
163
+ | ๐Ÿ“ฆ **107 ไธชๅ†…็ฝฎๆŠ€่ƒฝ** | ๆต่งˆๅ™จ่‡ชๅŠจๅŒ–ใ€ๆ–‡ๆกฃ็”Ÿๆˆใ€Telegram ้€š็Ÿฅใ€ๆŒไน…ๅŒ–่ฎฐๅฟ† โ€” ๅผ€็ฎฑๅณ็”จใ€‚ |
164
+ | ๐Ÿ–ฅ๏ธ **่ทจๅนณๅฐๆ”ฏๆŒ** | macOSใ€Linuxใ€Windows โ€” ENOENT-safe CLI ๅฏๅŠจใ€่‡ชๅŠจๆฃ€ๆต‹ใ€`.cmd` ๆ”ฏๆŒ๏ผŒ่ทจๅนณๅฐๅŽŸ็”Ÿ่ฟ่กŒใ€‚ |
100
165
 
101
166
  ![CLI-JAW ็ปˆ็ซฏ](docs/screenshots/terminal-cli.png)
102
167
 
@@ -315,13 +380,13 @@ jaw --home ~/my-project launchd --port 3458 # ้กน็›ฎ โ†’ ็ซฏๅฃ 3458
315
380
 
316
381
  ๆฏไธชๅฎžไพ‹ๅฎŒๅ…จ็‹ฌ็ซ‹ โ€” ๅทฅไฝœ็›ฎๅฝ•ใ€่ฎฐๅฟ†ใ€MCP ้…็ฝฎๅ„ไธ็›ธๅŒใ€‚้žๅธธ้€‚ๅˆๅทฅไฝœ/ไธชไบบ็Žฏๅขƒๅˆ†็ฆปๆˆ–ๆŒ‰้กน็›ฎ้…็ฝฎ AIใ€‚
317
382
 
318
- | ๅ‚ๆ•ฐ / ็Žฏๅขƒๅ˜้‡ | ๅŠŸ่ƒฝ |
319
- | --------------------- | ------------------------------------ |
320
- | `--home <่ทฏๅพ„>` | ๆŒ‡ๅฎšๆœฌๆฌก่ฟ่กŒไฝฟ็”จ็š„่‡ชๅฎšไน‰ไธป็›ฎๅฝ• |
321
- | `--home=<่ทฏๅพ„>` | ๅŒไธŠ๏ผˆ`=` ่ฏญๆณ•๏ผ‰ |
322
- | `CLI_JAW_HOME=<่ทฏๅพ„>` | ้€š่ฟ‡็Žฏๅขƒๅ˜้‡ๆŒ‡ๅฎš |
323
- | `jaw clone <็›ฎๆ ‡>` | ๅฐ†ๅฝ“ๅ‰ๅฎžไพ‹ๅ…‹้š†ๅˆฐๆ–ฐ็›ฎๅฝ• |
324
- | `--port <็ซฏๅฃ>` | `serve` / `launchd` ่‡ชๅฎšไน‰็ซฏๅฃ |
383
+ | ๅ‚ๆ•ฐ / ็Žฏๅขƒๅ˜้‡ | ๅŠŸ่ƒฝ |
384
+ | --------------------- | ------------------------------ |
385
+ | `--home <่ทฏๅพ„>` | ๆŒ‡ๅฎšๆœฌๆฌก่ฟ่กŒไฝฟ็”จ็š„่‡ชๅฎšไน‰ไธป็›ฎๅฝ• |
386
+ | `--home=<่ทฏๅพ„>` | ๅŒไธŠ๏ผˆ`=` ่ฏญๆณ•๏ผ‰ |
387
+ | `CLI_JAW_HOME=<่ทฏๅพ„>` | ้€š่ฟ‡็Žฏๅขƒๅ˜้‡ๆŒ‡ๅฎš |
388
+ | `jaw clone <็›ฎๆ ‡>` | ๅฐ†ๅฝ“ๅ‰ๅฎžไพ‹ๅ…‹้š†ๅˆฐๆ–ฐ็›ฎๅฝ• |
389
+ | `--port <็ซฏๅฃ>` | `serve` / `launchd` ่‡ชๅฎšไน‰็ซฏๅฃ |
325
390
 
326
391
  ---
327
392
 
@@ -5,7 +5,7 @@
5
5
  import { parseArgs } from 'node:util';
6
6
  import { rmSync, existsSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
- import { getServerUrl, JAW_HOME } from '../../src/core/config.js';
8
+ import { getServerUrl, JAW_HOME, deriveCdpPort } from '../../src/core/config.js';
9
9
  const SERVER = getServerUrl(undefined);
10
10
  const sub = process.argv[3];
11
11
  // โ”€โ”€โ”€ ANSI โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -30,9 +30,15 @@ try {
30
30
  case 'start': {
31
31
  const { values } = parseArgs({
32
32
  args: process.argv.slice(4),
33
- options: { port: { type: 'string', default: '9240' } }, strict: false
33
+ options: {
34
+ port: { type: 'string', default: String(deriveCdpPort()) },
35
+ headless: { type: 'boolean', default: false },
36
+ }, strict: false
37
+ });
38
+ const r = await api('POST', '/start', {
39
+ port: Number(values.port),
40
+ headless: values.headless,
34
41
  });
35
- const r = await api('POST', '/start', { port: Number(values.port) });
36
42
  console.log(r.running ? `๐ŸŒ Chrome started (CDP: ${r.cdpUrl})` : 'โŒ Failed');
37
43
  break;
38
44
  }
@@ -208,7 +214,7 @@ try {
208
214
  ๐ŸŒ cli-jaw browser
209
215
 
210
216
  Commands:
211
- start [--port 9240] Start Chrome (default CDP port: 9240)
217
+ start [--port <auto>] [--headless] Start Chrome (headless for WSL/CI/Docker)
212
218
  stop Stop Chrome
213
219
  status Connection status
214
220
  reset [--force] Reset (clear profile + screenshots)
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../bin/commands/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../bin/commands/browser.ts"],"names":[],"mappings":"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"}
@@ -51,11 +51,24 @@ else {
51
51
  });
52
52
  }
53
53
  // Forward signals
54
- process.on('SIGINT', () => child.kill('SIGINT'));
55
- process.on('SIGTERM', () => child.kill('SIGTERM'));
54
+ let exiting = false;
55
+ process.on('SIGINT', () => {
56
+ if (exiting)
57
+ return;
58
+ exiting = true;
59
+ });
60
+ process.on('SIGTERM', () => {
61
+ if (exiting)
62
+ return;
63
+ exiting = true;
64
+ child.kill('SIGTERM');
65
+ });
66
+ import os from 'node:os';
56
67
  child.on('exit', (code, signal) => {
57
68
  if (signal) {
58
- process.exit(1);
69
+ const sigNames = os.constants?.signals || {};
70
+ const sigCode = sigNames[signal] ?? 9;
71
+ process.exit(128 + sigCode);
59
72
  }
60
73
  process.exit(code ?? 1);
61
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../bin/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../bin/commands/serve.ts"],"names":[],"mappings":"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"}