openrune 1.1.2 → 2.0.1

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 (38) hide show
  1. package/README.ko.md +26 -77
  2. package/README.md +28 -81
  3. package/bin/rune.js +43 -702
  4. package/package.json +10 -40
  5. package/.claude-plugin/marketplace.json +0 -17
  6. package/.claude-plugin/plugin.json +0 -24
  7. package/.mcp.json +0 -16
  8. package/bootstrap.js +0 -8
  9. package/channel/rune-channel.ts +0 -486
  10. package/electron-builder.yml +0 -61
  11. package/finder-extension/FinderSync.swift +0 -47
  12. package/finder-extension/RuneFinderSync.appex/Contents/Info.plist +0 -27
  13. package/finder-extension/RuneFinderSync.appex/Contents/MacOS/RuneFinderSync +0 -0
  14. package/finder-extension/main.swift +0 -5
  15. package/renderer/index.html +0 -12
  16. package/renderer/src/App.tsx +0 -44
  17. package/renderer/src/features/chat/activity-block.tsx +0 -152
  18. package/renderer/src/features/chat/chat-header.tsx +0 -58
  19. package/renderer/src/features/chat/chat-input.tsx +0 -190
  20. package/renderer/src/features/chat/chat-panel.tsx +0 -151
  21. package/renderer/src/features/chat/markdown-renderer.tsx +0 -26
  22. package/renderer/src/features/chat/message-bubble.tsx +0 -79
  23. package/renderer/src/features/chat/message-list.tsx +0 -178
  24. package/renderer/src/features/chat/types.ts +0 -32
  25. package/renderer/src/features/chat/use-chat.ts +0 -260
  26. package/renderer/src/features/terminal/terminal-panel.tsx +0 -155
  27. package/renderer/src/global.d.ts +0 -29
  28. package/renderer/src/globals.css +0 -92
  29. package/renderer/src/hooks/use-ipc.ts +0 -24
  30. package/renderer/src/lib/markdown.ts +0 -83
  31. package/renderer/src/lib/utils.ts +0 -6
  32. package/renderer/src/main.tsx +0 -10
  33. package/renderer/tsconfig.json +0 -16
  34. package/renderer/vite.config.ts +0 -23
  35. package/screenshot-chatting-ui.png +0 -0
  36. package/src/main.ts +0 -796
  37. package/src/preload.ts +0 -58
  38. package/tsconfig.json +0 -14
package/README.ko.md CHANGED
@@ -19,10 +19,6 @@
19
19
  <img src="https://img.shields.io/badge/license-MIT-green" alt="license" />
20
20
  </p>
21
21
 
22
- <p align="center">
23
- <img src="screenshot-chatting-ui.png" width="800" alt="Rune 데스크톱 UI — 4개 에이전트 협업" />
24
- </p>
25
-
26
22
  ---
27
23
 
28
24
  ## 사전 준비
@@ -35,9 +31,29 @@ npm install -g @anthropic-ai/claude-code
35
31
  claude # 로그인이 안 되어 있다면 실행
