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.
- zcode_pro-0.17.2/PKG-INFO +189 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/README.en.md +6 -3
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/README.md +6 -3
- zcode_pro-0.17.2/bin/zcode-pro.cmd +48 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro.vbs +2 -1
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/package.json +1 -1
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/pyproject.toml +1 -2
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/helper.mjs +1 -1
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/main.mjs +33 -3
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/paths.mjs +32 -10
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/setup.mjs +1 -1
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/zcode_pro/__init__.py +1 -1
- zcode_pro-0.17.1/PKG-INFO +0 -45
- zcode_pro-0.17.1/README_PYPI.md +0 -25
- zcode_pro-0.17.1/bin/zcode-pro.cmd +0 -29
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/.gitignore +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/LICENSE +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/bin/zcode-pro.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/cli.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/dist/inject.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/cdp.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/pickFolder.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/settings.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/taskIndex.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/taskOrder.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/host/webdav.mjs +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/core.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/alias.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/copy-path.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/file-menu.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/idle-reclaim.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/image-menu.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/open-folder.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/pinned-collapse.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/pinned-expand.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/plugin-updates.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/project-menu.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/relocate-dialog.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/session-switch.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/settings-dialog.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/settings-entry.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/styles.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/task-order.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/title-lock.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/toolbar-icons.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/features/ws-running.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/index.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/src/inject/ui.js +0 -0
- {zcode_pro-0.17.1 → zcode_pro-0.17.2}/zcode_pro/__main__.py +0 -0
- {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
|
+
[](https://www.npmjs.com/package/zcode-pro) [](https://pypi.org/project/zcode-pro/) [](https://aur.archlinux.org/packages/zcode-pro) [](https://github.com/duanluan/zcode-pro#-windows) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-交流与反馈) [](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
|
+
|
|
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
|
-
   ](https://www.npmjs.com/package/zcode-pro) [](https://pypi.org/project/zcode-pro/) [](https://aur.archlinux.org/packages/zcode-pro) [](https://github.com/duanluan/zcode-pro#-windows) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-community) [](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
|
|
|
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
|
-
   ](https://www.npmjs.com/package/zcode-pro) [](https://pypi.org/project/zcode-pro/) [](https://aur.archlinux.org/packages/zcode-pro) [](https://github.com/duanluan/zcode-pro#-windows) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-linux--macos) [](https://github.com/duanluan/zcode-pro#-交流与反馈) [](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
|
|
|
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%
|
|
@@ -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 = "
|
|
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.
|
|
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')
|
|
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
|
|
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
|
-
// 候选找不到时兜底。
|
|
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))
|
|
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 同一条优先级(含注册表,覆盖自定义
|
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
|
zcode_pro-0.17.1/README_PYPI.md
DELETED
|
@@ -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
|
|
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
|
|
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
|
|
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
|