https://github.com/lidge-jun/cli-jaw
๐ฆ 2-line install personal AI assistant. 5 engines (Claude, Codex, Gemini, OpenCode, Copilot), 108 skills, zero ban risk.
https://github.com/lidge-jun/cli-jaw
ai assistant automation claude cli codex copilot gemini mcp multi-agent opencode orchestrator telegram-bot typescript
Last synced: about 1 month ago
JSON representation
๐ฆ 2-line install personal AI assistant. 5 engines (Claude, Codex, Gemini, OpenCode, Copilot), 108 skills, zero ban risk.
- Host: GitHub
- URL: https://github.com/lidge-jun/cli-jaw
- Owner: lidge-jun
- License: mit
- Created: 2026-02-25T00:18:14.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-04-15T06:29:25.000Z (about 2 months ago)
- Last Synced: 2026-04-15T06:33:58.131Z (about 2 months ago)
- Topics: ai, assistant, automation, claude, cli, codex, copilot, gemini, mcp, multi-agent, opencode, orchestrator, telegram-bot, typescript
- Language: TypeScript
- Homepage: https://lidge-jun.github.io/cli-jaw/
- Size: 29 MB
- Stars: 66
- Watchers: 0
- Forks: 7
- Open Issues: 16
-
Metadata Files:
- Readme: README.ko.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Audit: audit_test_output.txt
- Agents: AGENTS.md
Awesome Lists containing this project
README
# CLI-JAW
### ์ด๋ฏธ ๊ฒฐ์ ํ AI ๊ตฌ๋
, ํ๋์ ๋น์๋ก.
[](https://npmjs.com/package/cli-jaw)
[](https://typescriptlang.org)
[](https://nodejs.org)
[](LICENSE)
[](#-docker)
[English](README.md) / **ํ๊ตญ์ด** / [ไธญๆ](README.zh-CN.md)
๊ธฐ์กด ๊ตฌ๋
์ ๊ทธ๋๋ก ํ์ฉClaude Max, ChatGPT Pro, Copilot, Gemini Advanced โ OAuth ๋ผ์ฐํ
. OpenCode๋ก ์๋ฌด ๋ชจ๋ธ์ด๋ ์ถ๊ฐ ๊ฐ๋ฅ. ํ ํฐ ๊ณผ๊ธ ์์.
์ด๋์๋ ์ ๊ทผ์น PWA(๊ฐ์ ์คํฌ๋กค, WS ์คํธ๋ฆฌ๋ฐ) + Mac WebView ์ฑ + ํฐ๋ฏธ๋ TUI + Telegram(์์ฑ) + Discord โ 5๊ฐ ์ธํฐํ์ด์ค, ํ๋์ ๋ํ.
3๊ณ์ธต ๋ฉ๋ชจ๋ฆฌHistory Block(์ต๊ทผ ์ธ์
) + Memory Flush(์ํผ์๋, ์ผ์ผ ๋ก๊ทธ) + Soul & Task Snapshot(์ ์ฒด์ฑ, ์๋งจํฑ ๊ฒ์). SQLite FTS5 ์ ๋ฌธ ๊ฒ์.
๋ฉํฐ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์
PABCD โ DB ๊ธฐ๋ฐ 5๋จ๊ณ FSM. Employee ์์คํ
๊ณผ Worker ๋ ์ง์คํธ๋ฆฌ. ํ์ผ ์ถฉ๋ ๊ฐ์ง ๋ณ๋ ฌ ์คํ. ๋ชจ๋ ๋จ๊ณ์์ ์ฌ์ฉ์ ์น์ธ ํ์.
๋ธ๋ผ์ฐ์ ๋ฐ ๋ฐ์คํฌํฑ ์๋ํChrome CDP, vision-click, ChatGPT/Grok/Gemini DOM ๋ ํผ๋ฐ์ค, Codex App Computer Use ํตํฉ, diagram ์คํฌ๋ก SVG/์ธํฐ๋ํฐ๋ธ ์๊ฐํ.
MCP ํ ๋ฒ ์ค์น, 5๊ฐ ์์งjaw mcp install๋ก Claude, Codex, Gemini, OpenCode, Copilot์ ๋์ ๋๊ธฐํ. ์ค์ ํ์ผ ํ๋.
ํ๊ตญ์ด ์ง์ํ๊ตญ์ด/์์ด/์ค๊ตญ์ด README. i18n ์น UI. OfficeCLI๋ฅผ ํตํ HWP/HWPX ํ๊ธ ๋ฌธ์ ์ง์.
---
## ๋น ๋ฅธ ๋งํฌ
- [์ค์น](#-์ค์น--์คํ) ยท [์ธ์ฆ](#-์ธ์ฆ) ยท [์ธํฐํ์ด์ค](#๏ธ-์ด๋์-์ฐ๋)
- [์์ง ๋ผ์ฐํ
](#-์์ง-๋ผ์ฐํ
) ยท [๋ฉ๋ชจ๋ฆฌ](#-๋ฉ๋ชจ๋ฆฌ) ยท [PABCD](#-์ค์ผ์คํธ๋ ์ด์
--pabcd) ยท [์คํฌ](#-์คํฌ)
- [๋ธ๋ผ์ฐ์ ์๋ํ](#-๋ธ๋ผ์ฐ์ --๋ฐ์คํฌํฑ-์๋ํ) ยท [MCP](#-mcp) ยท [๋ฉ์์ง](#-๋ฉ์์ง)
- [CLI ๋ช
๋ น์ด](#๏ธ-cli-๋ช
๋ น์ด) ยท [Docker](#-docker) ยท [๋ฌธ์](#-๋ฌธ์) ยท [๋น๊ต](#๏ธ-๋น๊ต)
---
## ๐ ์ค์น & ์คํ
```bash
npm install -g cli-jaw
jaw serve
```
**http://localhost:3457**์ ์ด๋ฉด ๋. Node.js 22+ ๋ฐ ์๋ AI CLI ์ค ํ๋ ์ด์ ์ธ์ฆ ํ์.
> `jaw service install` โ ๋ถํ
์ ์๋ ์์ (systemd, launchd, Docker ์๋ ๊ฐ์ง).
---
## ๐ ์ธ์ฆ
ํ๋๋ง ์์ด๋ ๋ฉ๋๋ค. ์ด๋ฏธ ๊ตฌ๋
์ค์ธ ๊ฒ์ ์ ํํ์ธ์:
```bash
# ๋ฌด๋ฃ
copilot login # GitHub Copilot
opencode # OpenCode โ ๋ฌด๋ฃ ๋ชจ๋ธ ์ ๊ณต
# ์ ๋ฃ (์์ ์ก)
claude auth # Anthropic Claude Max
codex login # OpenAI ChatGPT Pro
gemini # Google Gemini Advanced
```
์ํ ํ์ธ: `jaw doctor`
---
## ๐ฅ๏ธ ์ด๋์ ์ฐ๋
5๊ฐ ์ธํฐํ์ด์ค์์ ๋์ผํ ๋น์, ๋์ผํ ๋ฉ๋ชจ๋ฆฌ, ๋์ผํ ์คํฌ์ ์ฌ์ฉํฉ๋๋ค.
| ์ธํฐํ์ด์ค | ๊ธฐ๋ฅ |
|---|---|
| **์น PWA** | markdown/KaTeX/Mermaid ๋ ๋๋ง, ๊ฐ์ ์คํฌ๋กค, WS ์คํธ๋ฆฌ๋ฐ, ํ์ผ ๋๋๊ทธ์ค๋๋กญ, ์์ฑ ๋
น์, PABCD ๋ก๋๋งต ๋ฐ, i18n(ํ๊ตญ์ด/์์ด), ๋คํฌ/๋ผ์ดํธ ํ
๋ง, IndexedDB ์คํ๋ผ์ธ ์บ์ |
| **Mac WebView ์ฑ** | `jaw serve`๋ฅผ macOS ์ฑ ์
ธ๋ก ๊ฐ์ผ ๊ฒ. ๋ธ๋ผ์ฐ์ ์์ด Dock์์ ๋ฐ๋ก ์ ๊ทผ |
| **ํฐ๋ฏธ๋ TUI** | ๋ฉํฐ๋ผ์ธ ํธ์ง, ์ฌ๋์ ๋ช
๋ น์ด ์๋์์ฑ, ์ค๋ฒ๋ ์ด ์
๋ ํฐ, ์ธ์
์ ์ง, ์ฌ๊ฐ ๋ถ๋ฅ |
| **Telegram** | ์์ฑ ๋ฉ์์ง(๋ฉํฐ STT ํ๋ก๋ฐ์ด๋), ์ฌ์ง, ํ์ผ. ์์ฝ ์์
๊ฒฐ๊ณผ ์๋ ์ ์ก. `/cli`, `/model` ๋ฑ ์ฌ๋์ ๋ช
๋ น์ด |
| **Discord** | ํ
์คํธ/ํ์ผ ๋ฉ์์ง, ๋ช
๋ น์ด ๋๊ธฐํ, ์ฑ๋/์ค๋ ๋ ๋ผ์ฐํ
, ์์ด์ ํธ ๊ฒฐ๊ณผ ํฌ์๋ |
---
## ๐ ์์ง ๋ผ์ฐํ
์ด๋ฏธ ๊ฒฐ์ ์ค์ธ OAuth ์์ ์ก์ ํตํด 5๊ฐ CLI ๋ฐฑ์๋๋ฅผ ๋ผ์ฐํ
ํฉ๋๋ค. ํ ํฐ ๋จ์ ๊ณผ๊ธ ์์.
| CLI | ๊ธฐ๋ณธ ๋ชจ๋ธ | ์ธ์ฆ | ๋น์ฉ |
|---|---|---|---|
| **Claude** | `opus-4-6` | `claude auth` | Claude Max ๊ตฌ๋
|
| **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro ๊ตฌ๋
|
| **Gemini** | `gemini-3.1-pro-preview` | `gemini` | Gemini Advanced ๊ตฌ๋
|
| **OpenCode** | `minimax-m2.7` | `opencode` | ๋ฌด๋ฃ ๋ชจ๋ธ ์ ๊ณต |
| **Copilot** | `gpt-5-mini` | `copilot login` | ๋ฌด๋ฃ ํฐ์ด ์ ๊ณต |
**ํด๋ฐฑ ์ฒด์ธ**: ํ๋๊ฐ ์ ํ๋๊ฑฐ๋ ๋ค์ด๋๋ฉด ๋ค์ ์์ง์ด ์๋์ผ๋ก ์ด์ด๋ฐ์. `/fallback [cli1 cli2...]`๋ก ์ค์ .
**OpenCode ์์ผ๋์นด๋**: OpenRouter, ๋ก์ปฌ LLM ๋ฑ ์๋ฌด ๋ชจ๋ธ ์๋ํฌ์ธํธ๋ ์ฐ๊ฒฐ ๊ฐ๋ฅ.
---
## ๐ง ๋ฉ๋ชจ๋ฆฌ
์๋ก ๋ค๋ฅธ ์๊ฐ ๋ฒ์๋ฅผ ๋ด๋นํ๋ 3๊ณ์ธต ๊ตฌ์กฐ.
| ๊ณ์ธต | ์ ์ฅ ๋ด์ฉ | ๋์ |
|---|---|---|
| **History Block** | ์ต๊ทผ ์ธ์
์ปจํ
์คํธ | ์ต๊ทผ 10๊ฐ ์ธ์
, ์ต๋ 8000์, ์์
๋๋ ํ ๋ฆฌ ๊ธฐ์ค. ํ๋กฌํํธ ์์ ์ฃผ์
|
| **Memory Flush** | ๋ํ์์ ์ถ์ถํ ๊ตฌ์กฐํ ์ง์ | ์๊ณ๊ฐ(๊ธฐ๋ณธ 10ํด) ๋๋ฌ ์ ํธ๋ฆฌ๊ฑฐ. ์ํผ์๋, ์ผ์ผ ๋ก๊ทธ(`YYYY-MM-DD.md`), ๋ผ์ด๋ธ ๋
ธํธ๋ก ์์ฝ |
| **Soul + Task Snapshot** | ์ ์ฒด์ฑ๊ณผ ์๋งจํฑ ๊ฒ์ | `soul.md`๋ก ํต์ฌ ๊ฐ์น/ํค/๊ฒฝ๊ณ ์ ์. FTS5 ์ธ๋ฑ์ค์์ ํ๋กฌํํธ๋น ์ต๋ 4๊ฐ ๊ด๋ จ ํํธ(700์) ๊ฒ์ |
์ธ ๊ณ์ธต ๋ชจ๋ ์์คํ
ํ๋กฌํํธ์ ์๋ ๋ฐ์. `jaw memory search ` ๋๋ `/memory `๋ก ๊ฒ์.
---
## ๐ญ ์ค์ผ์คํธ๋ ์ด์
โ PABCD
๋ณต์กํ ์์
์ ์ํ 5๋จ๊ณ ์ํ ๋จธ์ . ๋ชจ๋ ์ ํ์ ์ฌ์ฉ์ ์น์ธ ํ์.
```
P (Plan) โ A (Audit) โ B (Build) โ C (Check) โ D (Done) โ IDLE
โ โ โ ์๋ ์๋
```
| ๋จ๊ณ | ๋์ |
|---|---|
| **P** | Boss AI๊ฐ diff ์์ค ๊ณํ ์์ฑ. ๊ฒํ ๋ฅผ ์ํด ๋๊ธฐ |
| **A** | ์ฝ๊ธฐ ์ ์ฉ Worker๊ฐ ๊ณํ์ ์คํ ๊ฐ๋ฅ์ฑ ๊ฒ์ฆ |
| **B** | Boss๊ฐ ๊ตฌํ. ์ฝ๊ธฐ ์ ์ฉ Worker๊ฐ ๊ฒฐ๊ณผ ๊ฒ์ฆ |
| **C** | ํ์
์ฒดํฌ, ๋ฌธ์ ๊ฐฑ์ , ์ผ๊ด์ฑ ๊ฒ์ฌ |
| **D** | ์ ์ฒด ๋ณ๊ฒฝ ์์ฝ. IDLE๋ก ๋ณต๊ท |
์ํ๋ DB์ ์์ํ๋์ด ์๋ฒ ์ฌ์์์๋ ์ ์ง. Worker๋ ํ์ผ ์์ ๋ถ๊ฐ. `jaw orchestrate` ๋๋ `/pabcd`๋ก ํ์ฑํ.
---
## ๐ฆ ์คํฌ
100๊ฐ ์ด์์ ์คํฌ, ์ฉ๋๋ณ ์ ๋ฆฌ.
| ์นดํ
๊ณ ๋ฆฌ | ์คํฌ | ๊ธฐ๋ฅ |
|---|---|---|
| **์คํผ์ค** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | ๋ฌธ์ ์ฝ๊ธฐ/์์ฑ/ํธ์ง. OfficeCLI๋ฅผ ํตํ ํ๊ธ HWP/HWPX |
| **์๋ํ** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome CDP, AI ์ขํ ํด๋ฆญ, macOS ์คํฌ๋ฆฐ์ท/์นด๋ฉ๋ผ, Computer Use |
| **๋ฏธ๋์ด** | `video`, `imagegen`, `lecture-stt`, `tts` | Remotion ๋น๋์ค, OpenAI ์ด๋ฏธ์ง ์์ฑ, ๊ฐ์ ์ ์ฌ, ์์ฑ ํฉ์ฑ |
| **ํตํฉ** | `github`, `notion`, `telegram-send`, `memory` | ์ด์/PR/CI, Notion ํ์ด์ง, Telegram ๋ฏธ๋์ด, ์์ ๋ฉ๋ชจ๋ฆฌ |
| **์๊ฐํ** | `diagram` | SVG ๋ค์ด์ด๊ทธ๋จ, ์ฐจํธ, ์ธํฐ๋ํฐ๋ธ ์๊ฐํ๋ฅผ ์ฑํ
์์ ๋ ๋๋ง |
| **๊ฐ๋ฐ ๊ฐ์ด๋** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd` | ์๋ธ์์ด์ ํธ ํ๋กฌํํธ์ ์ฃผ์
๋๋ ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ |
22๊ฐ ํ์ฑ ์คํฌ (ํญ์ ์ฃผ์
). 94๊ฐ ์ด์ ์ฐธ์กฐ ์คํฌ (์์ฒญ ์ ๋ก๋).
---
## ๐ ๋ธ๋ผ์ฐ์ & ๋ฐ์คํฌํฑ ์๋ํ
| ๊ธฐ๋ฅ | ๋์ |
|---|---|
| **Chrome CDP** | ํ์, ํด๋ฆญ, ํ์ดํ, ์คํฌ๋ฆฐ์ท, JS ์คํ, ์คํฌ๋กค, ํฌ์ปค์ค, ํค ์
๋ ฅ โ DevTools Protocol 10๊ฐ ์ก์
|
| **Vision-click** | ํ๋ฉด ์บก์ฒ โ AI๊ฐ ์ขํ ์ถ์ถ โ ํด๋ฆญ. `jaw browser vision-click "๋ก๊ทธ์ธ ๋ฒํผ"` |
| **DOM ๋ ํผ๋ฐ์ค** | ChatGPT, Grok, Gemini ์น UI์ ์
๋ ํฐ ๋งต โ ๋ชจ๋ธ ์ ํ, ์ค์ง ๋ฒํผ, ๋๊ตฌ ๋๋ก์ด |
| **Computer Use** | Codex App Computer Use MCP๋ฅผ ํตํ ๋ฐ์คํฌํฑ ์ฑ ์๋ํ |
| **Diagram ์คํฌ** | SVG ๋ค์ด์ด๊ทธ๋จ/์ธํฐ๋ํฐ๋ธ HTML ์๊ฐํ, ์๋๋ฐ์ค iframe์์ ๋ ๋๋ง |
---
## ๐ MCP
[Model Context Protocol](https://modelcontextprotocol.io)์ AI ์์ด์ ํธ๊ฐ ์ธ๋ถ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. CLI-JAW๋ 5๊ฐ ์์ง์ MCP ์ค์ ์ ํ๋์ ํ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
```bash
jaw mcp install @anthropic/context7
# โ Claude, Codex, Gemini, OpenCode, Copilot ์ค์ ํ์ผ์ ๋์ ๋๊ธฐํ
```
---
## ๐ฌ ๋ฉ์์ง
### Telegram
์ค์ 3๋จ๊ณ: BotFather์์ ๋ด ์์ฑ โ `jaw init --telegram-token` โ ๋ฉ์์ง ์ ์ก.
ํ
์คํธ ์ฑํ
, ์์ฑ ๋ฉ์์ง(์๋ STT), ํ์ผ/์ฌ์ง ์
๋ก๋, ์ฌ๋์ ๋ช
๋ น์ด, ์์ฝ ์์
๊ฒฐ๊ณผ ์ ์ก.
### Discord
Telegram๊ณผ ๋์ผ โ ํ
์คํธ, ํ์ผ, ๋ช
๋ น์ด. ์ฑ๋/์ค๋ ๋ ๋ผ์ฐํ
, ์์ด์ ํธ ๊ฒฐ๊ณผ ํฌ์๋. ์น UI ์ค์ ์์ ๊ตฌ์ฑ.
### ์์ฑ & STT
์น(๋ง์ดํฌ ๋ฒํผ), Telegram(์์ฑ ๋ฉ์์ง), Discord์์ ๋์. OpenAI ํธํ, Google Vertex AI, ์ปค์คํ
์๋ํฌ์ธํธ ์ง์.
---
## โฐ ์ค์ผ์ค๋ง
| ๊ธฐ๋ฅ | ์ค๋ช
|
|---|---|
| **Heartbeat ์์
** | Cron ์์ฝ ์์
์ ๋ฌด์ธ ์คํ. Telegram/Discord๋ก ๊ฒฐ๊ณผ ์ ๋ฌ |
| **์๋น์ค ์๋ ์์** | `jaw service install` โ systemd, launchd, Docker ์๋ ๊ฐ์ง |
---
## โจ๏ธ CLI ๋ช
๋ น์ด
```bash
jaw serve # ์๋ฒ ์์
jaw chat # ํฐ๋ฏธ๋ TUI
jaw doctor # 12๊ฐ ํญ๋ชฉ ์ง๋จ
jaw service install # ๋ถํ
์ ์๋ ์์
jaw skill install # ์คํฌ ํ์ฑํ
jaw mcp install # MCP ์ค์น โ 5๊ฐ ์์ง ๋๊ธฐํ
jaw memory search # ๋ฉ๋ชจ๋ฆฌ ๊ฒ์
jaw browser start # Chrome ์คํ (CDP)
jaw browser vision-click "๋ก๊ทธ์ธ" # AI ์ขํ ํด๋ฆญ
jaw clone ~/project # ์ธ์คํด์ค ๋ณต์
jaw orchestrate # PABCD ์ง์
jaw reset # ์ ์ฒด ์ด๊ธฐํ
```
---
## ๐ณ Docker
```bash
docker compose up -d # โ http://localhost:3457
```
๋นroot `jaw` ์ฌ์ฉ์, Chromium ์๋๋ฐ์ค ๊ธฐ๋ณธ ํ์ฑํ. `Dockerfile`(npm ์ค์น)๊ณผ `Dockerfile.dev`(๋ก์ปฌ ์์ค) ์ ๊ณต.
---
## ๐ ๋ฌธ์
| ๋ฌธ์ | ๋ด์ฉ |
|---|---|
| [CHANGELOG.md](CHANGELOG.md) | ๋ฆด๋ฆฌ์ค ๋ก๊ทธ (v1.6.0 ์บ์น์
: v1.2.0~v1.5.1 ํฌํจ) |
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | ์์คํ
์ค๊ณ, ๋ชจ๋ ๊ทธ๋ํ, 95๊ฐ API ํธ๋ค๋ฌ |
| [TESTS.md](TESTS.md) | ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง, ์นด์ดํธ, ๊ณํ |
| [memory-architecture.md](docs/memory-architecture.md) | 3๊ณ์ธต ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ, ์ธ๋ฑ์ฑ, ๋ฐํ์ |
| [devlog/structure/](devlog/structure/) | ๋ด๋ถ ์ํคํ
์ฒ ๋ ํผ๋ฐ์ค |
---
## โ๏ธ ๋น๊ต
| | CLI-JAW | Hermes Agent | Claude Code |
|---|---|---|---|
| **๋ชจ๋ธ ์ ๊ทผ** | OAuth ์์ ์ก + OpenCode ์์ผ๋์นด๋ | API ํค (OpenRouter 200+) | Anthropic ์ ์ฉ |
| **๋น์ฉ** | ๊ธฐ์กด ์์ ์ก | ํ ํฐ ๋จ์ ๊ณผ๊ธ | Anthropic ๊ตฌ๋
|
| **์ฃผ UI** | ์น PWA + Mac ์ฑ + TUI | TUI ์ ์ฉ | CLI + IDE ํ๋ฌ๊ทธ์ธ |
| **๋ฉ์์ง** | Telegram(์์ฑ) + Discord | TG/Discord/Slack/WhatsApp/Signal | ์์ |
| **๋ฉ๋ชจ๋ฆฌ** | 3๊ณ์ธต + FTS5 | ์๊ธฐํ์ต ๋ฃจํ + Honcho | ํ์ผ ๊ธฐ๋ฐ |
| **๋ธ๋ผ์ฐ์ ** | CDP + vision-click + DOM ref | ์ ํ์ | MCP ๊ฒฝ์ |
| **์ค์ผ์คํธ๋ ์ด์
** | PABCD 5๋จ๊ณ FSM | ์๋ธ์์ด์ ํธ ์คํฐ | Task ๋๊ตฌ |
CLI-JAW๋ OpenClaw ํ๋ค์ค ์ํคํ
์ฒ(ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๋งค๋์ , ํด๋ฐฑ ํจํด, ์ธ์
์ธ๋ฑ์ฑ)๋ฅผ ๊ณ์นํฉ๋๋ค.
---
## ๐๏ธ ๋ฉํฐ ์ธ์คํด์ค
๋ณ๋์ ์ค์ , ๋ฉ๋ชจ๋ฆฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง ๋
๋ฆฝ ์ธ์คํด์ค๋ฅผ ์คํํ ์ ์์ต๋๋ค.
```bash
jaw clone ~/my-project
jaw --home ~/my-project serve --port 3458
```
---
## ๐ ๏ธ ๊ฐ๋ฐ
๋น๋ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์กฐ
```bash
npm run build # tsc โ dist/
npm run dev # tsx server.ts (ํซ ๋ฆฌ๋ก๋)
```
```
src/
โโโ agent/ # AI ์์ด์ ํธ ์๋ช
์ฃผ๊ธฐ, ์คํฐ, History Block
โโโ browser/ # Chrome CDP, vision-click
โโโ cli/ # CLI ๋ ์ง์คํธ๋ฆฌ, ์ฌ๋์ ๋ช
๋ น์ด, ๋ชจ๋ธ ํ๋ฆฌ์
โโโ core/ # DB, ์ค์ , Employee, ๋ก๊น
โโโ discord/ # Discord ๋ด, ๋ช
๋ น์ด, ํ์ผ ์ ์ก
โโโ memory/ # 3๊ณ์ธต ๋ฉ๋ชจ๋ฆฌ, FTS5 ์ธ๋ฑ์ฑ, Flush, Soul
โโโ orchestrator/ # PABCD ์ํ ๋จธ์ , Worker ๋ ์ง์คํธ๋ฆฌ
โโโ routes/ # REST API (95๊ฐ ํธ๋ค๋ฌ, 94๊ฐ ์๋ํฌ์ธํธ)
โโโ security/ # ์
๋ ฅ ๊ฒ์ฆ, ๊ฒฝ๋ก ๋ณดํธ
โโโ telegram/ # Telegram ๋ด, ์์ฑ STT, ํฌ์๋
```
---
## ๐งช ํ
์คํธ
```bash
npm test # tsx --test (Node.js ๋ค์ดํฐ๋ธ ํ
์คํธ ๋ฌ๋)
```
[TESTS.md](TESTS.md)์์ ํ์ฌ ์ธ๋ฒคํ ๋ฆฌ์ ํต๊ณผ ์ ํ์ธ.
---
## โ ๋ฌธ์ ํด๊ฒฐ
์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์
| ๋ฌธ์ | ํด๊ฒฐ |
|---|---|
| `cli-jaw: command not found` | `npm install -g cli-jaw` ์ฌ์คํ. `npm bin -g`๊ฐ `$PATH`์ ์๋์ง ํ์ธ |
| `Error: node version` | Node.js 22+๋ก ์
๊ทธ๋ ์ด๋: `nvm install 22` |
| `NODE_MODULE_VERSION` ๋ถ์ผ์น | `npm run ensure:native` (์๋ ์ฌ๋น๋) |
| ์์ด์ ํธ ํ์์์ | `jaw doctor`๋ก CLI ์ธ์ฆ ํ์ธ |
| `EADDRINUSE: port 3457` | ๋ค๋ฅธ ์ธ์คํด์ค ์คํ ์ค. `--port 3458` ์ฌ์ฉ |
| Telegram ๋ฌด์๋ต | `jaw doctor`๋ก ํ ํฐ ํ์ธ. `jaw serve` ์คํ ์ค์ธ์ง ํ์ธ |
| ์คํฌ ๋ฏธ๋ก๋ | `jaw skill reset` ํ `jaw mcp sync` |
| ๋ธ๋ผ์ฐ์ ๋ช
๋ น์ด ์คํจ | Chrome ์ค์น. `jaw browser start` ๋จผ์ ์คํ |
---
## ๐ค ๊ธฐ์ฌํ๊ธฐ
1. `master`์์ ํฌํฌ & ๋ธ๋์น
2. `npm run build && npm test`
3. PR ์ ์ถ
๋ฒ๊ทธ๋ ์์ด๋์ด? [์ด์ ์ด๊ธฐ](https://github.com/lidge-jun/cli-jaw/issues)
---
**[MIT License](LICENSE)**