openrune 0.2.0 → 0.2.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 (2) hide show
  1. package/README.md +80 -40
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -19,13 +19,14 @@
19
19
 
20
20
  ## What is Rune?
21
21
 
22
- Rune turns any folder into an AI workspace. Each `.rune` file is an independent AI agent with its own chat history, role, and context all powered by [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
22
+ Rune is a file-based agent harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Each `.rune` file is an independent AI agent with its own role, memory, and context. Run it from the CLI, chain agents together, automate with triggers, or open the desktop UI.
23
23
 
24
24
  - **File-based** — One `.rune` file = one agent. Move it, share it, version it with git.
25
- - **Folder-aware** — The agent knows your project. It can read files, run commands, and write code.
26
- - **Real-time activity** — See every tool call, permission request, and agent action as it happens via Claude Code hooks.
27
- - **Desktop-native** — Lightweight Electron app with built-in terminal. No browser needed.
28
- - **Right-click to create** — macOS Quick Action lets you create agents from Finder.
25
+ - **Headless execution** — Run agents from the CLI or scripts. No GUI needed.
26
+ - **Agent chaining** — Pipe agents together in a pipeline. Output input, automatically.
27
+ - **Automated triggers** — Run agents on file changes, git commits, or a cron schedule.
28
+ - **Node.js API** — Use agents programmatically with `require('openrune')`.
29
+ - **Desktop UI** — Chat interface with real-time activity monitoring and built-in terminal.
29
30
 
30
31
  ---
31
32
 
@@ -33,15 +34,15 @@ Rune turns any folder into an AI workspace. Each `.rune` file is an independent
33
34
 
34
35
  Building a Claude Code harness usually means wiring up process management, I/O parsing, state handling, and a UI from scratch. Rune lets you skip all of that — just drop a file and go.
35
36
 
36
- **No harness boilerplate** — No SDK wiring, no process management, no custom I/O parsing. One `.rune` file gives you a fully working Claude Code agent with a desktop UI.
37
+ **No harness boilerplate** — No SDK wiring, no process management, no custom I/O parsing. One `.rune` file gives you a fully working agent you can run from CLI, scripts, or the desktop UI.
37
38
 
38
- **Persistent context** — Your agent remembers everything. Close the app, reopen it next week — the conversation and context are right where you left off.
39
+ **Persistent context** — Role, memory, and chat history live in the `.rune` file. Close the app, reopen it next week — the agent picks up right where you left off.
39
40
 
40
- **Portable** — The `.rune` file is just a JSON file. Copy it to another machine, share it with a teammate, or check it into git. Your agent goes wherever the file goes.
41
+ **Portable & shareable** — The `.rune` file is just JSON. Commit it to git, share it with teammates, or move it to another machine. The agent goes wherever the file goes.
41
42
 
42
- **Multiple agents per folder** — Need a code reviewer AND a backend developer in the same project? Create two `.rune` files. Each agent has its own role, history, and expertise — working side by side in the same folder.
43
+ **Multiple agents per project** — A reviewer, a backend dev, a designer each with its own role and history, working side by side in the same folder.
43
44
 
44
- **No setup per project** — No config files, no extensions, no workspace settings. Drop a `.rune` file and you're ready.
45
+ **Scriptable** — Chain agents, set up triggers, or call agents from your own code via the Node.js API. One file format, multiple ways to use it.
45
46
 
46
47
  <p align="center">
47
48
  <img src="demo.gif" width="100%" alt="Rune demo" />
@@ -75,39 +76,65 @@ Or right-click any folder in Finder → Quick Actions → **New Rune**
75
76
  <img src="Screenshot.png" width="500" alt="Right-click to create a Rune agent" />
76
77
  </p>
77
78
 
78
- ### 3. Open and chat
79
+ ### 3. Use it
79
80
 
80
- **Double-click** the `.rune` file, or:
81
+ **Desktop UI** — Double-click the `.rune` file, or:
81
82
 
82
83
  ```bash
83
84
  rune open myagent.rune
84
85
  ```
85
86
 
87
+ **Headless** — Run from the CLI without a GUI:
88
+
89
+ ```bash
90
+ rune run myagent.rune "Explain this project's architecture"
91
+ ```
92
+
86
93
  ---
87
94
 
88
- ## Features
95
+ ## Use Cases
96
+
97
+ **Solo dev workflow** — Create `reviewer.rune` and `coder.rune` in your project. Use one to write code, the other to review it. Each agent keeps its own context and history.
98
+
99
+ **Automated code review** — Set up a trigger to review every commit automatically:
100
+ ```bash
101
+ rune watch reviewer.rune --on git-commit --prompt "Review this commit for bugs and security issues"
102
+ ```
103
+
104
+ **CI/CD integration** — Run agents headlessly in your pipeline:
105
+ ```bash
106
+ rune run qa.rune "Run tests and report any failures" --output json
107
+ ```
108
+
109
+ **Agent pipeline** — Chain specialized agents for complex tasks:
110
+ ```bash
111
+ rune pipe architect.rune coder.rune reviewer.rune "Add OAuth2 login flow"
112
+ ```
89
113
 
90
- ### Chat UI
114
+ **Team collaboration** — Commit `.rune` files to git. Your teammates get the same agent with the same role and memory — no setup needed.
91
115
 
92
- - **Markdown rendering** — Code blocks, tables, lists with syntax highlighting.
93
- - **File attachment** — Drag and drop files or click to attach. The agent reads them from your filesystem.
94
- - **Stream cancellation** Stop a response mid-stream.
95
- - **Chat history** — Persisted in the `.rune` file. Clear anytime.
116
+ **Monitoring** — Schedule an agent to check things periodically:
117
+ ```bash
118
+ rune watch ops.rune --on cron --interval 10m --prompt "Check if the API is healthy"
119
+ ```
96
120
 
97
- ### Real-time Activity Monitoring
121
+ ---
98
122
 
99
- Rune uses [Claude Code hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) to capture all agent activity in real-time:
123
+ ## Features
100
124
 
101
- - **Tool calls** — See when the agent reads files, edits code, runs commands.
102
- - **Tool results** — See the output of each action.
103
- - **Permission requests** — Get notified when the agent needs approval.
104
- - **Session events** — Track when sessions start, stop, or encounter errors.
125
+ ### Harness
105
126
 
106
- No more guessing what the agent is doing everything is visible in the chat panel.
127
+ - **Headless execution** `rune run` lets you run agents from the CLI, scripts, or CI/CD. No GUI needed.
128
+ - **Agent chaining** — `rune pipe` connects agents in sequence. Each agent's output feeds into the next.
129
+ - **Automated triggers** — `rune watch` runs agents on file changes, git commits, or a cron schedule.
130
+ - **Node.js API** — `require('openrune')` to use agents programmatically in your own code.
131
+ - **Persistent context** — Role, memory, and chat history are saved in the `.rune` file across sessions.
107
132
 
108
- ### Built-in Terminal
133
+ ### Desktop UI
109
134
 
110
- Toggle the terminal panel to see raw Claude Code output or run your own commands alongside the agent.
135
+ - **Chat interface** Markdown rendering, file attachment, stream cancellation.
136
+ - **Real-time activity** — See every tool call, result, and permission request as it happens via [Claude Code hooks](https://docs.anthropic.com/en/docs/claude-code/hooks).
137
+ - **Built-in terminal** — Raw Claude Code output and your own commands, side by side.
111
138
 
112
139
  ### Agent Roles
113
140
 
@@ -221,21 +248,33 @@ const { finalOutput } = await rune.pipe(
221
248
  ## Architecture
222
249
 
223
250
  ```
224
- User ↔ Chat UI (React)
225
- IPC
226
- Electron Main Process
227
- HTTP + SSE
228
- MCP Channel (rune-channel) Claude Code Hooks
229
- MCP ↕ HTTP POST
230
- Claude Code CLI ──────────────→ rune-channel /hook
251
+ ┌─────────────────────────┐
252
+ │ Desktop UI Mode │
253
+ │ User Chat UI (React) │
254
+ IPC │
255
+ │ Electron Main Process │
256
+ ↕ HTTP + SSE │
257
+ └────────────┬────────────┘
258
+
259
+ ┌────────────┴────────────┐
260
+ │ MCP Channel │ Claude Code Hooks
261
+ │ (rune-channel) │ ↕ HTTP POST
262
+ │ ↕ MCP │←──── rune-channel /hook
263
+ └────────────┬────────────┘
264
+
265
+ ┌────────────┴────────────┐
266
+ │ Claude Code CLI │
267
+ └─────────────────────────┘
268
+
269
+ Harness Mode (rune run / pipe / watch):
270
+ CLI → Claude Code CLI (-p) → stdout
271
+ No MCP channel, no Electron — direct execution
231
272
  ```
232
273
 
233
- **Two paths for data:**
234
-
235
- 1. **Chat input** → MCP channel → Claude Code (user messages)
236
- 2. **Claude Code hooks** → rune-channel → SSE → Chat UI (activity monitoring)
274
+ **Two modes of operation:**
237
275
 
238
- The hooks approach ensures Rune sees everything Claude does, without relying on the agent to self-report.
276
+ 1. **Desktop UI** Chat input MCP channel → Claude Code, with hooks for real-time activity monitoring.
277
+ 2. **Harness** — Direct CLI execution via `claude -p`. Agents run headlessly with context from the `.rune` file.
239
278
 
240
279
  ---
241
280
 
@@ -263,7 +302,8 @@ npm run build
263
302
 
264
303
  ```
265
304
  Rune/
266
- bin/rune.js # CLI tool (install, new, open, list)
305
+ bin/rune.js # CLI (install, new, open, run, pipe, watch, list)
306
+ lib/index.js # Node.js API (require('openrune'))
267
307
  src/
268
308
  main.ts # Electron main process
269
309
  preload.ts # Preload bridge (IPC security)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrune",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Rune — File-based AI Agent Harness for Claude Code",
5
5
  "keywords": ["ai", "agent", "claude", "desktop", "electron", "mcp", "claude-code", "harness", "automation"],
6
6
  "repository": {