clitrigger 0.2.65 → 0.2.67
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.md +120 -184
- package/README_KR.md +116 -180
- package/dist/client/assets/{AnalyticsPanel-BILFB_-1.js → AnalyticsPanel-DQ9grCp0.js} +1 -1
- package/dist/client/assets/CalendarGrid-Fk99r9nq.js +16 -0
- package/dist/client/assets/DiscussionDetail-HcG3ohsQ.js +8 -0
- package/dist/client/assets/DiscussionForm-BZfnK2EV.js +34 -0
- package/dist/client/assets/EmptyState-GADfcNs7.js +1 -0
- package/dist/client/assets/FloatingComposerController-5A3GJtK4-CTCqYxNF.js +1 -0
- package/dist/client/assets/LogViewer-Di7SxByZ.js +6 -0
- package/dist/client/assets/MarkdownContent-WshMOH5P.js +29 -0
- package/dist/client/assets/PersonalAgenda-DrfVGibs.js +7 -0
- package/dist/client/assets/{PlannerPageEditor-Qiwpi1s4.js → PlannerPageEditor-B2m5SwtT.js} +6 -6
- package/dist/client/assets/ProjectDetail-B96iIeaz.js +183 -0
- package/dist/client/assets/ProjectList-D2tf2Kfp.js +6 -0
- package/dist/client/assets/ReviewQueue-UrhgwrGk.js +11 -0
- package/dist/client/assets/TaskGraph-Bp62pL5V.js +2 -0
- package/dist/client/assets/{VaultLayout-0umIr6Qr.js → VaultLayout-ClyLfQdP.js} +20 -20
- package/dist/client/assets/folder-git-2-CntWBh-U.js +6 -0
- package/dist/client/assets/index-DB7C6wx1.js +427 -0
- package/dist/client/assets/index-gug7OXWO.css +32 -0
- package/dist/client/assets/rotate-ccw-DRnyCt5y.js +11 -0
- package/dist/client/assets/{style-X9FtoKKq.js → style-DcT-60Dn.js} +1 -1
- package/dist/client/assets/{with-selector-DyExB9Zl.js → with-selector-QmxTx8WM.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db/queries.d.ts +4 -1
- package/dist/server/db/queries.d.ts.map +1 -1
- package/dist/server/db/queries.js +9 -0
- package/dist/server/db/queries.js.map +1 -1
- package/dist/server/db/schema.d.ts.map +1 -1
- package/dist/server/db/schema.js +2 -0
- package/dist/server/db/schema.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/discussions.d.ts.map +1 -1
- package/dist/server/routes/discussions.js +1 -0
- package/dist/server/routes/discussions.js.map +1 -1
- package/dist/server/routes/execution.d.ts.map +1 -1
- package/dist/server/routes/execution.js +2 -0
- package/dist/server/routes/execution.js.map +1 -1
- package/dist/server/routes/logs.d.ts.map +1 -1
- package/dist/server/routes/logs.js +4 -2
- package/dist/server/routes/logs.js.map +1 -1
- package/dist/server/routes/projects.d.ts.map +1 -1
- package/dist/server/routes/projects.js +7 -2
- package/dist/server/routes/projects.js.map +1 -1
- package/dist/server/services/claude-manager.d.ts +0 -4
- package/dist/server/services/claude-manager.d.ts.map +1 -1
- package/dist/server/services/claude-manager.js +2 -22
- package/dist/server/services/claude-manager.js.map +1 -1
- package/dist/server/services/log-streamer.d.ts.map +1 -1
- package/dist/server/services/log-streamer.js +2 -0
- package/dist/server/services/log-streamer.js.map +1 -1
- package/dist/server/services/orchestrator.d.ts.map +1 -1
- package/dist/server/services/orchestrator.js +12 -0
- package/dist/server/services/orchestrator.js.map +1 -1
- package/dist/server/services/session-manager.d.ts.map +1 -1
- package/dist/server/services/session-manager.js +8 -0
- package/dist/server/services/session-manager.js.map +1 -1
- package/dist/server/services/worktree-manager.d.ts +8 -0
- package/dist/server/services/worktree-manager.d.ts.map +1 -1
- package/dist/server/services/worktree-manager.js +28 -0
- package/dist/server/services/worktree-manager.js.map +1 -1
- package/package.json +2 -2
- package/dist/client/assets/FloatingComposerController-5A3GJtK4-BWTTg1eK.js +0 -1
- package/dist/client/assets/TaskGraph-7R6N_9W4.js +0 -2
- package/dist/client/assets/index-C0pXRm5D.css +0 -32
- package/dist/client/assets/index-D7UChvET.js +0 -715
package/README_KR.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
<img alt="CLITrigger" src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/src/client/public/logo.svg" width="360">
|
|
7
7
|
</picture>
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**퇴근하면 AI 코딩 에이전트가 야근을 시작한다.**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
*퇴근 전에 할 일을 쌓아두고, 아침엔 diff만 본다.*
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://github.com/HyperAITeam/CLITrigger/blob/main/README.md">English</a> ·
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
<br>
|
|
28
28
|
|
|
29
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/demo.gif" alt="CLITrigger
|
|
29
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/demo.gif" alt="CLITrigger 데모: 밤새 worktree에서 병렬로 돌아가는 작업들, 그리고 아침 리뷰 큐" width="800">
|
|
30
30
|
|
|
31
31
|
<br><br>
|
|
32
32
|
|
|
@@ -34,153 +34,126 @@
|
|
|
34
34
|
npm i -g clitrigger && clitrigger
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
**데스크톱 앱으로 받아도 된다.** Node.js 없이 바로 실행: **[Windows `.exe` · macOS `.dmg` · Linux `.AppImage`](https://github.com/HyperAITeam/CLITrigger/releases/latest)**
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
`http://localhost:3000` 열고, 비밀번호 정하고, 프로젝트 추가하고, 할 일 몇 개 적고, Start. 설정은 그게 전부다.
|
|
40
40
|
|
|
41
41
|
</div>
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
flowchart LR
|
|
55
|
-
docs["📚 문서<br>프로젝트 지식"] --> plan["🗓 계획<br>플래너 · 캘린더"]
|
|
56
|
-
plan --> term["⌨️ 터미널<br>인터랙티브 세션"]
|
|
57
|
-
term --> auto["🤖 자동작업<br>병렬 worktree 실행"]
|
|
58
|
-
auto --> vcs["🔀 형상관리<br>리뷰 큐 · Git"]
|
|
59
|
-
vcs -. 교훈은 다시 문서로 .-> docs
|
|
60
|
-
```
|
|
45
|
+
## 이게 뭔가
|
|
46
|
+
|
|
47
|
+
Claude Code, Codex, Antigravity를 터미널에서 이미 쓰고 있을 것이다. 잘 돌아간다. 문제는 내가 앞에 앉아 있을 때만 돌아간다는 것. 밤 11시에 rate limit에 걸리면 다음 다섯 시간치 쿼터는 그냥 날아간다. 노트북을 덮으면 다시 열 때까지 아무 일도 안 일어난다.
|
|
48
|
+
|
|
49
|
+
CLITrigger는 그 CLI들을 큐에 올려놓고 돌리는 도구다. 할 일을 적으면 각각 git worktree를 하나씩 받는다. 내가 자는 동안, 저녁 먹는 동안, 회의 들어간 동안 에이전트들이 병렬로 일한다. rate limit에 걸리면 버튼 하나로 리셋 시각에 재실행을 걸어둔다. 컨텍스트가 바닥나면 폴백 체인의 다음 CLI가 이어받는다. 아침엔 리뷰 큐 하나를 열고 `m`으로 머지하거나 `d`로 버리면 된다.
|
|
50
|
+
|
|
51
|
+
낮에는 터미널로 쓴다. 같은 CLI들을 도킹되는 플로팅 창에 띄우고, 각 창은 자기 worktree 브랜치 위에서 돈다. 밤이 되면 같은 앱이 작업 큐가 된다.
|
|
52
|
+
|
|
53
|
+
전부 내 컴퓨터에서 돈다. Cloudflare 터널만 붙이면 폰에서도 들여다볼 수 있다.
|
|
61
54
|
|
|
62
55
|
<div align="center">
|
|
63
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-tasks.png" alt="
|
|
64
|
-
<p><em
|
|
56
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-tasks.png" alt="병렬 worktree에서 돌아가는 작업들" width="800">
|
|
57
|
+
<p><em>CLI 셋, worktree 셋, 화면 하나</em></p>
|
|
65
58
|
</div>
|
|
66
59
|
|
|
67
60
|
---
|
|
68
61
|
|
|
69
|
-
##
|
|
62
|
+
## 하룻밤이 흘러가는 방식
|
|
63
|
+
|
|
64
|
+
**18:00.** 프로젝트에 할 일 다섯 개를 적는다. 둘은 세 번째 작업이 끝나야 시작할 수 있으니 의존성으로 묶는다. 하나는 "테스트 전부 통과시키기"라서 루프 규칙을 건다. 라운드마다 `npm test`를 돌리고, exit 0이면 종료, 최대 8라운드, 비용 상한 5달러. 프로젝트 문서 두 개를 프롬프트에 끼워 넣어 컨벤션을 알려준다. Start All.
|
|
65
|
+
|
|
66
|
+
**18:01.** 프로젝트 안 `.worktrees/` 아래에 worktree 다섯 개가 생긴다. 셋은 바로 시작하고, 의존성이 걸린 둘은 기다린다.
|
|
70
67
|
|
|
71
|
-
|
|
68
|
+
**21:40.** 첫 작업이 끝나고 커밋된다. 기다리던 둘이 부모 브랜치를 squash merge한 상태로 시작한다. 프로젝트에 자동 위임 규칙이 있어서, 다른 CLI에게 "첫 작업의 diff를 리뷰해라"라는 작업이 새로 생긴다.
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
**23:15.** Claude가 5시간 한도에 걸린다. 작업에 표시가 붙고 리셋 시각이 기록된다. 폰으로 터널 URL을 열고 "리셋 시점에 실행 예약"을 누르고 잔다. 폴백 체인을 걸어뒀다면 이미 Codex가 이어받았을 것이다.
|
|
74
71
|
|
|
75
|
-
|
|
72
|
+
**04:10.** 리셋이 지나고 예약된 작업이 돈다.
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- **한 곳에서 마무리** — 리뷰 큐에서 diff를 트리아지하고, 내장 Git 클라이언트에서 커밋·푸시·머지까지
|
|
74
|
+
**07:30.** 리뷰 큐를 연다. 카드 다섯 장. 둘은 50줄 미만 quick win이라 키 두 번에 머지. 하나는 400줄이라 risky 태그가 붙어 있어서 diff를 펼쳐 제대로 읽는다. 하나는 실패했는데 로그를 보니 지시가 모호했다. Continue 누르고 한 문장 추가. 하나는 방향이 틀렸다. `d`. worktree 삭제.
|
|
75
|
+
|
|
76
|
+
평범한 화요일이다.
|
|
81
77
|
|
|
82
78
|
---
|
|
83
79
|
|
|
84
|
-
##
|
|
80
|
+
## 기능
|
|
81
|
+
|
|
82
|
+
### 퇴근 전에
|
|
85
83
|
|
|
86
|
-
|
|
84
|
+
**작업과 worktree.** 모든 작업은 자기 worktree, 자기 브랜치에서 돈다. 프로젝트별로 동시 실행 수를 정한다. 작업이 끝나면 자동 커밋. 의존성으로 묶으면 자식 작업은 부모 브랜치가 머지된 상태로 시작한다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#병렬-워크트리-실행)
|
|
87
85
|
|
|
88
|
-
|
|
86
|
+
**루프 규칙.** 작업 하나를 루프로 만든다. 검증 명령을 주면 exit 0일 때 종료하고, 완료 문구를 주면 에이전트 마지막 메시지에 그 문구가 있을 때 종료한다. 최대 라운드, 비용 상한(USD), "커밋 없이 끝난 라운드가 있으면 중단" 옵션으로 헤매는 에이전트가 예산을 태우지 못하게 막는다. 규칙 칸에 적은 내용은 매 라운드 프롬프트 끝에 붙는다.
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
`[[wikilink]]` 그래프를 갖춘 프로젝트별 Obsidian 스타일 지식 저장소 — 파일을 CLI 불문으로 프롬프트에 주입. 여기 쌓인 문서가 파이프라인 전체의 입력이 된다. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Plan-&-Organize-KR#볼트)
|
|
88
|
+
**예약 실행.** cron으로 반복, 일회성으로 특정 시각, 그리고 CLI 출력에서 읽은 리셋 시각에 바로 거는 "리셋 시점에 실행 예약" 버튼. 이전 실행이 아직 돌고 있으면 건너뛰는 옵션이 있어서 느린 작업이 쌓이지 않는다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#스케줄-실행)
|
|
92
89
|
|
|
93
90
|
<div align="center">
|
|
94
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-
|
|
95
|
-
<p><em>문서 탭 — 프로젝트 마크다운을 인라인 미리보기와 wikilink force-directed 그래프로 탐색하고, 파일을 골라 프롬프트에 주입</em></p>
|
|
91
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-schedules.png" alt="예약 실행" width="800">
|
|
96
92
|
</div>
|
|
97
93
|
|
|
98
|
-
|
|
94
|
+
**폴백 체인.** CLI 순서를 정해둔다. 예를 들면 Claude, Antigravity, Codex 순. 하나가 컨텍스트 윈도우를 다 쓰거나 Antigravity가 1분 안에 세 번 쿼터 소진을 뱉으면, 프로세스를 죽이고 다음 CLI가 같은 작업을 이어받는다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#멀티-cli--샌드박스-모드)
|
|
95
|
+
|
|
96
|
+
**자동 위임.** "Claude가 끝내면 Codex가 리뷰한다" 같은 프로젝트 규칙. 리뷰는 같은 브랜치 위에서 체인 작업으로 돈다. 위임된 작업은 다시 위임하지 않으니 무한 루프는 없다.
|
|
99
97
|
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
**샌드박스 모드.** strict로 켜면 CLI 권한 파일을 써서 worktree 바깥은 아예 못 건드리게 한다.
|
|
99
|
+
|
|
100
|
+
**문서.** 프로젝트별 마크다운 폴더에 `[[wikilink]]`와 그래프 뷰. 파일을 골라 프롬프트에 넣으면 어떤 CLI를 쓰든 똑같이 들어간다. 지난 실행에서 얻은 교훈을 쌓아두는 위키도 있는데, 장기 기억으로 프롬프트에 주입된다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Plan-&-Organize-KR#볼트)
|
|
102
101
|
|
|
103
102
|
<div align="center">
|
|
104
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-
|
|
105
|
-
<p><em>개인 메모, 전 프로젝트 스케줄, 플래너 마감일, 내게 할당된 Jira 이슈를 하나의 캘린더에 겹쳐 보기</em></p>
|
|
103
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-vault.png" alt="wikilink 그래프가 있는 문서" width="800">
|
|
106
104
|
</div>
|
|
107
105
|
|
|
108
|
-
|
|
109
|
-
경량 작업 플래너 — 아이디어를 적고 한 번의 클릭으로 TODO·스케줄·세션으로 변환, Markdown 입출력 지원. 계획이 다음 단계의 실행 단위가 된다. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Plan-&-Organize-KR#플래너)
|
|
106
|
+
**플래너와 캘린더.** 아직 작업이 아닌 생각들을 적어두는 목록. 어떤 줄이든 클릭 한 번으로 작업, 예약, 세션이 된다. 내 일정은 메모, 전 프로젝트 예약, 플래너 마감일, 내게 할당된 Jira 이슈를 캘린더 하나에 겹쳐 보여준다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Plan-&-Organize-KR#플래너)
|
|
110
107
|
|
|
111
108
|
<div align="center">
|
|
112
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-planer.png" alt="
|
|
113
|
-
<p><em>인라인 편집, 컬러 태그, 이미지 첨부, 원클릭 TODO/스케줄 변환</em></p>
|
|
109
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-planer.png" alt="플래너" width="800">
|
|
114
110
|
</div>
|
|
115
111
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
#### 인터랙티브 세션 (Sessions)
|
|
119
|
-
VS Code 스타일 도킹·별도 창 분리·실제 xterm.js 터미널을 갖춘 장시간 CLI 세션 — 자동화에 넘기기 전, 사람이 개입해 방향을 잡는 단계. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#인터랙티브-세션)
|
|
112
|
+
**다중 에이전트 토론.** 그냥 던지기엔 찜찜한 작업용. 아키텍트, 개발자, 리뷰어가 먼저 접근 방식을 두고 싸운다. 결론은 코드로 커밋하거나 플래너에 액션 아이템으로 보낸다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#멀티-에이전트-토론)
|
|
120
113
|
|
|
121
114
|
<div align="center">
|
|
122
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-
|
|
123
|
-
<p><em>VS Code 스타일 그룹화로 도킹된 Claude · Antigravity · Codex 세션 — 각각 독립된 worktree 브랜치에서 동시 실행</em></p>
|
|
115
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-discussions.png" alt="다중 에이전트 토론" width="800">
|
|
124
116
|
</div>
|
|
125
117
|
|
|
126
|
-
###
|
|
118
|
+
### 자리를 비운 동안
|
|
127
119
|
|
|
128
|
-
|
|
129
|
-
TODO마다 격리된 git worktree에서 Claude / Antigravity / Codex가 병렬 실행 + 의존성 체인·머지 제어. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#병렬-워크트리-실행)
|
|
120
|
+
**실시간 로그.** 모든 실행이 WebSocket으로 흘러온다. Chat 모드는 마크다운으로 렌더링하고, Raw 모드는 터미널 바이트 그대로다. Raw 출력은 저장되기 때문에 다시 접속해도 그대로 재생된다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#실시간-로그)
|
|
130
121
|
|
|
131
|
-
|
|
132
|
-
아키텍트·개발자·리뷰어 에이전트가 구현 전에 토론하고, 코드 커밋이나 플래너 전송까지 이어진다. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#멀티-에이전트-토론)
|
|
122
|
+
**외부 접속.** `clitrigger config tunnel on` 하면 Cloudflare URL이 나온다. 터널에 이름을 붙이고 내 도메인으로 라우팅하면 "위험한 사이트" 경고가 사라진다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Remote-Access-KR)
|
|
133
123
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
</div>
|
|
124
|
+
**알림.** 사이드바의 종 아이콘을 켜면 완료와 실패를 OS 알림으로 받는다. 알림을 클릭하면 그 세션으로 바로 간다.
|
|
125
|
+
|
|
126
|
+
**MCP 서버.** CLITrigger 자체가 HTTP MCP 서버다. 설정 → MCP에서 config를 복사해 Claude Desktop이나 Claude Code에 붙여 넣으면, 채팅으로 프로젝트 조회, 작업 생성과 실행, 상태 확인이 된다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/MCP-Server-KR)
|
|
138
127
|
|
|
139
|
-
|
|
140
|
-
cron·일회성 스케줄로 작업을 예약하고, 토큰 한도 리셋 시각에 자동 재시도. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#스케줄-실행)
|
|
128
|
+
**통계.** 프로젝트별 비용과 토큰을 CLI, 상태, 날짜로 나눠 본다. 루프 작업 하나가 한 달 예산 절반을 먹었다는 걸 알아채는 용도. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#분석)
|
|
141
129
|
|
|
142
130
|
<div align="center">
|
|
143
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-
|
|
144
|
-
<p><em>cron 기반 반복·일회성 예약 실행 설정 화면</em></p>
|
|
131
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-analytics.png" alt="통계" width="800">
|
|
145
132
|
</div>
|
|
146
133
|
|
|
147
|
-
|
|
148
|
-
Claude / Antigravity / Codex를 프로젝트·TODO·에이전트별로 선택, strict 샌드박스로 파일 접근을 워크트리로 제한. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#멀티-cli--샌드박스-모드)
|
|
134
|
+
### 다음 날 아침
|
|
149
135
|
|
|
150
|
-
|
|
136
|
+
**리뷰 큐.** 전 프로젝트의 최근 작업을 한 화면에. 카드마다 프로젝트, 에이전트 마지막 메시지 한 줄 요약, 토큰 합계, diff 크기가 보인다. 위험도는 자동으로 붙는다. 실패했거나 300줄 넘으면 high, 50줄 넘으면 medium. Risky, Quick wins, Failed로 거르고 12h, 24h, 7d 창으로 본다. `j`/`k`로 이동, `Space`로 diff 펼치기, `Enter`로 전체 로그, `m` 머지, `d` 버리기. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#모닝-리뷰-큐)
|
|
151
137
|
|
|
152
|
-
|
|
153
|
-
밤새 실행된 전 프로젝트 TODO를 키보드 한 번으로 이동·머지·discard하는 단일 트리아주 카드 스택. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#모닝-리뷰-큐)
|
|
154
|
-
|
|
155
|
-
#### 내장 Git 클라이언트
|
|
156
|
-
브라우저 안의 Fork/SourceTree 스타일 Git 클라이언트 — 스테이지·커밋·푸시·브랜치/diff 관리. AI가 만든 결과가 여기서 형상에 반영되며 파이프라인이 닫힌다. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#내장-git-클라이언트)
|
|
138
|
+
**Git 클라이언트.** 스테이지, 커밋, 푸시, 브랜치, 커밋 그래프, 파일 diff, 충돌 해결까지 CLITrigger 안에서. 리뷰한 화면에서 그대로 에이전트 브랜치를 올릴 수 있다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#내장-git-클라이언트)
|
|
157
139
|
|
|
158
140
|
<div align="center">
|
|
159
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-git.png" alt="Git
|
|
160
|
-
<p><em>커밋 그래프, 브랜치 작업, 파일 diff까지 브라우저 안에서</em></p>
|
|
141
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-git.png" alt="Git 클라이언트" width="800">
|
|
161
142
|
</div>
|
|
162
143
|
|
|
163
|
-
|
|
144
|
+
**SVN도 된다.** 프로젝트가 Subversion 작업 사본이면 SVN 패널을 켠다. 상태, 로그, diff, 커밋, externals, 속성 편집. diff 뷰어는 git과 같은 걸 쓴다.
|
|
145
|
+
|
|
146
|
+
### 낮에, 자리에 있을 때
|
|
164
147
|
|
|
165
|
-
|
|
166
|
-
프로젝트별 비용·실행 통계 — CLI별, 상태별, 시간 축으로. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#분석)
|
|
148
|
+
**세션.** 플로팅 창에서 돌아가는 장시간 인터랙티브 CLI 세션. VS Code처럼 나란히 도킹하고, 별도 창으로 빼고, 태그와 별칭을 붙인다. node-pty 위의 진짜 xterm.js 터미널이다. 세션마다 자기 worktree 브랜치를 가질 수 있다. [Wiki ↗](https://github.com/HyperAITeam/CLITrigger/wiki/Delegate-to-AI-KR#인터랙티브-세션)
|
|
167
149
|
|
|
168
150
|
<div align="center">
|
|
169
|
-
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-
|
|
170
|
-
<p><em>CLI·상태·시간 축으로 나눠 보는 비용과 토큰 사용량</em></p>
|
|
151
|
+
<img src="https://raw.githubusercontent.com/HyperAITeam/CLITrigger/main/docs/images/screenshot-sessions.png" alt="도킹된 세션들" width="800">
|
|
171
152
|
</div>
|
|
172
153
|
|
|
173
|
-
|
|
174
|
-
WebSocket 실시간 로그 스트리밍 — Chat(마크다운) 또는 Raw(터미널) 모드. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Review-&-Ship-KR#실시간-로그)
|
|
154
|
+
**연동.** Jira, GitHub Issues, Notion이 플러그인으로 붙는다. gstack 스킬은 실행 훅으로. Harness 패널에서는 각 CLI의 설정, 메모리, MCP config를 고치고 스킬과 훅을 켜고 끌 수 있다. dotfile을 열 필요가 없다.
|
|
175
155
|
|
|
176
|
-
|
|
177
|
-
자주 쓰는 외부 도구(실행파일, 명령어, URL)를 사이드바에서 원클릭으로 실행. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Plan-&-Organize-KR#즐겨찾기-런처)
|
|
178
|
-
|
|
179
|
-
#### 외부 접속
|
|
180
|
-
Cloudflare Tunnel로 어디서든 접속 — 완료 알림과 커스텀 도메인 라우팅 지원. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/Remote-Access-KR)
|
|
181
|
-
|
|
182
|
-
#### MCP 서버
|
|
183
|
-
CLITrigger를 HTTP 엔드포인트로 MCP 클라이언트(Claude Desktop, Claude Code)에 연결 — AI와 대화하며 프로젝트 조회, 할일 생성·실행, 상태 확인. 설정 → MCP 연결에서 config(URL + 토큰)를 복사해 붙여넣기만 하면 됩니다. npm·데스크톱·터널 사용자 모두 동일하게 동작. [↗](https://github.com/HyperAITeam/CLITrigger/wiki/MCP-Server-KR)
|
|
156
|
+
**자잘한 것들.** 저장소를 둘러보는 Files 탭. 하루에 열 번 여는 도구를 모아둔 즐겨찾기 런처. 데스크톱 앱에서 Notion이나 대시보드를 세션 옆에 띄워두는 웹 패널 탭. 어떤 CLI 프로세스가 실제로 살아 있는지 보여주는 프로세스 패널.
|
|
184
157
|
|
|
185
158
|
---
|
|
186
159
|
|
|
@@ -188,160 +161,125 @@ CLITrigger를 HTTP 엔드포인트로 MCP 클라이언트(Claude Desktop, Claude
|
|
|
188
161
|
|
|
189
162
|
| 영역 | 기술 |
|
|
190
163
|
|------|------|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
|
|
|
194
|
-
| Git | simple-git
|
|
164
|
+
| 백엔드 | Node.js · Express · TypeScript · SQLite (better-sqlite3, WAL) · WebSocket |
|
|
165
|
+
| 프론트엔드 | React 18 · Vite · Tailwind CSS · Recharts |
|
|
166
|
+
| CLI | Claude Code · Antigravity · Codex, 어댑터 인터페이스 하나 뒤에 |
|
|
167
|
+
| Git | simple-git으로 worktree와 머지 |
|
|
195
168
|
| 스케줄링 | node-cron |
|
|
196
|
-
| 터미널 | node-pty
|
|
169
|
+
| 터미널 | node-pty · xterm.js |
|
|
197
170
|
| 외부 접속 | Cloudflare Tunnel (선택) |
|
|
171
|
+
| 데스크톱 | Electron, Node와 네이티브 모듈 번들 |
|
|
198
172
|
|
|
199
173
|
---
|
|
200
174
|
|
|
201
|
-
##
|
|
175
|
+
## 설치
|
|
202
176
|
|
|
203
|
-
###
|
|
177
|
+
### 데스크톱 앱
|
|
204
178
|
|
|
205
|
-
[
|
|
179
|
+
[최신 릴리스](https://github.com/HyperAITeam/CLITrigger/releases/latest)에서 설치 파일을 받는다.
|
|
206
180
|
|
|
207
|
-
- **Windows
|
|
208
|
-
- **macOS
|
|
209
|
-
- **Linux
|
|
181
|
+
- **Windows**: `CLITrigger-Setup-<version>.exe` 또는 portable `.exe`
|
|
182
|
+
- **macOS**: `CLITrigger-<version>.dmg` (Apple Silicon · Intel)
|
|
183
|
+
- **Linux**: `CLITrigger-<version>.AppImage`
|
|
210
184
|
|
|
211
|
-
|
|
185
|
+
Node.js, `better-sqlite3`, `node-pty`, `cloudflared`가 전부 들어 있다. 첫 실행 때 셋업 화면에서 비밀번호를 정한다. 셋업이 끝날 때까지 터널은 꺼져 있어서 첫 사용자는 반드시 본인이다.
|
|
212
186
|
|
|
213
|
-
###
|
|
187
|
+
### npm
|
|
214
188
|
|
|
215
189
|
```bash
|
|
216
|
-
# 설치
|
|
217
190
|
npm i -g clitrigger
|
|
218
191
|
clitrigger
|
|
219
|
-
|
|
220
|
-
# 최신 버전으로 업그레이드
|
|
221
|
-
npm i -g clitrigger@latest
|
|
222
|
-
# 현재 버전 확인: clitrigger --version
|
|
223
192
|
```
|
|
224
193
|
|
|
225
|
-
|
|
194
|
+
3000번 포트에서 서버가 뜬다. 열고, 비밀번호 정하고, 프로젝트 추가하고, 할 일을 적는다. 비밀번호는 나중에 설정 → 계정에서 바꿀 수 있다.
|
|
226
195
|
|
|
227
|
-
|
|
196
|
+
npm에 새 버전이 있으면 시작할 때 한 줄 알려준다. 알아서 업데이트하지는 않는다.
|
|
228
197
|
|
|
229
198
|
```bash
|
|
230
|
-
#
|
|
199
|
+
npm i -g clitrigger@latest # 업그레이드
|
|
200
|
+
clitrigger --version
|
|
231
201
|
clitrigger config port 8080 # 포트 변경
|
|
232
|
-
clitrigger config tunnel on #
|
|
202
|
+
clitrigger config tunnel on # Cloudflare 터널
|
|
203
|
+
clitrigger reset-password # 비밀번호를 잊었을 때
|
|
233
204
|
```
|
|
234
205
|
|
|
235
|
-
>
|
|
206
|
+
> **필요한 것:** Node.js 22+ (LTS), Git, 그리고 Claude Code · Antigravity · Codex 중 하나 이상이 설치되고 로그인된 상태.
|
|
236
207
|
>
|
|
237
|
-
>
|
|
238
|
-
> Node
|
|
208
|
+
> **플랫폼:** Windows · macOS · Linux.
|
|
209
|
+
> Node는 짝수 버전을 쓰는 게 좋다. 갓 나온 메이저는 네이티브 모듈의 prebuilt 바이너리가 아직 없는 경우가 많아서 C++ 툴체인과 긴 컴파일이 필요해진다.
|
|
239
210
|
|
|
240
|
-
### 소스에서
|
|
211
|
+
### 소스에서
|
|
241
212
|
|
|
242
213
|
<details>
|
|
243
|
-
<summary
|
|
214
|
+
<summary>펼치기</summary>
|
|
244
215
|
|
|
245
216
|
```bash
|
|
246
|
-
# 1. 클론 & 설치
|
|
247
217
|
git clone https://github.com/HyperAITeam/CLITrigger.git
|
|
248
218
|
cd CLITrigger
|
|
249
219
|
npm install
|
|
250
220
|
cd src/client && npm install && cd ../..
|
|
251
221
|
|
|
252
|
-
# 2. 환경 설정
|
|
253
222
|
cp .env.example .env
|
|
254
|
-
# AUTH_PASSWORD는
|
|
255
|
-
# 셋업을 건너뛰고 싶을 때만 미리 값을 박아두면 된다.
|
|
223
|
+
# AUTH_PASSWORD는 비워둬도 된다. 첫 접속 때 셋업 화면이 물어본다.
|
|
256
224
|
|
|
257
|
-
# 3. 실행
|
|
258
225
|
npm run dev
|
|
259
226
|
```
|
|
260
227
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
#### Windows 원클릭 실행
|
|
264
|
-
|
|
265
|
-
`scripts/` 폴더의 bat 파일을 더블클릭하면 명령어 입력 없이 바로 실행된다.
|
|
228
|
+
`http://localhost:5173` 접속.
|
|
266
229
|
|
|
267
|
-
|
|
268
|
-
|------|------|
|
|
269
|
-
| `install.bat` | 의존성 설치 (처음 한 번) |
|
|
270
|
-
| `dev.bat` | 개발 모드 실행 |
|
|
271
|
-
| `build.bat` | 빌드 |
|
|
272
|
-
| `start.bat` | 프로덕션 서버 실행 |
|
|
273
|
-
| `start-tunnel.bat` | 터널 모드 실행 |
|
|
274
|
-
| `test.bat` | 전체 테스트 |
|
|
275
|
-
|
|
276
|
-
#### macOS / Linux
|
|
277
|
-
|
|
278
|
-
`npm run` 명령어가 모든 플랫폼에서 동일하게 동작한다. `.bat` 스크립트 대신 터미널에서 직접 실행하면 된다.
|
|
230
|
+
Windows라면 `scripts/`에 install, dev, build, start, start-tunnel, test용 `.bat`이 있다. macOS와 Linux는 같은 이름의 `npm run` 명령을 쓰면 된다.
|
|
279
231
|
|
|
280
232
|
```bash
|
|
281
|
-
npm run dev
|
|
282
|
-
npm run build
|
|
283
|
-
npm run start
|
|
284
|
-
npm test
|
|
233
|
+
npm run dev
|
|
234
|
+
npm run build
|
|
235
|
+
npm run start
|
|
236
|
+
npm test
|
|
285
237
|
```
|
|
286
238
|
|
|
287
239
|
</details>
|
|
288
240
|
|
|
289
|
-
### 외부 접속
|
|
241
|
+
### 외부 접속
|
|
290
242
|
|
|
291
243
|
```bash
|
|
292
|
-
# cloudflared 설치
|
|
293
244
|
winget install cloudflare.cloudflared # Windows
|
|
294
245
|
brew install cloudflared # macOS
|
|
295
246
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
#
|
|
247
|
+
clitrigger config tunnel on
|
|
248
|
+
clitrigger
|
|
249
|
+
# https://xxxx.trycloudflare.com 출력
|
|
299
250
|
```
|
|
300
251
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
`*.trycloudflare.com` / `*.cfargotunnel.com`에 뜨는 브라우저 "위험한 사이트" 경고를 회피하려면 본인 도메인으로 라우팅한다. 사이드바 ⚙ → Tunnel 설정 모달에서 Tunnel Name + Custom Hostname 입력, 또는 CLI:
|
|
252
|
+
브라우저가 `*.trycloudflare.com`에 경고를 띄운다. 없애려면 터널에 이름을 붙이고 내 도메인으로 라우팅한다. 사이드바 ⚙ → Tunnel 모달에서 하거나, CLI로:
|
|
304
253
|
|
|
305
254
|
```bash
|
|
255
|
+
clitrigger config tunnel on my-tunnel
|
|
306
256
|
clitrigger config tunnel hostname app.your-domain.com
|
|
307
|
-
cloudflared tunnel route dns
|
|
257
|
+
cloudflared tunnel route dns my-tunnel app.your-domain.com # 한 번만
|
|
308
258
|
```
|
|
309
259
|
|
|
310
|
-
표시 URL이 `https://app.your-domain.com`으로 바뀌고 도메인 평판이 본인 도메인으로 옮겨간다.
|
|
311
|
-
|
|
312
260
|
---
|
|
313
261
|
|
|
314
262
|
## 문서
|
|
315
263
|
|
|
316
|
-
|
|
264
|
+
전체 매뉴얼은 [Wiki (한국어)](https://github.com/HyperAITeam/CLITrigger/wiki/Home-KR)에 있다.
|
|
317
265
|
|
|
318
266
|
| 문서 | 내용 |
|
|
319
267
|
|------|------|
|
|
320
|
-
| [Wiki (한국어)](https://github.com/HyperAITeam/CLITrigger/wiki/Home-KR) | 기능별
|
|
321
|
-
| [SETUP.md](docs/SETUP.md) |
|
|
322
|
-
| [changelog/](docs/changelog/README.md) | 변경 이력
|
|
323
|
-
| [CICD.md](docs/CICD.md) | GitHub Actions
|
|
324
|
-
| [TESTING.md](docs/TESTING.md) | 테스트
|
|
268
|
+
| [Wiki (한국어)](https://github.com/HyperAITeam/CLITrigger/wiki/Home-KR) | 기능별 가이드, 스크린샷 포함 |
|
|
269
|
+
| [SETUP.md](docs/SETUP.md) | 설치와 사용법, 항목별 정리 |
|
|
270
|
+
| [changelog/](docs/changelog/README.md) | 날짜별 변경 이력 |
|
|
271
|
+
| [CICD.md](docs/CICD.md) | GitHub Actions 설정 |
|
|
272
|
+
| [TESTING.md](docs/TESTING.md) | 테스트 구조 |
|
|
325
273
|
|
|
326
274
|
---
|
|
327
275
|
|
|
328
|
-
##
|
|
329
|
-
|
|
330
|
-
CLITrigger가 시간을 아껴 줬다면 [**Star 한 번 눌러주세요**](https://github.com/HyperAITeam/CLITrigger) — 더 많은 개발자에게 닿는 데 정말 큰 도움이 됩니다.
|
|
276
|
+
## 함께 만들기
|
|
331
277
|
|
|
332
|
-
|
|
278
|
+
저녁 시간 하나를 아꼈다면 [Star](https://github.com/HyperAITeam/CLITrigger) 하나가 다른 사람이 이걸 찾는 데 도움이 된다.
|
|
333
279
|
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
-
-
|
|
337
|
-
|
|
338
|
-
Star 하나, 이슈 하나, PR 하나가 프로젝트 속도를 바꿉니다. 감사합니다 🙏
|
|
339
|
-
|
|
340
|
-
---
|
|
341
|
-
|
|
342
|
-
## 기여자 (Contributors)
|
|
343
|
-
|
|
344
|
-
CLITrigger에 기여해 주신 모든 분들께 감사드립니다!
|
|
280
|
+
- 버그, 기능 제안, 덜 익은 아이디어: [Issues](https://github.com/HyperAITeam/CLITrigger/issues)
|
|
281
|
+
- PR: [`good first issue`](https://github.com/HyperAITeam/CLITrigger/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)부터, 아니면 거슬렸던 거 아무거나
|
|
282
|
+
- 잘 먹힌 워크플로우, 플러그인, 루프 규칙: [Discussions](https://github.com/HyperAITeam/CLITrigger/discussions)
|
|
345
283
|
|
|
346
284
|
<a href="https://github.com/HyperAITeam/CLITrigger/graphs/contributors">
|
|
347
285
|
<img src="https://contrib.rocks/image?repo=HyperAITeam/CLITrigger" alt="Contributors" />
|
|
@@ -361,9 +299,7 @@ CLITrigger에 기여해 주신 모든 분들께 감사드립니다!
|
|
|
361
299
|
|
|
362
300
|
---
|
|
363
301
|
|
|
364
|
-
##
|
|
365
|
-
|
|
366
|
-
이 프로젝트가 도움이 됐다면 커피 한 잔 사주세요!
|
|
302
|
+
## 커피
|
|
367
303
|
|
|
368
304
|
<div align="center">
|
|
369
305
|
|
|
@@ -375,4 +311,4 @@ CLITrigger에 기여해 주신 모든 분들께 감사드립니다!
|
|
|
375
311
|
|
|
376
312
|
## 라이선스
|
|
377
313
|
|
|
378
|
-
[MIT](LICENSE)
|
|
314
|
+
[MIT](LICENSE)
|