@caoruhua/open-claude-remote 1.0.9 → 1.3.7
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 +48 -27
- package/dist/backend/src/api/file-routes.d.ts +0 -24
- package/dist/backend/src/api/file-routes.d.ts.map +1 -1
- package/dist/backend/src/api/file-routes.js +464 -68
- package/dist/backend/src/api/file-routes.js.map +1 -1
- package/dist/backend/src/api/instance-routes.d.ts +4 -0
- package/dist/backend/src/api/instance-routes.d.ts.map +1 -1
- package/dist/backend/src/api/instance-routes.js +27 -2
- package/dist/backend/src/api/instance-routes.js.map +1 -1
- package/dist/backend/src/cli-utils.d.ts +2 -0
- package/dist/backend/src/cli-utils.d.ts.map +1 -1
- package/dist/backend/src/cli-utils.js +11 -1
- package/dist/backend/src/cli-utils.js.map +1 -1
- package/dist/backend/src/cli.d.ts +6 -0
- package/dist/backend/src/cli.d.ts.map +1 -1
- package/dist/backend/src/cli.js +73 -10
- package/dist/backend/src/cli.js.map +1 -1
- package/dist/backend/src/config.d.ts +11 -0
- package/dist/backend/src/config.d.ts.map +1 -1
- package/dist/backend/src/config.js +36 -1
- package/dist/backend/src/config.js.map +1 -1
- package/dist/backend/src/daemon/daemon-client.d.ts +1 -0
- package/dist/backend/src/daemon/daemon-client.d.ts.map +1 -1
- package/dist/backend/src/daemon/daemon-client.js +1 -0
- package/dist/backend/src/daemon/daemon-client.js.map +1 -1
- package/dist/backend/src/daemon/daemon-entry.js +19 -6
- package/dist/backend/src/daemon/daemon-entry.js.map +1 -1
- package/dist/backend/src/daemon/daemon-launcher.d.ts.map +1 -1
- package/dist/backend/src/daemon/daemon-launcher.js +4 -1
- package/dist/backend/src/daemon/daemon-launcher.js.map +1 -1
- package/dist/backend/src/daemon/restart-state.d.ts +1 -0
- package/dist/backend/src/daemon/restart-state.d.ts.map +1 -1
- package/dist/backend/src/daemon/restart-state.js.map +1 -1
- package/dist/backend/src/deps/detector.js +1 -1
- package/dist/backend/src/deps/index.d.ts +1 -1
- package/dist/backend/src/deps/index.js +22 -22
- package/dist/backend/src/deps/installer.js +6 -6
- package/dist/backend/src/deps/installer.js.map +1 -1
- package/dist/backend/src/deps/types.d.ts +1 -1
- package/dist/backend/src/deps/types.d.ts.map +1 -1
- package/dist/backend/src/deps/types.js +9 -11
- package/dist/backend/src/deps/types.js.map +1 -1
- package/dist/backend/src/index.d.ts.map +1 -1
- package/dist/backend/src/index.js +29 -6
- package/dist/backend/src/index.js.map +1 -1
- package/dist/backend/src/instance/instance-manager.d.ts +4 -0
- package/dist/backend/src/instance/instance-manager.d.ts.map +1 -1
- package/dist/backend/src/instance/instance-manager.js +30 -7
- package/dist/backend/src/instance/instance-manager.js.map +1 -1
- package/dist/backend/src/instance/instance-session.d.ts +6 -1
- package/dist/backend/src/instance/instance-session.d.ts.map +1 -1
- package/dist/backend/src/instance/instance-session.js +9 -3
- package/dist/backend/src/instance/instance-session.js.map +1 -1
- package/dist/backend/src/instance/types.d.ts +1 -0
- package/dist/backend/src/instance/types.d.ts.map +1 -1
- package/dist/backend/src/pty/fix-pty-permissions.d.ts +1 -1
- package/dist/backend/src/pty/fix-pty-permissions.js +1 -1
- package/dist/backend/src/pty/output-buffer.d.ts +6 -0
- package/dist/backend/src/pty/output-buffer.d.ts.map +1 -1
- package/dist/backend/src/pty/output-buffer.js +10 -0
- package/dist/backend/src/pty/output-buffer.js.map +1 -1
- package/dist/backend/src/registry/stop-instances.js +1 -1
- package/dist/backend/src/services/pptx-converter.d.ts +66 -0
- package/dist/backend/src/services/pptx-converter.d.ts.map +1 -0
- package/dist/backend/src/services/pptx-converter.js +282 -0
- package/dist/backend/src/services/pptx-converter.js.map +1 -0
- package/dist/backend/src/update.d.ts +2 -2
- package/dist/backend/src/update.d.ts.map +1 -1
- package/dist/backend/src/update.js +9 -9
- package/dist/backend/src/update.js.map +1 -1
- package/dist/backend/src/utils/banner.d.ts +2 -0
- package/dist/backend/src/utils/banner.d.ts.map +1 -1
- package/dist/backend/src/utils/banner.js +2 -1
- package/dist/backend/src/utils/banner.js.map +1 -1
- package/dist/backend/src/utils/network.d.ts +22 -0
- package/dist/backend/src/utils/network.d.ts.map +1 -1
- package/dist/backend/src/utils/network.js +54 -0
- package/dist/backend/src/utils/network.js.map +1 -1
- package/dist/shared/file-types.d.ts +176 -0
- package/dist/shared/file-types.d.ts.map +1 -0
- package/dist/shared/file-types.js +108 -0
- package/dist/shared/file-types.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/instance.d.ts +2 -0
- package/dist/shared/instance.d.ts.map +1 -1
- package/dist/shared/instance.js.map +1 -1
- package/frontend-dist/assets/{index-UXAwH56Q.css → index-BY0fnkbW.css} +1 -1
- package/frontend-dist/assets/index-qwSai8-t.js +211 -0
- package/frontend-dist/index.html +2 -2
- package/package.json +8 -4
- package/scripts/build.sh +3 -9
- package/scripts/dev.sh +1 -4
- package/scripts/git-hooks/pre-commit +0 -4
- package/scripts/publish-npm.sh +61 -0
- package/scripts/stop.sh +1 -1
- package/frontend-dist/assets/index-CVRtrLyp.js +0 -199
package/README.md
CHANGED
|
@@ -19,16 +19,11 @@ View terminal output, send commands, and approve tool calls from your phone —
|
|
|
19
19
|
|
|
20
20
|
### 1. Install
|
|
21
21
|
|
|
22
|
-
```
|
|
23
|
-
#
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# pnpm (recommended)
|
|
27
|
-
pnpm add -g @caoruhua/open-claude-remote
|
|
22
|
+
```bashs
|
|
23
|
+
# tnpm (recommended)
|
|
24
|
+
tnpm install -g @alipay/open-claude-remote
|
|
28
25
|
```
|
|
29
26
|
|
|
30
|
-
> **Note for pnpm users**: pnpm v10 may show a warning about "Ignored build scripts: node-pty". This is expected and **does not affect functionality** — the package includes prebuilt binaries that work out of the box. To suppress the warning, run `pnpm approve-builds -g` (optional).
|
|
31
|
-
|
|
32
27
|
### 2. Run
|
|
33
28
|
|
|
34
29
|
```bash
|
|
@@ -53,6 +48,7 @@ Scan the QR code shown in your terminal with your phone. The auth token is auto-
|
|
|
53
48
|
- LAN IP change notification with new connection URL
|
|
54
49
|
- Smart auto-scroll with a "scroll to bottom" floating button — respects your scroll position when browsing history
|
|
55
50
|
- **Tap-to-focus** — clicking anywhere in the terminal automatically focuses the input bar for a seamless typing experience
|
|
51
|
+
- **Long-press to copy** — long-press the terminal to open a copy menu: "Select Copy" enters a plain text view for native text selection, "Copy All" copies the entire terminal output to clipboard
|
|
56
52
|
|
|
57
53
|
### Multi-Network Access (WiFi + VPN)
|
|
58
54
|
|
|
@@ -90,6 +86,15 @@ Example: When connected to both WiFi (192.168.x.x) and company VPN (30.x.x.x), b
|
|
|
90
86
|
- **Reduced motion support** — respects `prefers-reduced-motion` accessibility setting
|
|
91
87
|
- **Security** — only files within allowed workspace directories can be viewed
|
|
92
88
|
|
|
89
|
+
### Image Viewer
|
|
90
|
+
- **Browse from file selector** — open any image from the file browser to view it in full-screen mode
|
|
91
|
+
- **Navigate between images** — swipe left/right or tap navigation arrows to browse all images in the current directory
|
|
92
|
+
- **Keyboard navigation** — use ← → arrow keys to navigate between images
|
|
93
|
+
- **Edge tap zones** — tap the left/right 15% of the screen to quickly go to previous/next image
|
|
94
|
+
- **Zoom & pan** — double-tap to zoom, pinch gesture on mobile, drag to pan when zoomed in
|
|
95
|
+
- **Contextual browsing** — navigation only shows images matching current filters (search, category, directory)
|
|
96
|
+
- **Boundary indicators** — prev/next buttons disabled on first/last image with visual feedback
|
|
97
|
+
|
|
93
98
|
### Multi-Instance
|
|
94
99
|
- Run multiple `claude-remote` instances simultaneously in a single daemon process
|
|
95
100
|
- Fixed port 8866 — all instances share same origin, no cross-port auth needed
|
|
@@ -97,6 +102,8 @@ Example: When connected to both WiFi (192.168.x.x) and company VPN (30.x.x.x), b
|
|
|
97
102
|
- Auto-switch when an instance goes offline
|
|
98
103
|
- Spawn new instances from the web UI ("+" button)
|
|
99
104
|
- Copy instance via long-press/right-click tab — pre-fills working directory, settings, and arguments
|
|
105
|
+
- Rename instance via long-press/right-click tab — update instance display name on the fly
|
|
106
|
+
- Close instance via long-press/right-click tab — terminate with confirmation dialog
|
|
100
107
|
- `claude-remote attach <name|id>` to take over a web-spawned instance
|
|
101
108
|
- `claude-remote stop` to stop the daemon and all instances
|
|
102
109
|
|
|
@@ -488,6 +495,13 @@ Install build tools:
|
|
|
488
495
|
- **Node.js** >= 20
|
|
489
496
|
- **Claude Code CLI** — [installation guide](https://docs.anthropic.com/en/docs/claude-code)
|
|
490
497
|
|
|
498
|
+
### Optional Dependencies
|
|
499
|
+
|
|
500
|
+
- **LibreOffice** — Required for viewing PPTX files in the browser. The app will prompt you with installation instructions if you try to open a PPTX file without it.
|
|
501
|
+
- macOS: `brew install --cask libreoffice`
|
|
502
|
+
- Ubuntu/Debian: `sudo apt-get install -y libreoffice`
|
|
503
|
+
- Fedora/RHEL: `sudo dnf install -y libreoffice`
|
|
504
|
+
|
|
491
505
|
---
|
|
492
506
|
|
|
493
507
|
## Development
|
|
@@ -498,13 +512,13 @@ Install build tools:
|
|
|
498
512
|
# Clone and install
|
|
499
513
|
git clone https://github.com/StephenTowne/open-claude-remote.git
|
|
500
514
|
cd open-claude-remote
|
|
501
|
-
|
|
515
|
+
tnpm install
|
|
502
516
|
|
|
503
517
|
# Development mode (with hot reload)
|
|
504
|
-
|
|
518
|
+
tnpm dev:cli
|
|
505
519
|
|
|
506
520
|
# Production mode
|
|
507
|
-
|
|
521
|
+
tnpm run build && npm link && claude-remote
|
|
508
522
|
```
|
|
509
523
|
|
|
510
524
|
**Project structure:**
|
|
@@ -512,13 +526,13 @@ pnpm build && pnpm link -g && claude-remote
|
|
|
512
526
|
- Backend: `backend/src/` (Express + node-pty + WebSocket)
|
|
513
527
|
- Frontend: `frontend/src/` (React + xterm.js)
|
|
514
528
|
- Shared types: `shared/` (imported via `#shared` alias)
|
|
515
|
-
- Tests: `
|
|
516
|
-
- Build: `
|
|
529
|
+
- Tests: `tnpm test` (Vitest)
|
|
530
|
+
- Build: `tnpm run build` (TypeScript + Vite)
|
|
517
531
|
|
|
518
532
|
### Stop all instances
|
|
519
533
|
|
|
520
534
|
```bash
|
|
521
|
-
|
|
535
|
+
tnpm stop
|
|
522
536
|
```
|
|
523
537
|
|
|
524
538
|
---
|
|
@@ -544,15 +558,10 @@ MIT
|
|
|
544
558
|
### 1. 安装
|
|
545
559
|
|
|
546
560
|
```bash
|
|
547
|
-
#
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
# pnpm(推荐)
|
|
551
|
-
pnpm add -g @caoruhua/open-claude-remote
|
|
561
|
+
# tnpm(推荐)
|
|
562
|
+
tnpm install -g @alipay/open-claude-remote
|
|
552
563
|
```
|
|
553
564
|
|
|
554
|
-
> **pnpm 用户注意**:pnpm v10 可能显示 "Ignored build scripts: node-pty" 警告。这是正常的,**不影响功能** — 包含预编译的二进制文件,开箱即用。要消除警告,运行 `pnpm approve-builds -g`(可选)。
|
|
555
|
-
|
|
556
565
|
### 2. 运行
|
|
557
566
|
|
|
558
567
|
```bash
|
|
@@ -577,6 +586,7 @@ claude-remote
|
|
|
577
586
|
- 局域网 IP 变更通知,附带新连接地址
|
|
578
587
|
- 智能自动滚动,配有"滚动到底部"悬浮按钮 — 浏览历史时尊重你的滚动位置
|
|
579
588
|
- **点击聚焦** — 点击终端任意位置自动聚焦输入框,打字体验更流畅
|
|
589
|
+
- **长按复制** — 长按终端区域弹出复制菜单:「选择复制」进入纯文本视图可原生选择文字,「复制全部」一键复制全部终端内容到剪贴板
|
|
580
590
|
|
|
581
591
|
### 多网络访问(WiFi + VPN)
|
|
582
592
|
|
|
@@ -614,6 +624,15 @@ claude-remote
|
|
|
614
624
|
- **减少动画支持** — 尊重 `prefers-reduced-motion` 无障碍设置
|
|
615
625
|
- **安全限制** — 仅允许查看工作目录白名单内的文件
|
|
616
626
|
|
|
627
|
+
### 图片查看器
|
|
628
|
+
- **从文件浏览器打开** — 在文件浏览器中打开任意图片,全屏查看
|
|
629
|
+
- **图片间导航** — 左右滑动或点击导航箭头浏览当前目录下的所有图片
|
|
630
|
+
- **键盘导航** — 使用 ← → 方向键在图片间切换
|
|
631
|
+
- **边缘点击区域** — 点击屏幕左/右 15% 区域快速切换上一张/下一张
|
|
632
|
+
- **缩放与拖动** — 双击缩放、移动端捏合手势、放大后可拖动查看
|
|
633
|
+
- **上下文浏览** — 导航仅显示符合当前筛选条件的图片(搜索、分类、目录)
|
|
634
|
+
- **边界提示** — 首张/末张图片时禁用上一张/下一张按钮并显示视觉反馈
|
|
635
|
+
|
|
617
636
|
### 多实例支持
|
|
618
637
|
- 在单个守护进程中同时运行多个 `claude-remote` 实例
|
|
619
638
|
- 固定端口 8866 — 所有实例共享同源,无需跨端口认证
|
|
@@ -621,6 +640,8 @@ claude-remote
|
|
|
621
640
|
- 实例离线时自动切换
|
|
622
641
|
- 从 Web UI 生成新实例("+" 按钮)
|
|
623
642
|
- 长按/右键标签复制实例 — 预填充工作目录、设置和参数
|
|
643
|
+
- 长按/右键标签重命名实例 — 实时更新实例显示名称
|
|
644
|
+
- 长按/右键标签关闭实例 — 确认后终止实例
|
|
624
645
|
- `claude-remote attach <名称|ID>` 接管 Web 生成的实例
|
|
625
646
|
- `claude-remote stop` 停止守护进程和所有实例
|
|
626
647
|
|
|
@@ -1022,13 +1043,13 @@ claude-remote update
|
|
|
1022
1043
|
# 克隆并安装
|
|
1023
1044
|
git clone https://github.com/StephenTowne/open-claude-remote.git
|
|
1024
1045
|
cd open-claude-remote
|
|
1025
|
-
|
|
1046
|
+
tnpm install
|
|
1026
1047
|
|
|
1027
1048
|
# 开发模式(热重载)
|
|
1028
|
-
|
|
1049
|
+
tnpm dev:cli
|
|
1029
1050
|
|
|
1030
1051
|
# 生产模式
|
|
1031
|
-
|
|
1052
|
+
tnpm run build && npm link && claude-remote
|
|
1032
1053
|
```
|
|
1033
1054
|
|
|
1034
1055
|
**项目结构:**
|
|
@@ -1036,13 +1057,13 @@ pnpm build && pnpm link -g && claude-remote
|
|
|
1036
1057
|
- 后端:`backend/src/`(Express + node-pty + WebSocket)
|
|
1037
1058
|
- 前端:`frontend/src/`(React + xterm.js)
|
|
1038
1059
|
- 共享类型:`shared/`(通过 `#shared` 别名导入)
|
|
1039
|
-
- 测试:`
|
|
1040
|
-
- 构建:`
|
|
1060
|
+
- 测试:`tnpm test`(Vitest)
|
|
1061
|
+
- 构建:`tnpm run build`(TypeScript + Vite)
|
|
1041
1062
|
|
|
1042
1063
|
### 停止所有实例
|
|
1043
1064
|
|
|
1044
1065
|
```bash
|
|
1045
|
-
|
|
1066
|
+
tnpm stop
|
|
1046
1067
|
```
|
|
1047
1068
|
|
|
1048
1069
|
---
|
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { AuthModule } from '../auth/auth-middleware.js';
|
|
3
3
|
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
4
|
-
/** Markdown 文件信息 */
|
|
5
|
-
export interface MarkdownFileItem {
|
|
6
|
-
filename: string;
|
|
7
|
-
absolutePath: string;
|
|
8
|
-
relativePath: string;
|
|
9
|
-
size: number;
|
|
10
|
-
modifiedAt: string;
|
|
11
|
-
}
|
|
12
|
-
/** 文件列表响应 */
|
|
13
|
-
export interface FileListResponse {
|
|
14
|
-
files: MarkdownFileItem[];
|
|
15
|
-
cwd: string;
|
|
16
|
-
total: number;
|
|
17
|
-
}
|
|
18
|
-
export interface FileReadResponse {
|
|
19
|
-
/** 文件内容 */
|
|
20
|
-
content: string;
|
|
21
|
-
/** 文件路径(绝对路径) */
|
|
22
|
-
path: string;
|
|
23
|
-
/** 文件名 */
|
|
24
|
-
filename: string;
|
|
25
|
-
/** 文件大小(字节) */
|
|
26
|
-
size: number;
|
|
27
|
-
}
|
|
28
4
|
export declare function createFileRoutes(authModule: AuthModule, instanceManager: InstanceManager): Router;
|
|
29
5
|
//# sourceMappingURL=file-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/file-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"file-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/file-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA0PvE,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAitBR"}
|