zcode-pro 0.17.1__tar.gz → 0.17.2__tar.gz

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 (51) hide show
  1. zcode_pro-0.17.2/PKG-INFO +189 -0
  2. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/README.en.md +6 -3
  3. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/README.md +6 -3
  4. zcode_pro-0.17.2/bin/zcode-pro.cmd +48 -0
  5. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro.vbs +2 -1
  6. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/package.json +1 -1
  7. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/pyproject.toml +1 -2
  8. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/helper.mjs +1 -1
  9. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/main.mjs +33 -3
  10. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/paths.mjs +32 -10
  11. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/setup.mjs +1 -1
  12. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/zcode_pro/__init__.py +1 -1
  13. zcode_pro-0.17.1/PKG-INFO +0 -45
  14. zcode_pro-0.17.1/README_PYPI.md +0 -25
  15. zcode_pro-0.17.1/bin/zcode-pro.cmd +0 -29
  16. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/.gitignore +0 -0
  17. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/LICENSE +0 -0
  18. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro +0 -0
  19. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro.mjs +0 -0
  20. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/cli.mjs +0 -0
  21. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/dist/inject.js +0 -0
  22. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/cdp.mjs +0 -0
  23. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/pickFolder.mjs +0 -0
  24. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/settings.mjs +0 -0
  25. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/taskIndex.mjs +0 -0
  26. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/taskOrder.mjs +0 -0
  27. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/webdav.mjs +0 -0
  28. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/core.js +0 -0
  29. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/alias.js +0 -0
  30. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/copy-path.js +0 -0
  31. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/file-menu.js +0 -0
  32. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/idle-reclaim.js +0 -0
  33. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/image-menu.js +0 -0
  34. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/open-folder.js +0 -0
  35. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/pinned-collapse.js +0 -0
  36. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/pinned-expand.js +0 -0
  37. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/plugin-updates.js +0 -0
  38. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/project-menu.js +0 -0
  39. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/relocate-dialog.js +0 -0
  40. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/session-switch.js +0 -0
  41. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/settings-dialog.js +0 -0
  42. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/settings-entry.js +0 -0
  43. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/styles.js +0 -0
  44. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/task-order.js +0 -0
  45. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/title-lock.js +0 -0
  46. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/toolbar-icons.js +0 -0
  47. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/ws-running.js +0 -0
  48. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/index.js +0 -0
  49. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/ui.js +0 -0
  50. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/zcode_pro/__main__.py +0 -0
  51. {zcode_pro-0.17.1 → zcode_pro-0.17.2}/zcode_pro/cli.py +0 -0