36
32
  ```
37
33
 
38
- > **Rune의 작동 방식:** Rune은 Claude Code의 커스텀 채널(현재 베타)을 사용하여 에이전트 기능을 확장합니다. Claude API에 직접 접근하거나 인증을 처리하지 않으며, 모든 실행은 공식 Claude Code CLI를 통해 이루어집니다.
34
+ ### Rune의 작동 방식
35
+
36
+ Rune은 Claude API를 호출하거나, 인증 정보를 다루거나, Claude Code 내부를 래핑하지 않습니다. 모든 에이전트 호출은 공식 `claude` CLI에 대한 단순한 서브프로세스 호출입니다:
37
+
38
+ ```
39
+ rune run reviewer.rune "..."
40
+
41
+
42
+ spawn('claude', ['-p', '--print',
43
+ '--mcp-config', '{"mcpServers":{}}',
44
+ '--strict-mcp-config',
45
+ '--system-prompt', <역할 + 메모리 + 최근 대화>,
46
+ '--', <사용자 프롬프트>])
47
+
48
+
49
+ Claude Code CLI (이미 로그인된 세션)
50
+ ```
39
51
 
40
- > **사용량:** Rune은 사용자의 Claude Code CLI 세션을 통해 실행됩니다. 사용량은 일반 Claude Code 구독에서 차감됩니다.
52
+ 핵심 요약:
53
+ - **API 키 없음, OAuth 가로채기 없음.** Rune은 이미 인증된 `claude` CLI를 그대로 사용합니다.
54
+ - **MCP 격리.** `--mcp-config '{"mcpServers":{}}' --strict-mcp-config` 를 넘겨서 프로젝트의 `.mcp.json`이 에이전트 실행 중 자동 로드되지 않도록 합니다. 작업 폴더의 파일은 건드리지 않습니다.
55
+ - **상태는 `.rune` 파일에.** 역할, 메모리, 대화 히스토리는 디스크에 있는 평범한 JSON입니다. Rune은 매 실행마다 이를 시스템 프롬프트에 주입합니다 — 이것이 서버 없이 영구 저장이 가능한 이유입니다.
56
+ - **사용량:** Claude Code CLI 세션을 통해 실행되므로 일반 Claude Code 구독에서 차감됩니다.
41
57
 
42
58
  ## 설치
43
59
 
@@ -45,6 +61,10 @@ claude # 로그인이 안 되어 있다면
45
61
  npm install -g openrune
46
62
  ```
47
63
 
