cli-jaw 0.1.11 → 0.1.12

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 (63) hide show
  1. package/README.ko.md +44 -13
  2. package/README.md +12 -11
  3. package/README.zh-CN.md +43 -12
  4. package/dist/bin/commands/doctor.js +13 -2
  5. package/dist/bin/commands/doctor.js.map +1 -1
  6. package/dist/bin/commands/mcp.js +15 -18
  7. package/dist/bin/commands/mcp.js.map +1 -1
  8. package/dist/bin/commands/serve.js +3 -28
  9. package/dist/bin/commands/serve.js.map +1 -1
  10. package/dist/bin/commands/skill.js +9 -6
  11. package/dist/bin/commands/skill.js.map +1 -1
  12. package/dist/lib/mcp-sync.js +123 -31
  13. package/dist/lib/mcp-sync.js.map +1 -1
  14. package/{scripts → dist/scripts}/check-copilot-gap.js +24 -17
  15. package/dist/scripts/check-copilot-gap.js.map +1 -0
  16. package/{scripts/check-deps-offline.mjs → dist/scripts/check-deps-offline.js} +24 -20
  17. package/dist/scripts/check-deps-offline.js.map +1 -0
  18. package/dist/scripts/fresh-install-smoke.js +120 -0
  19. package/dist/scripts/fresh-install-smoke.js.map +1 -0
  20. package/{scripts/i18n-registry.py → dist/scripts/i18n-registry.js} +115 -122
  21. package/dist/scripts/i18n-registry.js.map +1 -0
  22. package/dist/server.js +34 -26
  23. package/dist/server.js.map +1 -1
  24. package/dist/src/cli/command-context.js +13 -3
  25. package/dist/src/cli/command-context.js.map +1 -1
  26. package/dist/src/prompt/builder.js +28 -1
  27. package/dist/src/prompt/builder.js.map +1 -1
  28. package/package.json +9 -5
  29. package/public/dist/bundle.js +72 -77
  30. package/public/dist/bundle.js.map +4 -4
  31. package/public/index.html +1 -3
  32. package/public/js/{api.js → api.ts} +18 -12
  33. package/public/js/{constants.js → constants.ts} +44 -24
  34. package/public/js/features/{appname.js → appname.ts} +13 -12
  35. package/public/js/features/{chat.js → chat.ts} +46 -37
  36. package/public/js/features/{employees.js → employees.ts} +67 -38
  37. package/public/js/features/heartbeat.ts +90 -0
  38. package/public/js/features/{i18n.js → i18n.ts} +20 -20
  39. package/public/js/features/memory.ts +125 -0
  40. package/public/js/features/{settings.js → settings.ts} +125 -93
  41. package/public/js/features/{sidebar.js → sidebar.ts} +15 -16
  42. package/public/js/features/{skills.js → skills.ts} +29 -16
  43. package/public/js/features/{slash-commands.js → slash-commands.ts} +34 -29
  44. package/public/js/features/{theme.js → theme.ts} +4 -4
  45. package/public/js/{locale.js → locale.ts} +3 -3
  46. package/public/js/main.ts +280 -0
  47. package/public/js/{render.js → render.ts} +34 -107
  48. package/public/js/state.ts +38 -0
  49. package/public/js/{ui.js → ui.ts} +60 -63
  50. package/public/js/{ws.js → ws.ts} +46 -20
  51. package/public/locales/en.json +1 -0
  52. package/public/locales/ko.json +1 -0
  53. package/scripts/check-copilot-gap.ts +75 -0
  54. package/scripts/check-deps-offline.ts +98 -0
  55. package/scripts/fresh-install-smoke.ts +130 -0
  56. package/scripts/i18n-registry.ts +230 -0
  57. package/scripts/postinstall-guard.cjs +5 -0
  58. package/dist/bin/cli-claw.js +0 -96
  59. package/dist/bin/cli-claw.js.map +0 -1
  60. package/public/js/features/heartbeat.js +0 -80
  61. package/public/js/features/memory.js +0 -85
  62. package/public/js/main.js +0 -278
  63. package/public/js/state.js +0 -16
