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.
- package/README.ko.md +26 -77
- package/README.md +28 -81
- package/bin/rune.js +43 -702
- package/package.json +10 -40
- package/.claude-plugin/marketplace.json +0 -17
- package/.claude-plugin/plugin.json +0 -24
- package/.mcp.json +0 -16
- package/bootstrap.js +0 -8
- package/channel/rune-channel.ts +0 -486
- package/electron-builder.yml +0 -61
- package/finder-extension/FinderSync.swift +0 -47
- package/finder-extension/RuneFinderSync.appex/Contents/Info.plist +0 -27
- package/finder-extension/RuneFinderSync.appex/Contents/MacOS/RuneFinderSync +0 -0
- package/finder-extension/main.swift +0 -5
- package/renderer/index.html +0 -12
- package/renderer/src/App.tsx +0 -44
- package/renderer/src/features/chat/activity-block.tsx +0 -152
- package/renderer/src/features/chat/chat-header.tsx +0 -58
- package/renderer/src/features/chat/chat-input.tsx +0 -190
- package/renderer/src/features/chat/chat-panel.tsx +0 -151
- package/renderer/src/features/chat/markdown-renderer.tsx +0 -26
- package/renderer/src/features/chat/message-bubble.tsx +0 -79
- package/renderer/src/features/chat/message-list.tsx +0 -178
- package/renderer/src/features/chat/types.ts +0 -32
- package/renderer/src/features/chat/use-chat.ts +0 -260
- package/renderer/src/features/terminal/terminal-panel.tsx +0 -155
- package/renderer/src/global.d.ts +0 -29
- package/renderer/src/globals.css +0 -92
- package/renderer/src/hooks/use-ipc.ts +0 -24
- package/renderer/src/lib/markdown.ts +0 -83
- package/renderer/src/lib/utils.ts +0 -6
- package/renderer/src/main.tsx +0 -10
- package/renderer/tsconfig.json +0 -16
- package/renderer/vite.config.ts +0 -23
- package/screenshot-chatting-ui.png +0 -0
- package/src/main.ts +0 -796
- package/src/preload.ts +0 -58
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|