64
+ 순수 Node.js CLI — Electron, GUI, postinstall 스크립트 없음.
65
+
66
+ > 채팅 GUI를 찾으신다면 **[RuneChat](https://github.com/gilhyun/runechat)** 을 확인하세요 — `.rune` 에이전트를 위한 데스크톱 메신저 앱입니다.
67
+
48
68
  ---
49
69
 
50
70
  ## 30초 빠른 시작
@@ -282,75 +302,6 @@ const { finalOutput } = await rune.pipe(
282
302
 
283
303
  ---
284
304
 
285
- ## 예제: 에이전트 기반 API 서버
286
-
287
- 처음부터 에이전트가 구축한 서버까지의 전체 과정.
288
-
289
- ### 1. 설치 및 에이전트 생성
290
-
291
- ```bash
292
- npm install -g openrune
293
- mkdir my-project && cd my-project
294
-
295
- rune new architect --role "Software architect. Design system architecture concisely."
296
- rune new coder --role "Backend developer. Implement code based on the given plan."
297
- rune new reviewer --role "Code reviewer. Review for bugs and security issues."
298
- ```
299
-
300
- ### 2. 에이전트가 협업하여 서버 구축
301
-
302
- ```bash
303
- rune pipe architect.rune coder.rune "Design and build an Express server with POST /review endpoint that uses require('openrune') to load reviewer.rune and send the prompt. Run npm init -y and npm install express openrune." --auto
304
- ```
305
-
306
- architect가 아키텍처 설계 → coder가 `server.js` 작성, `npm init` 실행, 의존성 설치.
307
-
308
- ### 3. 서버 시작
309
-
310
- ```bash
311
- node server.js
312
- ```
313
-
314
- ### 4. API로 에이전트 호출
315
-
316
- ```bash
317
- curl -X POST http://localhost:3000/review \
318
- -H "Content-Type: application/json" \
319
- -d '{"prompt": "Review this project"}'
320
- ```
321
-
322
- reviewer 에이전트가 프로젝트를 분석하고 전체 코드 리뷰를 반환합니다.
323
-
324
- ### 5. 데스크톱 UI 열기
325
-
326
- ```bash
327
- rune open reviewer.rune
328
- ```
329
-
330
- API 호출의 대화 히스토리가 이미 있습니다 — CLI, API, GUI 간에 컨텍스트가 유지됩니다.
331
-
332
- ---
333
-
334
- ## 데스크톱 UI
335
-
336
- Rune은 대화형 채팅을 위한 선택적 데스크톱 앱을 포함합니다.
337
-
338
- ```bash
339
- rune open reviewer.rune
340
- ```
341
-
342
- 또는 Finder에서 `.rune` 파일을 더블 클릭하세요.
343
-
344
- <p align="center">
345
- <img src="screenshot-chatting-ui.png" width="800" alt="Rune 데스크톱 UI" />
346
- </p>
347
-
348
- - **실시간 활동** — 도구 호출, 결과, 권한 요청을 실시간으로 확인.
349
- - **내장 터미널** — Claude Code 출력과 사용자 명령어를 나란히.
350
- - **우클릭으로 생성** — macOS Quick Action으로 Finder에서 에이전트 생성.
351
-
352
- > 더블 클릭이 작동하지 않으면 `rune install`을 한 번 실행하여 파일 연결을 등록하세요.
353
-
354
305
  ---
355
306
 
356
307
  ## CLI 레퍼런스
@@ -362,9 +313,7 @@ rune open reviewer.rune
362
313
  | `rune pipe <a> <b> [...] "prompt" [--auto]` | 에이전트 체이닝 |
363
314
  | `rune loop <doer> <reviewer> "prompt" [--until "..."] [--max-iterations N] [--auto]` | 자기 수정 루프 |
364
315
  | `rune watch <file> --on <event> --prompt "..."` | 자동화 트리거 |
365
- | `rune open <file>` | 데스크톱 UI |
366
316
  | `rune list` | 현재 디렉토리의 에이전트 목록 |
367
- | `rune install` | 파일 연결 및 Quick Action 설정 |
368
317
 
369
318
  **Watch 이벤트:** `git-commit`, `git-push`, `file-change` (`--glob` 사용), `cron` (`--interval` 사용)
370
319
 
package/README.md CHANGED
@@ -19,10 +19,6 @@
19
19
  <img src="https://img.shields.io/badge/license-MIT-green" alt="license" />
20
20
  </p>
21
21
 
22
- <p align="center">
23
- <img src="screenshot-chatting-ui.png" width="800" alt="Rune Desktop UI — 4 agents collaborating" />
24
- </p>
25
-
26
22
  ---
27
23
 
28
24
  ## Prerequisites
@@ -35,9 +31,29 @@ npm install -g @anthropic-ai/claude-code
35
31
  claude # login if you haven't
36
32
  ```
37
33
 
38
- > **How Rune works:** Rune uses Claude Code's custom channels (currently in beta) to extend agent capabilities. It does not access the Claude API directly or handle any authentication — all execution goes through the official Claude Code CLI.
34
+ ### How Rune works
35
+
36
+ Rune does not call the Claude API, handle any credentials, or wrap Claude Code's internals. Every agent invocation is a plain subprocess call to the official `claude` CLI:
37
+
38
+ ```
39
+ rune run reviewer.rune "..."
40
+
41
+
42
+ spawn('claude', ['-p', '--print',
43
+ '--mcp-config', '{"mcpServers":{}}',
44
+ '--strict-mcp-config',
45
+ '--system-prompt', <role + memory + recent history>,
46
+ '--', <your prompt>])
47
+
48
+
49
+ Claude Code CLI (your logged-in session)
50
+ ```
39
51
 
40
- > **Usage:** Rune runs through your Claude Code CLI session. Usage counts toward your normal Claude Code subscription.
52
+ Key points:
53
+ - **No API key, no OAuth shim.** Rune uses your already-authenticated `claude` CLI as-is.
54
+ - **MCP isolation.** Rune passes `--mcp-config '{"mcpServers":{}}' --strict-mcp-config` so your project's `.mcp.json` never gets auto-loaded during an agent run. Nothing in your working folder is touched.
55
+ - **State lives in the `.rune` file.** Role, memory, and conversation history are plain JSON on your disk. Rune injects them into the system prompt each run — that's how persistence works without any server.
56
+ - **Usage:** runs through your Claude Code CLI session, so usage counts toward your normal Claude Code subscription.
41
57
 
42
58
  ## Install
43
59
 
@@ -45,6 +61,10 @@ claude # login if you haven't
45
61
  npm install -g openrune
46
62
  ```
47
63
 
64
+ Pure Node.js CLI — no Electron, no GUI, no postinstall scripts.
65
+
66
+ > Looking for a chat GUI? See **[RuneChat](https://github.com/gilhyun/runechat)** — a desktop messenger for your `.rune` agents.
67
+
48
68
  ---
49
69
 
50
70
  ## 30-Second Quick Start
@@ -159,7 +179,7 @@ rune run manager.rune "Create a summarizer and a translator agent, then pipe the
159
179
  ```
160
180
 
161
181
  The manager will:
162
- 1. Run `rune new summarizer --role "..."`
182
+ 1. Run `rune new summarizer --role "..."`
163
183
  2. Run `rune new translator --role "..."`
164
184
  3. Run `rune pipe summarizer.rune translator.rune "..."`
165
185
  4. If something fails, debug and fix it autonomously
@@ -168,7 +188,7 @@ Agents creating agents. No human intervention.
168
188
 
169
189
  ### Headless execution
170
190
 
171
- Run agents from the terminal. No GUI needed:
191
+ Run agents from the terminal:
172
192
 
173
193
  ```bash
174
194
  rune run reviewer.rune "Review the latest commit"
@@ -282,77 +302,6 @@ const { finalOutput } = await rune.pipe(
282
302
 
283
303
  ---
284
304
 
285
- ## Example: Agent-Powered API Server
286
-
287
- A full walkthrough — from zero to a running server built by agents.
288
-
289
- ### 1. Install and create agents
290
-
291
- ```bash
292
- npm install -g openrune
293
- mkdir my-project && cd my-project
294
-
295
- rune new architect --role "Software architect. Design system architecture concisely."
296
- rune new coder --role "Backend developer. Implement code based on the given plan."
297
- rune new reviewer --role "Code reviewer. Review for bugs and security issues."
298
- ```
299
-
300
- ### 2. Agents collaborate to build a server
301
-
302
- ```bash
303
- rune pipe architect.rune coder.rune "Design and build an Express server with POST /review endpoint that uses require('openrune') to load reviewer.rune and send the prompt. Run npm init -y and npm install express openrune." --auto
304
- ```
305
-
306
- architect designs the architecture → coder writes `server.js`, runs `npm init`, installs dependencies.
307
-
308
- ### 3. Start the server
309
-
310
- ```bash
311
- node server.js
312
- ```
313
-
314
- ### 4. Call the agent via API
315
-
316
- ```bash
317
- curl -X POST http://localhost:3000/review \
318
- -H "Content-Type: application/json" \
319
- -d '{"prompt": "Review this project"}'
320
- ```
321
-
322
- The reviewer agent analyzes your project and returns a full code review.
323
-
324
- ### 5. Open the desktop UI
325
-
326
- ```bash
327
- rune open reviewer.rune
328
- ```
329
-
330
- The conversation history from the API call is already there — context persists across CLI, API, and GUI.
331
-
332
- ---
333
-
334
- ## Desktop UI
335
-
336
- Rune includes an optional desktop app for interactive chat.
337
-
338
- ```bash
339
- rune open reviewer.rune
340
- ```
341
-
342
- Or double-click any `.rune` file in Finder.
343
-
344
- <p align="center">
345
- <img src="screenshot-chatting-ui.png" width="800" alt="Rune Desktop UI" />
346
- </p>
347
-
348
- - **Real-time activity** — See tool calls, results, and permission requests as they happen.
349
- - **Built-in terminal** — Claude Code output and your own commands, side by side.
350
- - **Right-click to create** — macOS Quick Action for creating agents from Finder.
351
-
352
- > If double-click doesn't work, run `rune install` once to register the file association.
353
-
354
- ---
355
-
356
305
  ## CLI Reference
357
306
 
358
307
  | Command | Description |
@@ -362,9 +311,7 @@ Or double-click any `.rune` file in Finder.
362
311
  | `rune pipe <a> <b> [...] "prompt" [--auto]` | Chain agents |
363
312
  | `rune loop <doer> <reviewer> "prompt" [--until "..."] [--max-iterations N] [--auto]` | Self-correction loop |
364
313
  | `rune watch <file> --on <event> --prompt "..."` | Automated triggers |
365
- | `rune open <file>` | Desktop UI |
366
314
  | `rune list` | List agents in current directory |
367
- | `rune install` | Set up file associations & Quick Action |
368
315
 
369
316
  **Watch events:** `git-commit`, `git-push`, `file-change` (with `--glob`), `cron` (with `--interval`)
370
317