@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.
Files changed (99) hide show
  1. package/README.md +48 -27
  2. package/dist/backend/src/api/file-routes.d.ts +0 -24
  3. package/dist/backend/src/api/file-routes.d.ts.map +1 -1
  4. package/dist/backend/src/api/file-routes.js +464 -68
  5. package/dist/backend/src/api/file-routes.js.map +1 -1
  6. package/dist/backend/src/api/instance-routes.d.ts +4 -0
  7. package/dist/backend/src/api/instance-routes.d.ts.map +1 -1
  8. package/dist/backend/src/api/instance-routes.js +27 -2
  9. package/dist/backend/src/api/instance-routes.js.map +1 -1
  10. package/dist/backend/src/cli-utils.d.ts +2 -0
  11. package/dist/backend/src/cli-utils.d.ts.map +1 -1
  12. package/dist/backend/src/cli-utils.js +11 -1
  13. package/dist/backend/src/cli-utils.js.map +1 -1
  14. package/dist/backend/src/cli.d.ts +6 -0
  15. package/dist/backend/src/cli.d.ts.map +1 -1
  16. package/dist/backend/src/cli.js +73 -10
  17. package/dist/backend/src/cli.js.map +1 -1
  18. package/dist/backend/src/config.d.ts +11 -0
  19. package/dist/backend/src/config.d.ts.map +1 -1
  20. package/dist/backend/src/config.js +36 -1
  21. package/dist/backend/src/config.js.map +1 -1
  22. package/dist/backend/src/daemon/daemon-client.d.ts +1 -0
  23. package/dist/backend/src/daemon/daemon-client.d.ts.map +1 -1
  24. package/dist/backend/src/daemon/daemon-client.js +1 -0
  25. package/dist/backend/src/daemon/daemon-client.js.map +1 -1
  26. package/dist/backend/src/daemon/daemon-entry.js +19 -6
  27. package/dist/backend/src/daemon/daemon-entry.js.map +1 -1
  28. package/dist/backend/src/daemon/daemon-launcher.d.ts.map +1 -1
  29. package/dist/backend/src/daemon/daemon-launcher.js +4 -1
  30. package/dist/backend/src/daemon/daemon-launcher.js.map +1 -1
  31. package/dist/backend/src/daemon/restart-state.d.ts +1 -0
  32. package/dist/backend/src/daemon/restart-state.d.ts.map +1 -1
  33. package/dist/backend/src/daemon/restart-state.js.map +1 -1
  34. package/dist/backend/src/deps/detector.js +1 -1
  35. package/dist/backend/src/deps/index.d.ts +1 -1
  36. package/dist/backend/src/deps/index.js +22 -22
  37. package/dist/backend/src/deps/installer.js +6 -6
  38. package/dist/backend/src/deps/installer.js.map +1 -1
  39. package/dist/backend/src/deps/types.d.ts +1 -1
  40. package/dist/backend/src/deps/types.d.ts.map +1 -1
  41. package/dist/backend/src/deps/types.js +9 -11
  42. package/dist/backend/src/deps/types.js.map +1 -1
  43. package/dist/backend/src/index.d.ts.map +1 -1
  44. package/dist/backend/src/index.js +29 -6
  45. package/dist/backend/src/index.js.map +1 -1
  46. package/dist/backend/src/instance/instance-manager.d.ts +4 -0
  47. package/dist/backend/src/instance/instance-manager.d.ts.map +1 -1
  48. package/dist/backend/src/instance/instance-manager.js +30 -7
  49. package/dist/backend/src/instance/instance-manager.js.map +1 -1
  50. package/dist/backend/src/instance/instance-session.d.ts +6 -1
  51. package/dist/backend/src/instance/instance-session.d.ts.map +1 -1
  52. package/dist/backend/src/instance/instance-session.js +9 -3
  53. package/dist/backend/src/instance/instance-session.js.map +1 -1
  54. package/dist/backend/src/instance/types.d.ts +1 -0
  55. package/dist/backend/src/instance/types.d.ts.map +1 -1
  56. package/dist/backend/src/pty/fix-pty-permissions.d.ts +1 -1
  57. package/dist/backend/src/pty/fix-pty-permissions.js +1 -1
  58. package/dist/backend/src/pty/output-buffer.d.ts +6 -0
  59. package/dist/backend/src/pty/output-buffer.d.ts.map +1 -1
  60. package/dist/backend/src/pty/output-buffer.js +10 -0
  61. package/dist/backend/src/pty/output-buffer.js.map +1 -1
  62. package/dist/backend/src/registry/stop-instances.js +1 -1
  63. package/dist/backend/src/services/pptx-converter.d.ts +66 -0
  64. package/dist/backend/src/services/pptx-converter.d.ts.map +1 -0
  65. package/dist/backend/src/services/pptx-converter.js +282 -0
  66. package/dist/backend/src/services/pptx-converter.js.map +1 -0
  67. package/dist/backend/src/update.d.ts +2 -2
  68. package/dist/backend/src/update.d.ts.map +1 -1
  69. package/dist/backend/src/update.js +9 -9
  70. package/dist/backend/src/update.js.map +1 -1
  71. package/dist/backend/src/utils/banner.d.ts +2 -0
  72. package/dist/backend/src/utils/banner.d.ts.map +1 -1
  73. package/dist/backend/src/utils/banner.js +2 -1
  74. package/dist/backend/src/utils/banner.js.map +1 -1
  75. package/dist/backend/src/utils/network.d.ts +22 -0
  76. package/dist/backend/src/utils/network.d.ts.map +1 -1
  77. package/dist/backend/src/utils/network.js +54 -0
  78. package/dist/backend/src/utils/network.js.map +1 -1
  79. package/dist/shared/file-types.d.ts +176 -0
  80. package/dist/shared/file-types.d.ts.map +1 -0
  81. package/dist/shared/file-types.js +108 -0
  82. package/dist/shared/file-types.js.map +1 -0
  83. package/dist/shared/index.d.ts +1 -0
  84. package/dist/shared/index.d.ts.map +1 -1
  85. package/dist/shared/index.js +1 -0
  86. package/dist/shared/index.js.map +1 -1
  87. package/dist/shared/instance.d.ts +2 -0
  88. package/dist/shared/instance.d.ts.map +1 -1
  89. package/dist/shared/instance.js.map +1 -1
  90. package/frontend-dist/assets/{index-UXAwH56Q.css → index-BY0fnkbW.css} +1 -1
  91. package/frontend-dist/assets/index-qwSai8-t.js +211 -0
  92. package/frontend-dist/index.html +2 -2
  93. package/package.json +8 -4
  94. package/scripts/build.sh +3 -9
  95. package/scripts/dev.sh +1 -4
  96. package/scripts/git-hooks/pre-commit +0 -4
  97. package/scripts/publish-npm.sh +61 -0
  98. package/scripts/stop.sh +1 -1
  99. 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