@@ -0,0 +1,189 @@
1
+ Metadata-Version: 2.5
2
+ Name: zcode-pro
3
+ Version: 0.17.2
4
+ Summary: ZCode Pro — ZCode 桌面版界面增强启动器(不修改客户端文件),核心功能:项目自定义别名
5
+ Project-URL: Homepage, https://github.com/duanluan/zcode-pro
6
+ Project-URL: Repository, https://github.com/duanluan/zcode-pro
7
+ Project-URL: Issues, https://github.com/duanluan/zcode-pro/issues
8
+ License-Expression: Apache-2.0
9
+ License-File: LICENSE
10
+ Keywords: enhancement,launcher,zcode,zcode-pro
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: End Users/Desktop
13
+ Classifier: Operating System :: MacOS
14
+ Classifier: Operating System :: Microsoft :: Windows
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+
21
+ # ZCode Pro
22
+
23
+ [English](README.en.md) | 简体中文
24
+
25
+ ZCode 桌面版界面增强工具。不修改客户端文件,通过 ZCode Pro 快捷方式或终端命令 `zcode-pro` 启动即可。
26
+
27
+ [![npm](https://img.shields.io/npm/v/zcode-pro?logo=npm&logoColor=white)](https://www.npmjs.com/package/zcode-pro) [![PyPI](https://img.shields.io/pypi/v/zcode-pro?logo=pypi&logoColor=white)](https://pypi.org/project/zcode-pro/) [![AUR 版本](https://img.shields.io/aur/version/zcode-pro?logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/zcode-pro) [![Windows](https://img.shields.io/badge/-Windows-0078D6?logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTAsMEgxMS4zNzdWMTEuMzcySDBaTTEyLjYyMywwSDI0VjExLjM3MkgxMi42MjNaTTAsMTIuNjIzSDExLjM3N1YyNEgwWm0xMi42MjMsMEgyNFYyNEgxMi42MjMiLz48L3N2Zz4%3D)](https://github.com/duanluan/zcode-pro#-windows) [![macOS](https://img.shields.io/badge/-macOS-000000?logo=apple&logoColor=white)](https://github.com/duanluan/zcode-pro#-linux--macos) [![Linux](https://img.shields.io/badge/-Linux-FCC624?logo=linux&logoColor=black)](https://github.com/duanluan/zcode-pro#-linux--macos) [![QQ 群](https://img.shields.io/badge/QQ-428403354-12B7F5?logo=qq&logoColor=white)](https://github.com/duanluan/zcode-pro#-交流与反馈) [![微信](https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1-ai4only-07C160?logo=wechat&logoColor=white)](https://github.com/duanluan/zcode-pro#-交流与反馈)
28
+
29
+ > ⚙️ **打开设置:启动 ZCode Pro 后,右键点击 ZCode 侧边栏底部的设置按钮(齿轮)即可打开 ZCode Pro 设置窗口。**
30
+
31
+ ## ✨ 功能
32
+
33
+ | 功能 | 说明 |
34
+ | --- | --- |
35
+ | 项目自定义别名 | 侧边栏显示自定义名称,仅界面显示,随时恢复 |
36
+ | 切换文件夹 | 将项目指向另一个文件夹,侧边栏、标签页与任务历史一并迁移;切换前建议先停止运行中的任务,历史检查点仍引用原路径 |
37
+ | 打开文件夹 / 复制路径 | 项目“更多”菜单:在系统文件管理器中打开项目目录,或复制项目路径 |
38
+ | 会话拖动排序 | 拖动置顶、项目与分组中的会话调整顺序,刷新后保持 |
39
+ | 会话快捷切换 | `alt+z` 在当前与上次会话间来回切换;按住 `alt` 按 `x` / `c` 弹出最近会话列表选择,松开 `alt` 切换(类 `alt+tab`) |
40
+ | 重命名会话名锁定 | 手动重命名过的会话不再被自动标题覆盖,侧栏始终显示重命名后的名字 |
41
+ | 折叠项目运行提示 | 折叠的项目里仍有会话在运行时,项目图标旋转提示,全部结束后恢复 |
42
+ | 空闲项目内存回收 | 长时间未使用且无任务运行的项目自动释放其占用的内存,启动后也会自动回收一次未使用的项目;会话记录不受影响,再次打开时自动恢复(时长可调) |
43
+ | 侧栏菜单并入顶栏 | “新建任务 / 搜索 / 自动化 / 插件市场”收成顶部导航栏的图标按钮:悬停显示名称,对应界面打开时高亮,快捷键照常可用 |
44
+ | 已置顶分区可折叠 | 侧边栏“已置顶”标题可点击折叠/展开其任务列表,状态记住 |
45
+ | 文件菜单增强 | 会话中文件链接的右键菜单新增“默认应用打开”“打开所在目录” |
46
+ | 复制图片 | 右键会话中的图片或放大的预览图,复制到剪贴板 |
47
+ | 界面样式调整 | 微调段落间距、内容宽度、各类行高、列表/引用块/表格间距与单元格边距;聚焦输入框时高亮预览受影响区域,即改即生效 |
48
+ | 侧栏间距调整 | 微调侧边栏项目间距与任务间距,即改即生效 |
49
+ | 字体调整 | 自定义界面字体(除终端外全部界面文字)、提问字体与回答字体,即改即生效 |
50
+ | 全局提示词 | 编辑所有项目共享的默认指令,新会话起生效 |
51
+ | 软件代理 | 为插件更新安装与本体升级设置 HTTP 代理,附连通性检测 |
52
+ | 设置同步 | 手动把 ZCode Pro 设置与模型设置备份到 WebDAV,或在新电脑上恢复;仅在点击时传输 |
53
+ | 视觉代理 | 主模型不识图时自动交给视觉模型识别图片,识别描述带给主模型;可视化编辑代理链(zcode-vision 插件) |
54
+ | rtk 压缩 | 管理改写提醒与命令白名单,rtk 本体检查更新与一键升级(rtk 插件) |
55
+ | Headroom | 管理压缩设备、省电切换与代理运行状态,headroom 本体检查更新与升级(headroom 插件) |
56
+ | 插件更新 | 一键检查并更新 zcode-plugins 市场插件,可选启动时自动更新 |
57
+
58
+ 各项功能均可在设置弹窗中开关或调整。
59
+
60
+ ## 📦 安装与使用
61
+
62
+ 安装后,通过应用菜单 / 开始菜单中的“ZCode Pro”快捷方式或终端命令 `zcode-pro` 启动 ZCode,增强在该方式下自动生效;使用原有 ZCode 入口启动时不加载增强。
63
+
64
+ ### 📦 npm / PyPI
65
+
66
+ 运行时优先复用 ZCode 自带的运行时;未找到 ZCode 时回退系统 Node.js(≥ 22)。
67
+
68
+ ```bash
69
+ # 方式一:npm 安装/卸载
70
+ npm install -g zcode-pro
71
+ zcode-pro setup --uninstall # 卸载前先撤销快捷方式(如创建过)
72
+ npm uninstall -g zcode-pro
73
+ # 方式二:pip 安装/卸载
74
+ pip install zcode-pro
75
+ zcode-pro setup --uninstall # 卸载前先撤销快捷方式(如创建过)
76
+ pip uninstall zcode-pro
77
+
78
+ # 通过命令启动
79
+ zcode-pro
80
+ # 添加开始菜单快捷方式
81
+ zcode-pro setup
82
+ # 添加开始菜单快捷方式 + 桌面快捷方式
83
+ zcode-pro setup --desktop
84
+ # 撤销添加快捷方式
85
+ zcode-pro setup --uninstall
86
+ ```
87
+
88
+ ### 🐧 Linux / macOS
89
+
90
+ - 安装至 `~/.local`,可通过 `PREFIX=` 指定其他位置;
91
+ - Linux 会注册应用菜单快捷方式“ZCode Pro”(图标复用已安装的 ZCode);
92
+ - 已通过 AUR 安装时请勿再使用本脚本(脚本会检测并拒绝),用户级安装会遮蔽系统级入口;
93
+ - 卸载:`./scripts/install.sh --uninstall`。
94
+
95
+ ```bash
96
+ git clone https://github.com/duanluan/zcode-pro.git
97
+ cd zcode-pro && ./scripts/install.sh
98
+ ```
99
+
100
+ ### 🪟 Windows
101
+
102
+ 使用 **PowerShell (管理员)** 运行:
103
+ ```powershell
104
+ git clone https://github.com/duanluan/zcode-pro.git
105
+ cd zcode-pro
106
+
107
+ # 添加开始菜单快捷方式
108
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1
109
+ # 添加开始菜单快捷方式 + 桌面快捷方式
110
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop
111
+ # ZCode 装在非默认目录且自动定位不到时,显式指定其路径(持久保存,卸载时清除)
112
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop -ZCodePath "D:\ProgramFiles\Zcode\ZCode.exe"
113
+
114
+ # 卸载
115
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Uninstall
116
+ ```
117
+
118
+ ### 📦 AUR
119
+
120
+ 安装 `/usr/bin/zcode-pro` 与系统级应用菜单快捷方式,依赖 AUR 的 [zcode](https://aur.archlinux.org/packages/zcode) 包。
121
+
122
+ ```bash
123
+ yay -S zcode-pro
124
+ paru -S zcode-pro
125
+ # 手动安装方式
126
+ git clone https://aur.archlinux.org/zcode-pro.git && cd zcode-pro && makepkg -si
127
+ ```
128
+
129
+ 从手动安装(`install.sh`)迁移到 AUR 前,请先在原仓库执行 `./scripts/install.sh --uninstall` 清理 `~/.local` 下的旧文件,再安装本包;否则旧的用户级快捷方式会一直遮蔽系统级入口,实际运行的仍是旧版本。
130
+
131
+ ### 🚀 手动运行(不安装)
132
+
133
+ 无需单独安装 Node.js:优先使用 ZCode 内置运行时,缺少系统 Node 时亦能运行;ZCode 安装在默认或自定义目录均可(自动探测,必要时查注册表)。
134
+
135
+ ```bash
136
+ git clone https://github.com/duanluan/zcode-pro.git && cd zcode-pro
137
+
138
+ # Linux / macOS(自动探测 /opt/ZCode、/Applications/ZCode.app)
139
+ ./bin/zcode-pro
140
+ # Windows(自动探测默认安装位置,找不到时查注册表)
141
+ bin\zcode-pro.cmd
142
+
143
+ # 手动添加开始菜单快捷方式(--desktop 同时添加桌面快捷方式,--uninstall 撤销添加快捷方式)
144
+ ./bin/zcode-pro setup
145
+ bin\zcode-pro.cmd setup
146
+ ```
147
+
148
+ ## 📖 参考
149
+
150
+ 命令行选项(`zcode-pro --help` 查看全部):
151
+
152
+ | 选项 | 说明 |
153
+ | --- | --- |
154
+ | `--cdp-port` | 调试端口,默认 9333 |
155
+ | `--helper-port` | 本地辅助服务端口,默认 47889 |
156
+ | `--zcode-path` | 显式指定 ZCode 可执行文件 |
157
+ | `--inject-only` | 只接管已在运行的实例,不启动新实例 |
158
+ | `--verbose` | 详细日志 |
159
+ | `setup [--desktop] [--uninstall]` | 安装/撤销本机快捷方式(`--desktop` 同时加桌面) |
160
+
161
+ 各选项也可用环境变量 `ZCODEPRO_*` 覆盖。
162
+
163
+ 配置与数据位置:
164
+
165
+ | 内容 | 位置 |
166
+ | --- | --- |
167
+ | 功能开关、项目别名、软件代理 | `~/.zcode/zcodepro.json` |
168
+ | 启动诊断日志(Windows 快捷方式静默启动排查) | `~/.zcode/zcodepro.log` |
169
+ | 全局提示词 | `~/.zcode/AGENTS.md` |
170
+ | 视觉代理(zcode-vision 插件) | `~/.zcode/zcode-vision.json` |
171
+ | rtk 压缩(rtk 插件) | `~/.zcode-rtk/` |
172
+ | Headroom(headroom 插件) | `~/.zcode/headroom.json` |
173
+
174
+ 卸载后直接使用官方 ZCode 入口启动即可,无需清理系统位置。
175
+
176
+ ## 🔌 插件推荐
177
+
178
+ [duanluan/zcode-plugins](https://github.com/duanluan/zcode-plugins) 是配套的 ZCode 插件市场,提供 AI 代码评审、对话请求压缩、命令输出压缩等插件,可显著节省 token。安装方式:ZCode → 插件市场 → 右上角“添加”→ 添加插件市场,填写 `duanluan/zcode-plugins`。已安装的插件可在 ZCode Pro 设置中一键检查并更新。
179
+
180
+ ## 💬 交流与反馈
181
+
182
+ - QQ 群:**428403354**([点击加入](https://qm.qq.com/q/WXuISJK3ug))
183
+ - 微信群:添加微信 **ai4only** 邀请进群
184
+
185
+ <p>
186
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/qq-group.png" width="200" alt="QQ 群二维码" />
187
+ &nbsp;&nbsp;
188
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/wechat-ai4only.png" width="200" alt="微信二维码(ai4only)" />
189
+ </p>
@@ -4,7 +4,7 @@
4
4
 
5
5
  ZCode Pro enhances the ZCode desktop UI. No client files are modified; just launch via the ZCode Pro shortcut or the `zcode-pro` terminal command.
6
6
 
7
- ![npm](https://img.shields.io/npm/v/zcode-pro) ![PyPI](https://img.shields.io/pypi/v/zcode-pro) ![AUR](https://img.shields.io/aur/version/zcode-pro) ![Platform](https://img.shields.io/badge/platform-win%20%7C%20mac%20%7C%20linux%20%7C%20AUR-blue)
7
+ [![npm](https://img.shields.io/npm/v/zcode-pro?logo=npm&logoColor=white)](https://www.npmjs.com/package/zcode-pro) [![PyPI](https://img.shields.io/pypi/v/zcode-pro?logo=pypi&logoColor=white)](https://pypi.org/project/zcode-pro/) [![AUR](https://img.shields.io/aur/version/zcode-pro?logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/zcode-pro) [![Windows](https://img.shields.io/badge/-Windows-0078D6?logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTAsMEgxMS4zNzdWMTEuMzcySDBaTTEyLjYyMywwSDI0VjExLjM3MkgxMi42MjNaTTAsMTIuNjIzSDExLjM3N1YyNEgwWm0xMi42MjMsMEgyNFYyNEgxMi42MjMiLz48L3N2Zz4%3D)](https://github.com/duanluan/zcode-pro#-windows) [![macOS](https://img.shields.io/badge/-macOS-000000?logo=apple&logoColor=white)](https://github.com/duanluan/zcode-pro#-linux--macos) [![Linux](https://img.shields.io/badge/-Linux-FCC624?logo=linux&logoColor=black)](https://github.com/duanluan/zcode-pro#-linux--macos) [![QQ](https://img.shields.io/badge/QQ-428403354-12B7F5?logo=qq&logoColor=white)](https://github.com/duanluan/zcode-pro#-community) [![WeChat](https://img.shields.io/badge/WeChat-ai4only-07C160?logo=wechat&logoColor=white)](https://github.com/duanluan/zcode-pro#-community)
8
8
 
9
9
  > **Opening settings: after launching ZCode Pro, right-click the settings button (gear) at the bottom of the ZCode sidebar to open the ZCode Pro settings window.**
10
10
 
@@ -86,6 +86,8 @@ cd zcode-pro
86
86
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1
87
87
  # Add a Start-menu shortcut + a desktop shortcut
88
88
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop
89
+ # ZCode in a non-default directory that auto-detection misses? Pass its path (persisted, removed on uninstall)
90
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop -ZCodePath "D:\ProgramFiles\Zcode\ZCode.exe"
89
91
 
90
92
  # Uninstall
91
93
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Uninstall
@@ -141,6 +143,7 @@ Configuration and data locations:
141
143
  | Content | Location |
142
144
  | --- | --- |
143
145
  | Feature switches, aliases, software proxy | `~/.zcode/zcodepro.json` |
146
+ | Startup diagnostics log (silent shortcut launches, Windows) | `~/.zcode/zcodepro.log` |
144
147
  | Global prompt | `~/.zcode/AGENTS.md` |
145
148
  | Vision proxy (zcode-vision plugin) | `~/.zcode/zcode-vision.json` |
146
149
  | rtk compression (rtk plugin) | `~/.zcode-rtk/` |
@@ -158,7 +161,7 @@ After uninstalling, just start ZCode from the official entry; no system cleanup
158
161
  - WeChat group: add **ai4only** on WeChat to be invited
159
162
 
160
163
  <p>
161
- <img src="assets/qq-group.png" width="200" alt="QQ group QR code" />
164
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/qq-group.png" width="200" alt="QQ group QR code" />
162
165
  &nbsp;&nbsp;
163
- <img src="assets/wechat-ai4only.png" width="200" alt="WeChat QR code (ai4only)" />
166
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/wechat-ai4only.png" width="200" alt="WeChat QR code (ai4only)" />
164
167
  </p>
@@ -4,7 +4,7 @@
4
4
 
5
5
  ZCode 桌面版界面增强工具。不修改客户端文件,通过 ZCode Pro 快捷方式或终端命令 `zcode-pro` 启动即可。
6
6
 
7
- ![npm](https://img.shields.io/npm/v/zcode-pro) ![PyPI](https://img.shields.io/pypi/v/zcode-pro) ![AUR 版本](https://img.shields.io/aur/version/zcode-pro) ![平台](https://img.shields.io/badge/platform-win%20%7C%20mac%20%7C%20linux%20%7C%20AUR-blue)
7
+ [![npm](https://img.shields.io/npm/v/zcode-pro?logo=npm&logoColor=white)](https://www.npmjs.com/package/zcode-pro) [![PyPI](https://img.shields.io/pypi/v/zcode-pro?logo=pypi&logoColor=white)](https://pypi.org/project/zcode-pro/) [![AUR 版本](https://img.shields.io/aur/version/zcode-pro?logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/zcode-pro) [![Windows](https://img.shields.io/badge/-Windows-0078D6?logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTAsMEgxMS4zNzdWMTEuMzcySDBaTTEyLjYyMywwSDI0VjExLjM3MkgxMi42MjNaTTAsMTIuNjIzSDExLjM3N1YyNEgwWm0xMi42MjMsMEgyNFYyNEgxMi42MjMiLz48L3N2Zz4%3D)](https://github.com/duanluan/zcode-pro#-windows) [![macOS](https://img.shields.io/badge/-macOS-000000?logo=apple&logoColor=white)](https://github.com/duanluan/zcode-pro#-linux--macos) [![Linux](https://img.shields.io/badge/-Linux-FCC624?logo=linux&logoColor=black)](https://github.com/duanluan/zcode-pro#-linux--macos) [![QQ 群](https://img.shields.io/badge/QQ-428403354-12B7F5?logo=qq&logoColor=white)](https://github.com/duanluan/zcode-pro#-交流与反馈) [![微信](https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1-ai4only-07C160?logo=wechat&logoColor=white)](https://github.com/duanluan/zcode-pro#-交流与反馈)
8
8
 
9
9
  > ⚙️ **打开设置:启动 ZCode Pro 后,右键点击 ZCode 侧边栏底部的设置按钮(齿轮)即可打开 ZCode Pro 设置窗口。**
10
10
 
@@ -88,6 +88,8 @@ cd zcode-pro
88
88
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1
89
89
  # 添加开始菜单快捷方式 + 桌面快捷方式
90
90
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop
91
+ # ZCode 装在非默认目录且自动定位不到时,显式指定其路径(持久保存,卸载时清除)
92
+ powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Desktop -ZCodePath "D:\ProgramFiles\Zcode\ZCode.exe"
91
93
 
92
94
  # 卸载
93
95
  powershell -ExecutionPolicy Bypass -File scripts\install.ps1 -Uninstall
@@ -143,6 +145,7 @@ bin\zcode-pro.cmd setup
143
145
  | 内容 | 位置 |
144
146
  | --- | --- |
145
147
  | 功能开关、项目别名、软件代理 | `~/.zcode/zcodepro.json` |
148
+ | 启动诊断日志(Windows 快捷方式静默启动排查) | `~/.zcode/zcodepro.log` |
146
149
  | 全局提示词 | `~/.zcode/AGENTS.md` |
147
150
  | 视觉代理(zcode-vision 插件) | `~/.zcode/zcode-vision.json` |
148
151
  | rtk 压缩(rtk 插件) | `~/.zcode-rtk/` |
@@ -160,7 +163,7 @@ bin\zcode-pro.cmd setup
160
163
  - 微信群:添加微信 **ai4only** 邀请进群
161
164
 
162
165
  <p>
163
- <img src="assets/qq-group.png" width="200" alt="QQ 群二维码" />
166
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/qq-group.png" width="200" alt="QQ 群二维码" />
164
167
  &nbsp;&nbsp;
165
- <img src="assets/wechat-ai4only.png" width="200" alt="微信二维码(ai4only)" />
168
+ <img src="https://raw.githubusercontent.com/duanluan/zcode-pro/main/assets/wechat-ai4only.png" width="200" alt="微信二维码(ai4only)" />
166
169
  </p>
@@ -0,0 +1,48 @@
1
+ @echo off
2
+ rem ZCode Pro 启动器(Windows)
3
+ rem 优先用 ZCode 自带的 Node 运行时(ELECTRON_RUN_AS_NODE),无需安装 Node.js。
4
+ setlocal
5
+ set "SCRIPT_DIR=%~dp0"
6
+ set "APP_DIR=%SCRIPT_DIR%.."
7
+ set "ENTRY=%APP_DIR%\cli.mjs"
8
+
9
+ where node >nul 2>nul
10
+ if %errorlevel%==0 (
11
+ node "%ENTRY%" %*
12
+ exit /b %errorlevel%
13
+ )
14
+
15
+ set "ZCODE_BIN=%ZCODEPRO_ZCODE_PATH%"
16
+ rem 用户级 ZCODEPRO_ZCODE_PATH(安装脚本 -ZCodePath 写入)不会传播到已运行的资源
17
+ rem 管理器,进程环境变量缺失时从注册表兜底读取,免去注销/重启(issue #1)。
18
+ if not exist "%ZCODE_BIN%" for /f "tokens=2*" %%A in (
19
+ 'reg query "HKCU\Environment" /v ZCODEPRO_ZCODE_PATH 2^>nul'
20
+ ) do if not exist "%ZCODE_BIN%" if exist "%%B" set "ZCODE_BIN=%%B"
21
+ if not exist "%ZCODE_BIN%" set "ZCODE_BIN=%LOCALAPPDATA%\Programs\ZCode\ZCode.exe"
22
+ if not exist "%ZCODE_BIN%" set "ZCODE_BIN=%PROGRAMFILES%\ZCode\ZCode.exe"
23
+ rem Custom install dir: look up App Paths in registry (per-machine then per-user).
24
+ if not exist "%ZCODE_BIN%" for /f "tokens=2*" %%A in (
25
+ 'reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\zcode.exe" /ve 2^>nul ^|^|
26
+ reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\zcode.exe" /ve 2^>nul'
27
+ ) do if not exist "%ZCODE_BIN%" if exist "%%B" set "ZCODE_BIN=%%B"
28
+ rem 最后兜底:ZCode 的 NSIS 安装器不写 App Paths、卸载表 DisplayIcon 常指向
29
+ rem uninstallerIcon.ico,从其所在目录推导 ZCode.exe(win11 虚拟机实测,issue #1)。
30
+ rem 逐条验证存在性、取第一个有效命中。src/host/paths.mjs 与 scripts/install.ps1
31
+ rem 也各自实现卸载表定位(匹配方式不完全相同),改推导规则需三处同步。
32
+ if not exist "%ZCODE_BIN%" for /f "tokens=2*" %%A in (
33
+ 'reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s /v DisplayIcon 2^>nul ^| findstr /i "zcode" ^|^|
34
+ reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /v DisplayIcon 2^>nul ^| findstr /i "zcode" ^|^|
35
+ reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s /v DisplayIcon 2^>nul ^| findstr /i "zcode"'
36
+ ) do if not defined ZCODEPRO_UNINST_DIR if exist "%%~dpBZCode.exe" set "ZCODEPRO_UNINST_DIR=%%~dpB"
37
+ if defined ZCODEPRO_UNINST_DIR set "ZCODE_BIN=%ZCODEPRO_UNINST_DIR%ZCode.exe"
38
+ if not exist "%ZCODE_BIN%" (
39
+ echo [zcodepro] 未找到 node,也未找到 ZCode 可执行文件。请安装 Node.js ^>= 22 或设置 ZCODEPRO_ZCODE_PATH。 1>&2
40
+ rem 快捷方式静默启动时看不到控制台输出,同步落盘诊断日志(issue #1);日志超 512KB 轮转
41
+ if not exist "%USERPROFILE%\.zcode" mkdir "%USERPROFILE%\.zcode" >nul 2>nul
42
+ for %%I in ("%USERPROFILE%\.zcode\zcodepro.log") do if exist "%%~I" if %%~zI GTR 524288 move /y "%%~I" "%%~dpnI.log.old" >nul 2>nul
43
+ echo [%DATE% %TIME%] 未找到 node 与 ZCode 可执行文件 >> "%USERPROFILE%\.zcode\zcodepro.log"
44
+ exit /b 1
45
+ )
46
+ set "ELECTRON_RUN_AS_NODE=1"
47
+ "%ZCODE_BIN%" "%ENTRY%" %*
48
+ exit /b %errorlevel%
@@ -13,4 +13,5 @@ If WScript.Arguments.Count > 0 Then
13
13
  Next
14
14
  cmd = cmd & " " & Join(parts, " ")
15
15
  End If
16
- sh.Run cmd, 0, False
16
+ ' 经 cmd.exe 调用批处理,避免 wscript 直接运行 .cmd 在部分机器上启动异常(issue #1)
17
+ sh.Run "cmd.exe /d /c " & cmd, 0, False
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcode-pro",
3
- "version": "0.17.1",
3
+ "version": "0.17.2",
4
4
  "description": "ZCode Pro — 为 ZCode 桌面版增加界面增强(不修改客户端文件,通过 ZCode Pro 快捷方式启动即可),核心功能:项目自定义别名",
5
5
  "type": "module",
6
6
  "bin": {
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
  name = "zcode-pro"
7
7
  dynamic = ["version"]
8
8
  description = "ZCode Pro — ZCode 桌面版界面增强启动器(不修改客户端文件),核心功能:项目自定义别名"
9
- readme = "README_PYPI.md"
9
+ readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  license = "Apache-2.0"
12
12
  keywords = ["zcode", "zcode-pro", "launcher", "enhancement"]
@@ -49,7 +49,6 @@ include = [
49
49
  "bin",
50
50
  "README.md",
51
51
  "README.en.md",
52
- "README_PYPI.md",
53
52
  "LICENSE",
54
53
  "package.json",
55
54
  "pyproject.toml",
@@ -15,7 +15,7 @@ import { pickFolderSystem } from './pickFolder.mjs';
15
15
  import { reorderWorkspaceTasks, reorderGroupMembers } from './taskOrder.mjs';
16
16
  import { webdavRequest, webdavPutWithMkcol, webdavHttpText } from './webdav.mjs';
17
17
 
18
- const VERSION = '0.17.1';
18
+ const VERSION = '0.17.2';
19
19
 
20
20
  // 全局提示词固定在用户主目录:官方加载器按 HOME/USERPROFILE 拼 .zcode/AGENTS.md,
21
21
  // 不读 ZCODE_DATA_BASE_DIR(数据根迁走时全局指令仍在原位)。
@@ -5,8 +5,8 @@
5
5
  // 3. 连接 CDP,向所有页面注入增强脚本(新文档自动注入 + 已加载页面立即注入)
6
6
  // 4. 启动本地辅助 HTTP 服务并常驻,CDP 断开时自动重连
7
7
  import { spawn, execSync, spawnSync } from 'node:child_process';
8
- import { existsSync, readFileSync } from 'node:fs';
9
- import { dirname, resolve } from 'node:path';
8
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, statSync } from 'node:fs';
9
+ import { dirname, join, resolve } from 'node:path';
10
10
  import { fileURLToPath } from 'node:url';
11
11
  import { randomBytes } from 'node:crypto';
12
12
  import { resolveZcodeExecutable, resolveDataRootDir } from './paths.mjs';
@@ -74,6 +74,26 @@ function guiNotify(title, body) {
74
74
  } catch { /* ignore */ }
75
75
  }
76
76
 
77
+ // Windows 快捷方式静默启动时控制台与桌面通知都不可见(guiNotify 仅 linux 有渠道),
78
+ // 关键启动阶段与致命错误落盘 ~/.zcode/zcodepro.log,便于排查“双击没反应”(issue #1)。
79
+ // 日志超 512KB 时轮转为 .old(zcode-pro.cmd 失败分支有同款轮转,需同步维护)。
80
+ let winLogRotated = false;
81
+ function winLog(line) {
82
+ if (process.platform !== 'win32') return;
83
+ try {
84
+ const dir = resolveDataRootDir();
85
+ mkdirSync(dir, { recursive: true });
86
+ const file = join(dir, 'zcodepro.log');
87
+ if (!winLogRotated) {
88
+ winLogRotated = true;
89
+ try {
90
+ if (existsSync(file) && statSync(file).size > 512 * 1024) renameSync(file, `${file}.old`);
91
+ } catch { /* ignore */ }
92
+ }
93
+ appendFileSync(file, `[${new Date().toISOString()}] ${line}\n`);
94
+ } catch { /* ignore */ }
95
+ }
96
+
77
97
  async function cdpAlive(port) {
78
98
  try { await fetchBrowserWsUrl(port, 1200); return true; } catch { return false; }
79
99
  }
@@ -147,9 +167,13 @@ export async function run(argv) {
147
167
  try {
148
168
  exe = resolveZcodeExecutable(args.zcodePath);
149
169
  } catch (err) {
150
- if (err.code === 'ZCODE_NOT_FOUND') guiNotify('ZCode Pro 启动失败', '未找到 ZCode 可执行文件,详见终端输出。');
170
+ if (err.code === 'ZCODE_NOT_FOUND') {
171
+ winLog('未找到 ZCode 可执行文件: ' + err.message);
172
+ guiNotify('ZCode Pro 启动失败', '未找到 ZCode 可执行文件,详见终端输出。');
173
+ }
151
174
  throw err;
152
175
  }
176
+ winLog(`启动: ZCode=${exe}, CDP 端口 ${args.cdpPort}`);
153
177
  const dataRoot = resolveDataRootDir();
154
178
  const token = randomBytes(16).toString('hex');
155
179
  const state = { injectedPages: 0 };
@@ -166,10 +190,12 @@ export async function run(argv) {
166
190
  if (!ok) {
167
191
  console.error(`[zcodepro] 等待 ZCode 调试端口 ${args.cdpPort} 超时。`);
168
192
  if (zcodeAppProcessExists()) {
193
+ winLog(`等待 CDP 端口 ${args.cdpPort} 超时:ZCode 已在运行但未开调试端口,需先退出原实例`);
169
194
  console.error('[zcodepro] 检测到 ZCode 已在运行,但未开启调试端口,无法注入。');
170
195
  console.error('[zcodepro] 请手动退出当前 ZCode(zcodepro 不会替你关闭正在运行的实例),然后重新运行 zcodepro。');
171
196
  guiNotify('ZCode Pro 暂无法注入', 'ZCode 已在运行但未开启调试端口,请退出 ZCode 后重新打开 ZCode Pro。');
172
197
  } else {
198
+ winLog(`等待 CDP 端口 ${args.cdpPort} 超时(未见 ZCode 进程)`);
173
199
  guiNotify('ZCode Pro 启动失败', `等待 ZCode 调试端口 ${args.cdpPort} 超时。`);
174
200
  }
175
201
  process.exit(1);
@@ -191,6 +217,7 @@ export async function run(argv) {
191
217
  healthRes = await fetch(`http://127.0.0.1:${args.helperPort}/health`, { headers: { 'X-ZCodePro-Token': token } }).then((r) => r.json());
192
218
  } catch (err) {
193
219
  console.error(`[zcodepro] 辅助服务健康检查失败: ${err.message}`);
220
+ winLog('辅助服务健康检查失败: ' + err.message);
194
221
  server.close();
195
222
  process.exit(1);
196
223
  }
@@ -253,10 +280,12 @@ export async function run(argv) {
253
280
  }
254
281
  if (!conn) {
255
282
  console.error('[zcodepro] 无法连接 CDP,退出。');
283
+ winLog('无法连接 CDP,退出');
256
284
  server.close();
257
285
  process.exit(1);
258
286
  }
259
287
  console.log('[zcodepro] 已连接 CDP 并开始注入。保持本进程运行以维持增强;Ctrl+C 退出(不影响 ZCode)。');
288
+ winLog('已连接 CDP 并开始注入');
260
289
 
261
290
  process.on('SIGINT', () => { stopping = true; try { conn.close(); } catch {} server.close(); process.exit(0); });
262
291
  process.on('SIGTERM', () => { stopping = true; try { conn.close(); } catch {} server.close(); process.exit(0); });
@@ -268,6 +297,7 @@ export async function run(argv) {
268
297
  // 连接断开:ZCode 退出则一并退出,否则重连
269
298
  if (!(await cdpAlive(args.cdpPort))) {
270
299
  console.log('[zcodepro] ZCode 已退出,zcodepro 一并退出。');
300
+ winLog('ZCode 已退出,zcodepro 一并退出');
271
301
  server.close();
272
302
  process.exit(0);
273
303
  }
@@ -1,13 +1,29 @@
1
1
  // 跨平台定位 ZCode 桌面版可执行文件。
2
- // 优先级:--zcode-path 参数 > ZCODEPRO_ZCODE_PATH 环境变量 > 平台默认候选路径 > 注册表(Windows) > PATH 上的 zcode。
2
+ // 优先级:--zcode-path 参数 > ZCODEPRO_ZCODE_PATH 环境变量(进程 > 用户注册表) >
3
+ // 平台默认候选路径 > 注册表 App Paths/卸载表(Windows) > PATH 上的 zcode。
3
4
  import { existsSync } from 'node:fs';
4
5
  import { join } from 'node:path';
5
6
  import { arch, homedir, platform } from 'node:os';
6
7
  import { execFileSync } from 'node:child_process';
7
8
 
9
+ // reg 输出按行取 REG_SZ 后的值,容忍引号与 ",0" 图标序号后缀。
10
+ const reg = (args) => {
11
+ try {
12
+ return execFileSync('reg', args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
13
+ } catch { return ''; }
14
+ };
15
+ const valueAfter = (out) => (out.split(/REG_SZ\s+/)[1] || '').trim();
16
+
17
+ // 安装脚本 -ZCodePath 持久化的用户级环境变量(HKCU\Environment):写入后不会传播
18
+ // 到已运行的资源管理器,进程环境变量读不到时从这里兜底,免注销/重启(issue #1)。
19
+ function windowsUserEnvZcodePath() {
20
+ const value = valueAfter(reg(['query', 'HKCU\\Environment', '/v', 'ZCODEPRO_ZCODE_PATH']));
21
+ return value ? [value] : [];
22
+ }
23
+
8
24
  // Windows 注册表探测(结果缓存):自定义安装目录的安装器会在 App Paths(可执行
9
25
  // 文件全路径)或卸载表 DisplayIcon(控制面板-卸载软件里可见)留有登记,固定
10
- // 候选找不到时兜底。reg 输出按行取 REG_SZ 后的值,容忍引号与 ",0" 图标序号后缀。
26
+ // 候选找不到时兜底。
11
27
  let winRegistryCandidates;
12
28
 
13
29
  function windowsRegistryCandidates() {
@@ -21,18 +37,16 @@ function windowsRegistryCandidates() {
21
37
  winRegistryCandidates.push(p);
22
38
  }
23
39
  };
24
- const reg = (args) => {
25
- try {
26
- return execFileSync('reg', args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
27
- } catch { return ''; }
28
- };
29
- const valueAfter = (out) => (out.split(/REG_SZ\s+/)[1] || '').trim();
30
40
  // App Paths:安装器注册的可执行文件全路径(ShellExecute 同款查找)
31
41
  for (const root of ['HKLM', 'HKCU']) {
32
42
  const out = reg(['query', `${root}\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\zcode.exe`, '/ve']);
33
43
  if (out) push(valueAfter(out));
34
44
  }
35
- // 卸载表 DisplayIcon:安装目录自定义时通常只有这里能找到
45
+ // 卸载表 DisplayIcon:安装目录自定义时通常只有这里能找到。
46
+ // ZCode 的 NSIS 安装器不写 App Paths、DisplayIcon 常指向 uninstallerIcon.ico,
47
+ // 从其所在目录推导 ZCode.exe(win11 虚拟机实测,issue #1)。逐条验证取第一个
48
+ // 有效命中。zcode-pro.cmd 与 install.ps1 也各自实现卸载表定位(匹配方式不完全
49
+ // 相同),改推导规则需三处同步。
36
50
  for (const key of [
37
51
  'HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',
38
52
  'HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall',
@@ -41,7 +55,14 @@ function windowsRegistryCandidates() {
41
55
  const out = reg(['query', key, '/s', '/v', 'DisplayIcon']);
42
56
  for (const line of out.split(/\r?\n/)) {
43
57
  const seg = (line.split(/REG_SZ\s+/)[1] || '').trim();
44
- if (seg && /zcode/i.test(seg)) push(seg);
58
+ if (seg && /zcode/i.test(seg)) {
59
+ push(seg);
60
+ const dir = seg.replace(/[^\\\/]+$/, '');
61
+ if (dir) {
62
+ push(join(dir, 'ZCode.exe'));
63
+ push(join(dir, 'zcode.exe'));
64
+ }
65
+ }
45
66
  }
46
67
  }
47
68
  return winRegistryCandidates;
@@ -53,6 +74,7 @@ function candidates() {
53
74
  const localAppData = process.env.LOCALAPPDATA || join(home, 'AppData', 'Local');
54
75
  const programFiles = process.env.PROGRAMFILES || 'C:\\Program Files';
55
76
  return [
77
+ ...windowsUserEnvZcodePath(),
56
78
  join(localAppData, 'Programs', 'ZCode', 'ZCode.exe'),
57
79
  join(localAppData, 'Programs', 'zcode', 'zcode.exe'),
58
80
  join(programFiles, 'ZCode', 'ZCode.exe'),
@@ -163,7 +163,7 @@ export function windowsShortcutPlan(cmd, desktop = false, wshOk = true) {
163
163
  ' Next',
164
164
  ' cmd = cmd & " " & Join(parts, " ")',
165
165
  'End If',
166
- 'sh.Run cmd, 0, False',
166
+ 'sh.Run "cmd.exe /d /c " & cmd, 0, False',
167
167
  '',
168
168
  ].join('\r\n');
169
169
  // 图标复用已安装的 ZCode:探测走 paths.mjs 同一条优先级(含注册表,覆盖自定义
@@ -1,3 +1,3 @@
1
1
  """ZCode Pro 的 PyPI 安装包:内置 Node 应用源码,通过 zcode-pro 命令启动。"""
2
2
 
3
- __version__ = "0.17.1"
3
+ __version__ = "0.17.2"
zcode_pro-0.17.1/PKG-INFO DELETED
@@ -1,45 +0,0 @@
1
- Metadata-Version: 2.5
2
- Name: zcode-pro
3
- Version: 0.17.1
4
- Summary: ZCode Pro — ZCode 桌面版界面增强启动器(不修改客户端文件),核心功能:项目自定义别名
5
- Project-URL: Homepage, https://github.com/duanluan/zcode-pro
6
- Project-URL: Repository, https://github.com/duanluan/zcode-pro
7
- Project-URL: Issues, https://github.com/duanluan/zcode-pro/issues
8
- License-Expression: Apache-2.0
9
- License-File: LICENSE
10
- Keywords: enhancement,launcher,zcode,zcode-pro
11
- Classifier: Environment :: Console
12
- Classifier: Intended Audience :: End Users/Desktop
13
- Classifier: Operating System :: MacOS
14
- Classifier: Operating System :: Microsoft :: Windows
15
- Classifier: Operating System :: POSIX :: Linux
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3 :: Only
18
- Requires-Python: >=3.10
19
- Description-Content-Type: text/markdown
20
-
21
- # ZCode Pro
22
-
23
- ZCode 桌面版界面增强工具,不修改客户端文件。核心功能:项目自定义别名。
24
-
25
- ## 安装
26
-
27
- ```sh
28
- pip install zcode-pro
29
- ```
30
-
31
- 前提:本机已安装 ZCode 桌面版(优先复用其自带的运行时,无需另装 Node.js);未安装 ZCode 时需要 Node.js >= 22。
32
-
33
- 也可以通过 npm 安装:`npm install -g zcode-pro`
34
-
35
- ## 使用
36
-
37
- ```sh
38
- zcode-pro # 启动带增强的 ZCode
39
- zcode-pro --help # 查看全部选项
40
- ```
41
-
42
- ## 链接
43
-
44
- - 主页与文档:https://github.com/duanluan/zcode-pro
45
- - 问题反馈:https://github.com/duanluan/zcode-pro/issues
@@ -1,25 +0,0 @@
1
- # ZCode Pro
2
-
3
- ZCode 桌面版界面增强工具,不修改客户端文件。核心功能:项目自定义别名。
4
-
5
- ## 安装
6
-
7
- ```sh
8
- pip install zcode-pro
9
- ```
10
-
11
- 前提:本机已安装 ZCode 桌面版(优先复用其自带的运行时,无需另装 Node.js);未安装 ZCode 时需要 Node.js >= 22。
12
-
13
- 也可以通过 npm 安装:`npm install -g zcode-pro`
14
-
15
- ## 使用
16
-
17
- ```sh
18
- zcode-pro # 启动带增强的 ZCode
19
- zcode-pro --help # 查看全部选项
20
- ```
21
-
22
- ## 链接
23
-
24
- - 主页与文档:https://github.com/duanluan/zcode-pro
25
- - 问题反馈:https://github.com/duanluan/zcode-pro/issues
@@ -1,29 +0,0 @@
1
- @echo off
2
- rem ZCode Pro 启动器(Windows)
3
- rem 优先用 ZCode 自带的 Node 运行时(ELECTRON_RUN_AS_NODE),无需安装 Node.js。
4
- setlocal
5
- set "SCRIPT_DIR=%~dp0"
6
- set "APP_DIR=%SCRIPT_DIR%.."
7
- set "ENTRY=%APP_DIR%\cli.mjs"
8
-
9
- where node >nul 2>nul
10
- if %errorlevel%==0 (
11
- node "%ENTRY%" %*
12
- exit /b %errorlevel%
13
- )
14
-
15
- set "ZCODE_BIN=%ZCODEPRO_ZCODE_PATH%"
16
- if not exist "%ZCODE_BIN%" set "ZCODE_BIN=%LOCALAPPDATA%\Programs\ZCode\ZCode.exe"
17
- if not exist "%ZCODE_BIN%" set "ZCODE_BIN=%PROGRAMFILES%\ZCode\ZCode.exe"
18
- rem Custom install dir: look up App Paths in registry (per-machine then per-user).
19
- if not exist "%ZCODE_BIN%" for /f "tokens=2*" %%A in (
20
- 'reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\zcode.exe" /ve 2^>nul ^|^|
21
- reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\zcode.exe" /ve 2^>nul'
22
- ) do if not exist "%ZCODE_BIN%" if exist "%%B" set "ZCODE_BIN=%%B"
23
- if not exist "%ZCODE_BIN%" (
24
- echo [zcodepro] 未找到 node,也未找到 ZCode 可执行文件。请安装 Node.js ^>= 22 或设置 ZCODEPRO_ZCODE_PATH。 1>&2
25
- exit /b 1
26
- )
27
- set "ELECTRON_RUN_AS_NODE=1"
28
- "%ZCODE_BIN%" "%ENTRY%" %*
29
- exit /b %errorlevel%
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes