claude-run 0.1.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.
- package/README.md +35 -12
- package/dist/index.js +9 -2
- package/dist/web/assets/index-BlBAFDQv.js +289 -0
- package/dist/web/assets/index-qn9mqiTt.css +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-CNFM9z5w.css +0 -1
- package/dist/web/assets/index-DpoqtiXS.js +0 -284
package/README.md
CHANGED
|
@@ -1,31 +1,52 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# Claude Run
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
Browse your Claude Code conversation history in a beautiful web UI
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
[](https://www.npmjs.com/package/claude-run)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
npx claude-run
|
|
9
|
-
```
|
|
10
|
+
<img src=".github/claude-run.gif" alt="Claude Run Demo" width="800" />
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
</div>
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
<br />
|
|
15
|
+
|
|
16
|
+
Run the project simply by executing
|
|
14
17
|
|
|
15
18
|
```bash
|
|
16
|
-
|
|
19
|
+
npx claude-run
|
|
17
20
|
```
|
|
18
21
|
|
|
22
|
+
The browser will open automatically at http://localhost:12001.
|
|
23
|
+
|
|
19
24
|
## Features
|
|
20
25
|
|
|
21
26
|
- **Real-time streaming** - Watch conversations update live as Claude responds
|
|
22
27
|
- **Search** - Find sessions by prompt text or project name
|
|
23
28
|
- **Filter by project** - Focus on specific projects
|
|
29
|
+
- **Resume sessions** - Copy the resume command to continue any conversation in your terminal
|
|
30
|
+
- **Collapsible sidebar** - Maximize your viewing area
|
|
24
31
|
- **Dark mode** - Easy on the eyes
|
|
25
32
|
- **Clean UI** - Familiar chat interface with collapsible tool calls
|
|
26
33
|
|
|
27
34
|
## Usage
|
|
28
35
|
|
|
36
|
+
Install globally via npm:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install -g claude-run
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Then run it from any directory:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
claude-run
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The browser will open automatically at http://localhost:12001, showing all your Claude Code conversations.
|
|
49
|
+
|
|
29
50
|
```bash
|
|
30
51
|
claude-run [options]
|
|
31
52
|
|
|
@@ -41,10 +62,12 @@ Options:
|
|
|
41
62
|
|
|
42
63
|
Claude Code stores conversation history in `~/.claude/`. This tool reads that data and presents it in a web interface with:
|
|
43
64
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
65
|
+
- **Session list** - All your conversations, sorted by recency
|
|
66
|
+
- **Project filter** - Focus on a specific project
|
|
67
|
+
- **Conversation view** - Full message history with tool calls
|
|
68
|
+
- **Session header** - Shows conversation title, project name, and timestamp
|
|
69
|
+
- **Resume command** - Copies the command to resume the conversation
|
|
70
|
+
- **Real-time updates** - SSE streaming for live conversations
|
|
48
71
|
|
|
49
72
|
## Requirements
|
|
50
73
|
|
package/dist/index.js
CHANGED
|
@@ -350,10 +350,17 @@ function offSessionChange(callback) {
|
|
|
350
350
|
// api/server.ts
|
|
351
351
|
import { join as join3, dirname } from "path";
|
|
352
352
|
import { fileURLToPath } from "url";
|
|
353
|
-
import { readFileSync } from "fs";
|
|
353
|
+
import { readFileSync, existsSync } from "fs";
|
|
354
354
|
import open2 from "open";
|
|
355
355
|
var __filename = fileURLToPath(import.meta.url);
|
|
356
356
|
var __dirname = dirname(__filename);
|
|
357
|
+
function getWebDistPath() {
|
|
358
|
+
const prodPath = join3(__dirname, "web");
|
|
359
|
+
if (existsSync(prodPath)) {
|
|
360
|
+
return prodPath;
|
|
361
|
+
}
|
|
362
|
+
return join3(__dirname, "..", "dist", "web");
|
|
363
|
+
}
|
|
357
364
|
function createServer(options) {
|
|
358
365
|
const { port, claudeDir: claudeDir3, dev = false, open: shouldOpen = true } = options;
|
|
359
366
|
initStorage(claudeDir3);
|
|
@@ -489,7 +496,7 @@ function createServer(options) {
|
|
|
489
496
|
}
|
|
490
497
|
});
|
|
491
498
|
});
|
|
492
|
-
const webDistPath =
|
|
499
|
+
const webDistPath = getWebDistPath();
|
|
493
500
|
app.use("/*", serveStatic({ root: webDistPath }));
|
|
494
501
|
app.get("/*", async (c) => {
|
|
495
502
|
const indexPath = join3(webDistPath, "index.html");
|