- ```bash
23
- # npm
24
- npm install -g @caoruhua/open-claude-remote
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
- pnpm install
515
+ tnpm install
502
516
 
503
517
  # Development mode (with hot reload)
504
- pnpm dev:cli
518
+ tnpm dev:cli
505
519
 
506
520
  # Production mode
507
- pnpm build && pnpm link -g && claude-remote
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: `pnpm test` (Vitest)
516
- - Build: `pnpm build` (TypeScript + Vite)
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
- pnpm stop
535
+ tnpm stop
522
536
  ```
523
537
 
524
538
  ---
@@ -544,15 +558,10 @@ MIT
544
558
  ### 1. 安装
545
559
 
546
560
  ```bash
547
- # npm
548
- npm install -g @caoruhua/open-claude-remote
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
- pnpm install
1046
+ tnpm install
1026
1047
 
1027
1048
  # 开发模式(热重载)
1028
- pnpm dev:cli
1049
+ tnpm dev:cli
1029
1050
 
1030
1051
  # 生产模式
1031
- pnpm build && pnpm link -g && claude-remote
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
- - 测试:`pnpm test`(Vitest)
1040
- - 构建:`pnpm build`(TypeScript + Vite)
1060
+ - 测试:`tnpm test`(Vitest)
1061
+ - 构建:`tnpm run build`(TypeScript + Vite)
1041
1062
 
1042
1063
  ### 停止所有实例
1043
1064
 
1044
1065
  ```bash
1045
- pnpm stop
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;AAkFvE,oBAAoB;AACpB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,aAAa;AACb,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAmFD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAuTR"}
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"}