package/README.ko.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *Claude, Codex, Gemini... 이제 번갈아 쓰지 마세요.*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-360%20pass-brightgreen)](#-테스트)
9
+ [![Tests](https://img.shields.io/badge/tests-383%20pass-brightgreen)](#-테스트)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -84,7 +84,7 @@ CLI-JAW는 내 컴퓨터에 상주하며 이미 익숙한 인터페이스인 **
84
84
  > 💬 *"이 모듈 리팩토링하고 테스트도 짜줘"* → 서브에이전트가 알아서, 커피 한 잔 하고 오면 돼요
85
85
  > 💬 *"저 PDF 다운받아서 핵심만 노션에 정리해"* → 브라우저 + 노션 스킬 조합으로 뚝딱
86
86
 
87
- 단일 모델만을 사용하는 기존 비서들과 달리, CLI-JAW는 5개의 AI 엔진(Claude, Codex, Gemini, OpenCode, Copilot)을 공식 CLI를 통해 오케스트레이션하여 모든 제공업체의 장점을 통합된 경험으로 제공합니다. 하나의 엔진 사용량이 초과되면 자동으로 다음 엔진으로 전환됩니다. 105개의 내장 스킬이 브라우저 자동화부터 문서 생성까지 모든 것을 처리합니다.
87
+ 단일 모델만을 사용하는 기존 비서들과 달리, CLI-JAW는 5개의 AI 엔진(Claude, Codex, Gemini, OpenCode, Copilot)을 공식 CLI를 통해 오케스트레이션하여 모든 제공업체의 장점을 통합된 경험으로 제공합니다. 하나의 엔진 사용량이 초과되면 자동으로 다음 엔진으로 전환됩니다. 107개의 내장 스킬이 브라우저 자동화부터 문서 생성까지 모든 것을 처리합니다.
88
88
 
89
89
  | | 왜 CLI-JAW인가요? |
90
90
  | --------------------------------------- | ----------------------------------------------------------------------------------------------------- |
@@ -92,7 +92,7 @@ CLI-JAW는 내 컴퓨터에 상주하며 이미 익숙한 인터페이스인 **
92
92
  | 🤖 **검증된 에이전트 도구** | 실전에서 검증된 5개의 코딩 에이전트(Claude, Codex, Gemini, OpenCode, Copilot)를 한 곳에서 사용하세요. |
93
93
  | ⚡ **멀티 에이전트 자동 전환(Fallback)** | 엔진 하나가 멈춰도 걱정 없습니다. 다음 엔진이 즉시 이어받아 중단 없는 작업이 가능합니다. |
94
94
  | 🎭 **오케스트레이션 기반 성능 극대화** | 복잡한 작업은 전문화된 서브 에이전트에게 분산시켜 처리량을 극대화합니다. |
95
- | 📦 **105개의 내장 스킬** | 브라우저 자동화, 문서 생성, 텔레그램 연동, 영구 메모리 등 설치 즉시 사용 가능한 기능들을 제공합니다. |
95
+ | 📦 **107개의 내장 스킬** | 브라우저 자동화, 문서 생성, 텔레그램 연동, 영구 메모리 등 설치 즉시 사용 가능한 기능들을 제공합니다. |
96
96
  | 🖥️ **크로스 플랫폼** | macOS, Linux, Windows (WSL) — 브라우저 실행, CLI 감지, 설치 모두 네이티브 지원. |
97
97
 
98
98
  ![CLI-JAW 터미널](docs/screenshots/terminal-cli.png)
@@ -119,7 +119,7 @@ graph LR
119
119
  - 🤖 **5개의 AI 엔진, 1명의 비서** — Claude · Codex · Gemini · OpenCode · Copilot. `/cli` 명령어로 전환하세요.
120
120
  - ⚡ **자동 전환(Fallback)** — 엔진 하나가 다운되면 다음 엔진이 매끄럽게 이어받습니다.
121
121
  - 🎭 **멀티 에이전트 오케스트레이션** — 복잡한 작업은 전문화된 서브 에이전트들에게 자동으로 분산됩니다.
122
- - 📦 **105개의 스킬** — 브라우저 제어, 파일 편집, 이미지 생성, 웹 검색 외 [다양한 기능](#-스킬-시스템).
122
+ - 📦 **107개의 스킬** — 브라우저 제어, 파일 편집, 이미지 생성, 웹 검색 외 [다양한 기능](#-스킬-시스템).
123
123
  - 🧠 **영구 메모리** — 세션을 넘나들며 과거의 대화와 사용자 선호도를 기억합니다.
124
124
  - 📱 **텔레그램 봇** — 휴대폰으로 비서와 채팅하고, 음성/사진/파일을 전송하세요.
125
125
  - 🌐 **브라우저 자동화** — 비서가 알아서 웹을 탐색하고, 클릭하고, 타이핑하고, 스크린샷을 찍을 수 있습니다.
@@ -142,7 +142,7 @@ jaw launchd # 부팅 시 자동 실행 (macOS)
142
142
 
143
143
  ## 📦 스킬 시스템
144
144
 
145
- **105개 스킬** 내장 — 브라우저, GitHub, 노션, 텔레그램, 메모리, PDF, 이미지 생성 등 [다양하게](#).
145
+ **107개 스킬** 내장 — 브라우저, GitHub, 노션, 텔레그램, 메모리, PDF, 이미지 생성 등 [다양하게](#).
146
146
 
147
147
  <details>
148
148
  <summary>전체 스킬 목록 보기</summary>
@@ -150,7 +150,7 @@ jaw launchd # 부팅 시 자동 실행 (macOS)
150
150
  | 티어 | 수량 | 작동 방식 |
151
151
  | ------------------ | :---: | ------------------------------------------------ |
152
152
  | **Active 스킬** | 17 | 매번 AI한테 자동으로 주입돼요. 항상 켜져 있어요. |
153
- | **Reference 스킬** | 89 | 관련 작업을 시키면 그때 AI가 읽어서 써요. |
153
+ | **Reference 스킬** | 90 | 관련 작업을 시키면 그때 AI가 읽어서 써요. |
154
154
 
155
155
  #### Active 스킬 (항상 켜짐)
156
156
 
@@ -170,7 +170,7 @@ jaw launchd # 부팅 시 자동 실행 (macOS)
170
170
 
171
171
  #### Reference 스킬 (필요할 때만)
172
172
 
173
- 89개 스킬이 더 있어요 — spotify, 날씨, 딥리서치, TTS, 비디오 다운로드, Apple 미리알림, 1Password, Terraform, PostgreSQL, Jupyter 등.
173
+ 90개 스킬이 더 있어요 — spotify, 날씨, 딥리서치, TTS, 비디오 다운로드, Apple 미리알림, 1Password, Terraform, PostgreSQL, Jupyter 등.
174
174
 
175
175
  ```bash
176
176
  jaw skill install <name> # reference → active로 영구 활성화
@@ -250,11 +250,11 @@ graph TD
250
250
 
251
251
  ---
252
252
 
253
- ## 🔌 MCP — 단일 설정, 5개의 AI 엔진
253
+ ## 🔌 MCP — 단일 설정, 6개의 AI 엔진
254
254
 
255
255
  ```bash
256
256
  jaw mcp install @anthropic/context7 # 한 번만 설치
257
- # → Claude, Codex, Gemini, OpenCode, Copilot 전부 자동 동기화
257
+ # → Claude, Codex, Gemini, OpenCode, Copilot, Antigravity 전부 자동 동기화
258
258
  ```
259
259
 
260
260
  ```mermaid
@@ -263,12 +263,13 @@ graph LR
263
263
  MJ -->|자동 동기화| CX["Codex"]
264
264
  MJ -->|자동 동기화| GM["Gemini"]
265
265
  MJ -->|자동 동기화| OC["OpenCode"]
266
- MJ -->|자동 동기화| CP["Copilot"]
266
+ MJ -->|자동 동기화| CP["코파일럿"]
267
+ MJ -->|자동 동기화| AG["안티그래비티"]
267
268
 
268
269
  style MJ fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
269
270
  ```
270
271
 
271
- 설정 파일 5개를 별도로 수정할 필요가 없습니다. 한 번만 설치하면 모든 AI 엔진에 적용됩니다.
272
+ 설정 파일 6개를 별도로 수정할 필요가 없습니다. 한 번만 설치하면 모든 AI 엔진에 적용됩니다.
272
273
 
273
274
  ---
274
275
 
@@ -282,15 +283,45 @@ jaw launchd unset # 자동 실행 해제
282
283
  jaw chat # 터미널 TUI
283
284
  jaw doctor # 진단 (12개 체크)
284
285
  jaw skill install <name> # 스킬 설치
285
- jaw mcp install <package> # MCP 설치 → 5개 CLI 전부 동기화
286
+ jaw mcp install <package> # MCP 설치 → 6개 CLI 전부 동기화
286
287
  jaw memory search <query> # 메모리 검색
287
288
  jaw browser start # Chrome 시작 (CDP)
288
289
  jaw browser vision-click "로그인" # AI가 알아서 클릭
290
+ jaw clone ~/my-project # 인스턴스 복제
291
+ jaw --home ~/my-project serve --port 3458 # 두 번째 인스턴스 실행
289
292
  jaw reset # 전체 초기화
290
293
  ```
291
294
 
292
295
  ---
293
296
 
297
+ ## 🏗️ 멀티 인스턴스 — 프로젝트별 독립 환경
298
+
299
+ CLI-JAW의 독립된 인스턴스를 여러 개 실행할 수 있어요 — 각각 고유한 설정, 메모리, 스킬, 데이터베이스를 가집니다.
300
+
301
+ ```bash
302
+ # 기본 인스턴스를 새 프로젝트로 복제
303
+ jaw clone ~/my-project
304
+
305
+ # 다른 포트로 실행
306
+ jaw --home ~/my-project serve --port 3458
307
+
308
+ # 또는 둘 다 부팅 시 자동 실행
309
+ jaw launchd # 기본 → 포트 3457
310
+ jaw --home ~/my-project launchd --port 3458 # 프로젝트 → 포트 3458
311
+ ```
312
+
313
+ 각 인스턴스는 완전히 독립적입니다 — 작업 디렉토리, 메모리, MCP 설정이 모두 다릅니다. 업무/개인 컨텍스트 분리나 프로젝트별 AI 설정에 안성맞춤이에요.
314
+
315
+ | 플래그 / 환경변수 | 기능 |
316
+ | --------------------- | ---------------------------------------- |
317
+ | `--home <경로>` | 이 실행에 사용할 커스텀 홈 디렉토리 지정 |
318
+ | `--home=<경로>` | 동일 (`=` 구문) |
319
+ | `CLI_JAW_HOME=<경로>` | 환경변수로 지정 |
320
+ | `jaw clone <대상>` | 현재 인스턴스를 새 디렉토리로 복제 |
321
+ | `--port <포트>` | `serve` / `launchd`용 커스텀 포트 |
322
+
323
+ ---
324
+
294
325
  ## 🤖 모델
295
326
 
296
327
  각 CLI마다 프리셋이 있지만, **아무 모델 ID나** 직접 쳐도 돼요.
@@ -355,7 +386,7 @@ src/
355
386
  ## 🧪 테스트
356
387
 
357
388
  <details>
358
- <summary>360 pass · 1 skipped · 외부 의존성 0</summary>
389
+ <summary>383 pass · 1 skipped · 외부 의존성 0</summary>
359
390
 
360
391
  ```bash
361
392
  npm test
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *One assistant. Five brains. Always on.*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-360%20pass-brightgreen)](#-tests)
9
+ [![Tests](https://img.shields.io/badge/tests-383%20pass-brightgreen)](#-tests)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -85,7 +85,7 @@ CLI-JAW is a **personal AI assistant** that lives on your machine and works from
85
85
  > 💬 *"Refactor this module and write tests"* → sub-agents handle it while you grab coffee
86
86
  > 💬 *"Download that PDF and put the key points in Notion"* → browser + Notion skill, done
87
87
 
88
- 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. 105 built-in skills handle everything from browser automation to document generation.
88
+ 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.
89
89
 
90
90
  | | Why CLI-JAW? |
91
91
  | ------------------------------ | ------------------------------------------------------------------------------------------- |
@@ -93,7 +93,7 @@ Unlike single-model assistants, CLI-JAW orchestrates **5 AI engines** (Claude, C
93
93
  | 🤖 **Verified Agent Tools** | 5 battle-tested coding agents (Claude, Codex, Gemini, OpenCode, Copilot) under one roof. |
94
94
  | ⚡ **Multi-Agent Fallback** | One engine down? The next picks up automatically. Zero downtime. |
95
95
  | 🎭 **Orchestrated Performance** | Complex tasks split across specialized sub-agents for maximum throughput. |
96
- | 📦 **105 Built-in Skills** | Browser automation, document generation, Telegram, memory — ready out of the box. |
96
+ | 📦 **107 Built-in Skills** | Browser automation, document generation, Telegram, memory — ready out of the box. |
97
97
  | 🖥️ **Cross-Platform** | macOS, Linux, Windows (WSL) — browser launch, CLI detection, and install all work natively. |
98
98
 
99
99
  ![CLI-JAW Terminal](docs/screenshots/terminal-cli.png)
@@ -120,7 +120,7 @@ graph LR
120
120
  - 🤖 **5 AI engines, 1 assistant** — Claude · Codex · Gemini · OpenCode · Copilot. Switch with `/cli`.
121
121
  - ⚡ **Auto fallback** — If one engine is down, the next picks up seamlessly.
122
122
  - 🎭 **Multi-agent orchestration** — Complex tasks get split across specialized sub-agents automatically.
123
- - 📦 **105 skills** — Browser control, file editing, image generation, web search, and [much more](#-skill-system).
123
+ - 📦 **107 skills** — Browser control, file editing, image generation, web search, and [much more](#-skill-system).
124
124
  - 🧠 **Persistent memory** — Your assistant remembers past conversations and preferences across sessions.
125
125
  - 📱 **Telegram bot** — Chat with your assistant from your phone, send voice/photos/files.
126
126
  - 🌐 **Browser automation** — Your assistant can navigate the web, click, type, and screenshot.
@@ -133,7 +133,7 @@ graph LR
133
133
 
134
134
  ## 📦 Skill System
135
135
 
136
- **105 skills** out of the box — browser, github, notion, telegram, memory, pdf, image generation, and [much more](#).
136
+ **107 skills** out of the box — browser, github, notion, telegram, memory, pdf, image generation, and [much more](#).
137
137
 
138
138
  <details>
139
139
  <summary>View all skills</summary>
@@ -141,7 +141,7 @@ graph LR
141
141
  | Tier | Count | How it works |
142
142
  | -------------------- | :---: | --------------------------------------------------------- |
143
143
  | **Active Skills** | 17 | Auto-injected into every AI prompt. Always available. |
144
- | **Reference Skills** | 89 | AI reads them on-demand when you ask for a relevant task. |
144
+ | **Reference Skills** | 90 | AI reads them on-demand when you ask for a relevant task. |
145
145
 
146
146
  #### Active Skills (always on)
147
147
 
@@ -161,7 +161,7 @@ graph LR
161
161
 
162
162
  #### Reference Skills (on-demand)
163
163
 
164
- 84 more skills ready to use — spotify, weather, deep-research, tts, video-downloader, apple-reminders, 1password, terraform, postgres, jupyter-notebook, sentry, whatsapp, and more.
164
+ 90 more skills ready to use — spotify, weather, deep-research, tts, video-downloader, apple-reminders, 1password, terraform, postgres, jupyter-notebook, sentry, whatsapp, and more.
165
165
 
166
166
  ```bash
167
167
  jaw skill install <name> # Activate a reference skill permanently
@@ -241,11 +241,11 @@ Your assistant **decides by itself** whether a task needs orchestration or a dir
241
241
 
242
242
  ---
243
243
 
244
- ## 🔌 MCP — One Config, Five AI Engines
244
+ ## 🔌 MCP — One Config, Six AI Engines
245
245
 
246
246
  ```bash
247
247
  jaw mcp install @anthropic/context7 # Install once
248
- # → Automatically syncs to Claude, Codex, Gemini, OpenCode, Copilot
248
+ # → Automatically syncs to Claude, Codex, Gemini, OpenCode, Copilot, Antigravity
249
249
  ```
250
250
 
251
251
  ```mermaid
@@ -255,6 +255,7 @@ graph LR
255
255
  MJ -->|auto-sync| GM["Gemini"]
256
256
  MJ -->|auto-sync| OC["OpenCode"]
257
257
  MJ -->|auto-sync| CP["Copilot"]
258
+ MJ -->|auto-sync| AG["Antigravity"]
258
259
 
259
260
  style MJ fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
260
261
  ```
@@ -270,7 +271,7 @@ jaw serve # Start server
270
271
  jaw chat # Terminal TUI
271
272
  jaw doctor # Diagnostics (12 checks)
272
273
  jaw skill install <name> # Install a skill
273
- jaw mcp install <package> # Install MCP → syncs to all 5 CLIs
274
+ jaw mcp install <package> # Install MCP → syncs to all 6 CLIs
274
275
  jaw memory search <query> # Search memory
275
276
  jaw browser start # Launch Chrome (CDP)
276
277
  jaw browser vision-click "Login" # AI-powered click
@@ -377,7 +378,7 @@ src/
377
378
  ## 🧪 Tests
378
379
 
379
380
  <details>
380
- <summary>360 pass · 1 skipped · zero external dependencies</summary>
381
+ <summary>383 pass · 1 skipped · zero external dependencies</summary>
381
382
 
382
383
  ```bash
383
384
  npm test
package/README.zh-CN.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *Claude、Codex、Gemini... 从此告别来回切换。*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-360%20pass-brightgreen)](#-测试)
9
+ [![Tests](https://img.shields.io/badge/tests-383%20pass-brightgreen)](#-测试)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -84,7 +84,7 @@ CLI-JAW 是驻留在您本地机器上的**专属 AI 助手**,并在您熟悉
84
84
  > 💬 *"重构这个模块,顺便写好测试"* → 子 Agent 搞定,你喝杯咖啡回来就行
85
85
  > 💬 *"把那个 PDF 下载下来,关键信息放到 Notion 里"* → 浏览器 + Notion 技能组合,搞定
86
86
 
87
- 与单一模型的助手不同,CLI-JAW 通过官方 CLI 命令行工具对 **5 大 AI 引擎**(Claude、Codex、Gemini、OpenCode、Copilot)进行编排 — 为您提供各大供应商最优势的能力及统一的体验。当一个引擎处于繁忙状态时,它会自动无缝切换至下一个。105 个内置技能可处理从浏览器自动化到文档生成的所有事务。
87
+ 与单一模型的助手不同,CLI-JAW 通过官方 CLI 命令行工具对 **5 大 AI 引擎**(Claude、Codex、Gemini、OpenCode、Copilot)进行编排 — 为您提供各大供应商最优势的能力及统一的体验。当一个引擎处于繁忙状态时,它会自动无缝切换至下一个。107 个内置技能可处理从浏览器自动化到文档生成的所有事务。
88
88
 
89
89
  | | 为什么选择 CLI-JAW? |
90
90
  | ------------------------------- | -------------------------------------------------------------------------- |
@@ -92,7 +92,7 @@ CLI-JAW 是驻留在您本地机器上的**专属 AI 助手**,并在您熟悉
92
92
  | 🤖 **经过验证的智能体工具** | 5 大实战级编码智能体(Claude、Codex、Gemini、OpenCode、Copilot)集于一身。 |
93
93
  | ⚡ **多模型自动回退 (Fallback)** | 单一引擎发生故障?下一个立即接管。确保零停机。 |
94
94
  | 🎭 **基于编排的性能优化** | 复杂的任务会被拆分给专业的子智能体,以实现效率最大化。 |
95
- | 📦 **105 个内置技能** | 浏览器自动化、文档生成、Telegram 通知、持久化记忆 — 开箱即用。 |
95
+ | 📦 **107 个内置技能** | 浏览器自动化、文档生成、Telegram 通知、持久化记忆 — 开箱即用。 |
96
96
  | 🖥️ **跨平台支持** | macOS、Linux、Windows (WSL) — 浏览器启动、CLI 检测、安装均原生支持。 |
97
97
 
98
98
  ![CLI-JAW 终端](docs/screenshots/terminal-cli.png)
@@ -119,7 +119,7 @@ graph LR
119
119
  - 🤖 **5 大 AI 引擎,1 个专属助手** — Claude · Codex · Gemini · OpenCode · Copilot。使用 `/cli` 命令一键切换。
120
120
  - ⚡ **自动回退 (Fallback)** — 即使一个引擎出现故障,下一个也会无缝接管。
121
121
  - 🎭 **多智能体编排** — 复杂任务会自动拆分给专业的子智能体并行处理。
122
- - 📦 **105 个技能** — 浏览器控制、文件编辑、图片生成、网页搜索以及[更多功能](#-技能系统)。
122
+ - 📦 **107 个技能** — 浏览器控制、文件编辑、图片生成、网页搜索以及[更多功能](#-技能系统)。
123
123
  - 🧠 **持久化记忆** — 跨越不同会话,记住您过往的对话和偏好设定。
124
124
  - 📱 **Telegram 机器人** — 通过手机即可与您的助手聊天、发送语音/图片/文件。
125
125
  - 🌐 **浏览器自动化** — 您的助手能够自动导航网页、点击、打字并进行截图。
@@ -142,7 +142,7 @@ jaw launchd # 开机自动启动 (macOS)
142
142
 
143
143
  ## 📦 技能系统
144
144
 
145
- **105 个技能**开箱即用 — 浏览器、GitHub、Notion、Telegram、记忆、PDF、图片生成等[应有尽有](#)。
145
+ **107 个技能**开箱即用 — 浏览器、GitHub、Notion、Telegram、记忆、PDF、图片生成等[应有尽有](#)。
146
146
 
147
147
  <details>
148
148
  <summary>查看全部技能</summary>
@@ -150,7 +150,7 @@ jaw launchd # 开机自动启动 (macOS)
150
150
  | 层级 | 数量 | 工作方式 |
151
151
  | ------------ | :---: | ---------------------------------- |
152
152
  | **活跃技能** | 17 | 每次对话自动加载,随时可用。 |
153
- | **参考技能** | 89 | 用到的时候 AI 自己去读,按需调用。 |
153
+ | **参考技能** | 90 | 用到的时候 AI 自己去读,按需调用。 |
154
154
 
155
155
  #### 活跃技能(常驻)
156
156
 
@@ -170,7 +170,7 @@ jaw launchd # 开机自动启动 (macOS)
170
170
 
171
171
  #### 参考技能(按需调用)
172
172
 
173
- 84 个技能随时待命 — Spotify、天气、深度研究、TTS、视频下载、Apple 提醒事项、1Password、Terraform、PostgreSQL、Jupyter 等。
173
+ 90 个技能随时待命 — Spotify、天气、深度研究、TTS、视频下载、Apple 提醒事项、1Password、Terraform、PostgreSQL、Jupyter 等。
174
174
 
175
175
  ```bash
176
176
  jaw skill install <name> # 参考 → 活跃,永久激活
@@ -250,11 +250,11 @@ graph TD
250
250
 
251
251
  ---
252
252
 
253
- ## 🔌 MCP — 单次配置,驱动 5 大 AI 引擎
253
+ ## 🔌 MCP — 单次配置,驱动 6 大 AI 引擎
254
254
 
255
255
  ```bash
256
256
  jaw mcp install @anthropic/context7 # 安装一次
257
- # → 自动同步到 Claude、Codex、Gemini、OpenCode、Copilot
257
+ # → 自动同步到 Claude、Codex、Gemini、OpenCode、Copilot、Antigravity
258
258
  ```
259
259
 
260
260
  ```mermaid
@@ -264,11 +264,12 @@ graph LR
264
264
  MJ -->|自动同步| GM["Gemini"]
265
265
  MJ -->|自动同步| OC["OpenCode"]
266
266
  MJ -->|自动同步| CP["Copilot"]
267
+ MJ -->|自动同步| AG["Antigravity"]
267
268
 
268
269
  style MJ fill:#f5e6d3,stroke:#d4a574,stroke-width:2px,color:#5c4033
269
270
  ```
270
271
 
271
- 只需告别编辑 5 份不同配置文件的繁琐流程。单次安装,所有 AI 引擎立刻生效。
272
+ 只需告别编辑 6 份不同配置文件的繁琐流程。单次安装,所有 AI 引擎立刻生效。
272
273
 
273
274
  ---
274
275
 
@@ -282,15 +283,45 @@ jaw launchd unset # 取消自动启动
282
283
  jaw chat # 终端 TUI
283
284
  jaw doctor # 诊断(12 项检查)
284
285
  jaw skill install <name> # 安装技能
285
- jaw mcp install <package> # 安装 MCP → 同步全部 5 CLI
286
+ jaw mcp install <package> # 安装 MCP → 同步全部 6 CLI
286
287
  jaw memory search <query> # 搜索记忆
287
288
  jaw browser start # 启动 Chrome(CDP)
288
289
  jaw browser vision-click "登录" # AI 智能点击
290
+ jaw clone ~/my-project # 实例克隆
291
+ jaw --home ~/my-project serve --port 3458 # 运行第二个实例
289
292
  jaw reset # 全面重置
290
293
  ```
291
294
 
292
295
  ---
293
296
 
297
+ ## 🏗️ 多实例 — 项目级别的独立环境
298
+
299
+ 可以同时运行多个独立的 CLI-JAW 实例 — 每个都有自己的设置、记忆、技能和数据库。
300
+
301
+ ```bash
302
+ # 将默认实例克隆到新项目
303
+ jaw clone ~/my-project
304
+
305
+ # 在不同端口运行
306
+ jaw --home ~/my-project serve --port 3458
307
+
308
+ # 或者两个都设置开机自启
309
+ jaw launchd # 默认 → 端口 3457
310
+ jaw --home ~/my-project launchd --port 3458 # 项目 → 端口 3458
311
+ ```
312
+
313
+ 每个实例完全独立 — 工作目录、记忆、MCP 配置各不相同。非常适合工作/个人环境分离或按项目配置 AI。
314
+
315
+ | 参数 / 环境变量 | 功能 |
316
+ | --------------------- | ------------------------------------ |
317
+ | `--home <路径>` | 指定本次运行使用的自定义主目录 |
318
+ | `--home=<路径>` | 同上(`=` 语法) |
319
+ | `CLI_JAW_HOME=<路径>` | 通过环境变量指定 |
320
+ | `jaw clone <目标>` | 将当前实例克隆到新目录 |
321
+ | `--port <端口>` | `serve` / `launchd` 自定义端口 |
322
+
323
+ ---
324
+
294
325
  ## 🤖 模型
295
326
 
296
327
  每个 CLI 都有预设快捷选项,但你也可以直接输 **任意模型 ID**。
@@ -355,7 +386,7 @@ src/
355
386
  ## 🧪 测试
356
387
 
357
388
  <details>
358
- <summary>360 pass · 1 skipped · 零外部依赖</summary>
389
+ <summary>383 pass · 1 skipped · 零外部依赖</summary>
359
390
 
360
391
  ```bash
361
392
  npm test
@@ -36,6 +36,13 @@ function isWSL() {
36
36
  return false;
37
37
  }
38
38
  }
39
+ function hasWslWindowsChrome() {
40
+ const paths = [
41
+ '/mnt/c/Program Files/Google/Chrome/Application/chrome.exe',
42
+ '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',
43
+ ];
44
+ return paths.some(p => fs.existsSync(p));
45
+ }
39
46
  function check(name, fn) {
40
47
  try {
41
48
  const detail = fn();
@@ -137,8 +144,12 @@ if (process.platform === 'linux') {
137
144
  return `Wayland (${process.env.WAYLAND_DISPLAY})`;
138
145
  if (process.env.DISPLAY)
139
146
  return `X11 (${process.env.DISPLAY})`;
140
- if (isWSL())
141
- throw new Error('WARN: no DISPLAY in WSL — enable WSLg or set DISPLAY to an X server');
147
+ if (isWSL()) {
148
+ if (hasWslWindowsChrome()) {
149
+ return 'WSL (no DISPLAY; Windows Chrome path detected via /mnt/c)';
150
+ }
151
+ throw new Error('WARN: no DISPLAY in WSL — enable WSLg/set DISPLAY, or install Windows Chrome for /mnt/c fallback');
152
+ }
142
153
  throw new Error('WARN: no DISPLAY — browser skill needs X11/Wayland');
143
154
  });
144
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../bin/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../bin/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Usage:
6
6
  * cli-jaw mcp # list servers
7
7
  * cli-jaw mcp install <pkg> # install npm/pypi package + add to mcp.json + sync
8
- * cli-jaw mcp sync # sync mcp.json → 4 CLI configs
8
+ * cli-jaw mcp sync # sync mcp.json → 6 CLI configs
9
9
  * cli-jaw mcp reset [--force] # reset mcp.json to defaults + re-sync
10
10
  *
11
11
  * Package detection:
@@ -40,16 +40,6 @@ function findBinaryPath(name) {
40
40
  return null;
41
41
  }
42
42
  }
43
- /** Read workingDir from settings.json for syncToAll() */
44
- function getWorkingDir() {
45
- try {
46
- const settingsPath = join(JAW_HOME, 'settings.json');
47
- return JSON.parse(readFileSync(settingsPath, 'utf8')).workingDir || JAW_HOME;
48
- }
49
- catch {
50
- return JAW_HOME;
51
- }
52
- }
53
43
  // Known PyPI MCP packages (auto-detect without --pypi flag)
54
44
  const PYPI_PATTERNS = [
55
45
  /^mcp-server-/, // mcp-server-fetch, mcp-server-git, etc.
@@ -128,8 +118,8 @@ switch (sub) {
128
118
  };
129
119
  saveUnifiedMcp(config);
130
120
  console.log(` ${c.green}✅ Added to mcp.json:${c.reset} ${serverName}`);
131
- // Sync to all 4 CLIs
132
- syncToAll(config, getWorkingDir());
121
+ // Sync to all 6 CLIs
122
+ syncToAll(config);
133
123
  console.log(`\n ${c.green}Done!${c.reset} Server "${serverName}" ready for all CLIs.\n`);
134
124
  }
135
125
  catch (e) {
@@ -141,7 +131,7 @@ switch (sub) {
141
131
  case 'sync': {
142
132
  const config = loadUnifiedMcp();
143
133
  console.log(`\n ${c.bold}Syncing MCP config → all CLIs${c.reset}\n`);
144
- syncToAll(config, getWorkingDir());
134
+ syncToAll(config);
145
135
  console.log('');
146
136
  break;
147
137
  }
@@ -152,7 +142,7 @@ switch (sub) {
152
142
  const rl = createInterface({ input: process.stdin, output: process.stdout });
153
143
  const answer = await new Promise(r => {
154
144
  rl.question(`\n ${c.yellow}⚠️ MCP 설정을 초기화합니다.${c.reset}\n` +
155
- ` ~/.cli-jaw/mcp.json이 재생성되고 4개 CLI에 재동기화됩니다.\n` +
145
+ ` ~/.cli-jaw/mcp.json이 재생성되고 6개 CLI에 재동기화됩니다.\n` +
156
146
  ` 계속하시겠습니까? (y/N): `, r);
157
147
  });
158
148
  rl.close();
@@ -169,10 +159,17 @@ switch (sub) {
169
159
  console.log(` ${c.dim}✓ deleted ${mcpPath}${c.reset}`);
170
160
  }
171
161
  // 2. Re-init (import from workingDir/.mcp.json + DEFAULT_MCP_SERVERS merge)
172
- const workingDir = getWorkingDir();
162
+ let workingDir;
163
+ try {
164
+ const settingsPath = join(JAW_HOME, 'settings.json');
165
+ workingDir = JSON.parse(readFileSync(settingsPath, 'utf8')).workingDir || JAW_HOME;
166
+ }
167
+ catch {
168
+ workingDir = JAW_HOME;
169
+ }
173
170
  const config = initMcpConfig(workingDir);
174
171
  // 3. Re-sync to all CLIs
175
- const results = syncToAll(config, workingDir);
172
+ const results = syncToAll(config);
176
173
  const count = Object.keys(config.servers || {}).length;
177
174
  console.log(`\n ${c.green}✅ 초기화 완료!${c.reset} (${count}개 서버)`);
178
175
  for (const [target, ok] of Object.entries(results)) {
@@ -199,7 +196,7 @@ switch (sub) {
199
196
  }
200
197
  }
201
198
  console.log(`\n ${c.dim}cli-jaw mcp install <pkg> — 새 MCP 서버 설치${c.reset}`);
202
- console.log(` ${c.dim}cli-jaw mcp sync — 4개 CLI에 동기화${c.reset}`);
199
+ console.log(` ${c.dim}cli-jaw mcp sync — 6개 CLI에 동기화${c.reset}`);
203
200
  console.log(` ${c.dim}cli-jaw mcp reset — 설정 초기화 + 재동기화${c.reset}\n`);
204
201
  break;
205
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../bin/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../bin/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ import { spawn } from 'node:child_process';
6
6
  import { parseArgs } from 'node:util';
7
7
  import { dirname, join } from 'node:path';
8
8
  import { fileURLToPath } from 'node:url';
9
- import { getServerUrl } from '../../src/core/config.js';
10
9
  import fs from 'node:fs';
11
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
12
11
  const projectRoot = join(__dirname, '..', '..');
@@ -15,7 +14,7 @@ const { values } = parseArgs({
15
14
  options: {
16
15
  port: { type: 'string', default: process.env.PORT || '3457' },
17
16
  host: { type: 'string', default: '0.0.0.0' },
18
- open: { type: 'boolean', default: false },
17
+ open: { type: 'boolean', default: true },
19
18
  },
20
19
  strict: false,
21
20
  });
@@ -34,7 +33,7 @@ if (isDistMode) {
34
33
  nodeArgs.unshift(`--env-file=${envFile}`);
35
34
  child = spawn(process.execPath, [...nodeArgs, serverPath], {
36
35
  stdio: 'inherit',
37
- env: { ...process.env, PORT: values.port, HOST: values.host },
36
+ env: { ...process.env, PORT: values.port, HOST: values.host, ...(values.open ? { JAW_OPEN_BROWSER: '1' } : {}) },
38
37
  });
39
38
  }
40
39
  else {
@@ -47,7 +46,7 @@ else {
47
46
  tsxArgs.push(serverPath);
48
47
  child = spawn(tsxBin, tsxArgs, {
49
48
  stdio: 'inherit',
50
- env: { ...process.env, PORT: values.port, HOST: values.host },
49
+ env: { ...process.env, PORT: values.port, HOST: values.host, ...(values.open ? { JAW_OPEN_BROWSER: '1' } : {}) },
51
50
  });
52
51
  }
53
52
  // Forward signals
@@ -63,28 +62,4 @@ child.on('error', (err) => {
63
62
  console.error(` ❌ Failed to start server: ${err.message}`);
64
63
  process.exit(1);
65
64
  });
66
- function openUrl(url) {
67
- try {
68
- const cmd = process.platform === 'darwin' ? 'open'
69
- : process.platform === 'win32' ? 'cmd'
70
- : 'xdg-open';
71
- const args = process.platform === 'win32'
72
- ? ['/c', 'start', '', url]
73
- : [url];
74
- const opener = spawn(cmd, args, { detached: true, stdio: 'ignore' });
75
- opener.on('error', () => {
76
- console.log(' ⚠️ Could not open browser');
77
- });
78
- opener.unref();
79
- }
80
- catch {
81
- console.log(' ⚠️ Could not open browser');
82
- }
83
- }
84
- // --open: open browser after a short delay
85
- if (values.open) {
86
- setTimeout(() => {
87
- openUrl(getServerUrl(values.port));
88
- }, 2000);
89
- }
90
65
  //# sourceMappingURL=serve.js.map