petdex-cc 0.1.6 → 0.1.8
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/LICENSE +21 -21
- package/README.md +301 -114
- package/README_CN.md +297 -112
- package/dist/bin/cli.js +19 -14
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/cli/autostart.d.ts +5 -0
- package/dist/src/cli/autostart.d.ts.map +1 -0
- package/dist/src/cli/autostart.js +54 -0
- package/dist/src/cli/autostart.js.map +1 -0
- package/dist/src/cli/install.d.ts.map +1 -1
- package/dist/src/cli/install.js +9 -1
- package/dist/src/cli/install.js.map +1 -1
- package/dist/src/cli/uninstall.d.ts +1 -1
- package/dist/src/cli/uninstall.d.ts.map +1 -1
- package/dist/src/cli/uninstall.js +7 -1
- package/dist/src/cli/uninstall.js.map +1 -1
- package/dist/src/hooks/write-scripts.js +21 -21
- package/dist/src/renderer/index.html +264 -264
- package/dist/src/renderer/wander.d.ts +8 -0
- package/dist/src/renderer/wander.d.ts.map +1 -0
- package/dist/src/renderer/wander.js +137 -0
- package/dist/src/renderer/wander.js.map +1 -0
- package/package.json +12 -2
- package/src/hooks/bridge.ps1 +11 -11
- package/src/hooks/bridge.sh +9 -9
package/README_CN.md
CHANGED
|
@@ -1,46 +1,115 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<br />
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# ✨ petdex-cc ✨
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### Claude Code 桌面宠物伴侣
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
[]()
|
|
11
|
-
[]()
|
|
12
|
-
[]()
|
|
13
|
-
[](https://petdex.crafter.run/zh)
|
|
9
|
+
**住在屏幕上的动画宠物,实时响应你的每一次编码操作**
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
<br />
|
|
12
|
+
|
|
13
|
+
[](https://www.npmjs.com/package/petdex-cc)
|
|
14
|
+
[]()
|
|
15
|
+
[]()
|
|
16
|
+
[](./LICENSE)
|
|
17
|
+
[](https://petdex.crafter.run/zh)
|
|
18
|
+
[](https://github.com/devnomad-byte/petdex-cc/stargazers)
|
|
19
|
+
|
|
20
|
+
<br />
|
|
21
|
+
|
|
22
|
+
[🌐 English](./README.md) · [🇨🇳 中文文档](./README_CN.md)
|
|
16
23
|
|
|
17
24
|
</div>
|
|
18
25
|
|
|
19
26
|
---
|
|
20
27
|
|
|
21
|
-
|
|
28
|
+
<div align="center">
|
|
29
|
+
|
|
30
|
+
<img src="./boba.gif" alt="petdex-cc 演示" width="600" />
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
<div align="center">
|
|
37
|
+
|
|
38
|
+
🐾 **一条命令,唤醒你的专属宠物** 🐾
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g petdex-cc
|
|
44
|
+
petdex-cc install boba
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
<div align="center">
|
|
48
|
+
<i>全局安装后,宠物立刻出现在桌面上,开始响应你的 Claude Code 操作 🎉</i>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
---
|
|
22
52
|
|
|
23
|
-
|
|
53
|
+
## 🌟 为什么选择 petdex-cc?
|
|
24
54
|
|
|
25
55
|
> **和 `npx petdex install` 有什么区别?**
|
|
56
|
+
>
|
|
26
57
|
> 原始的 `petdex` 命令提供基础宠物展示。`petdex-cc` 额外增加了**深度 Claude Code 集成** —— 通过 hooks 接入你的编码流程,包含等级成长系统、AI 生成语音、时段问候、互动特效。你的宠物不只是一个装饰,它*参与*你的编码过程。
|
|
27
58
|
|
|
28
|
-
>
|
|
59
|
+
<table>
|
|
60
|
+
<tr>
|
|
61
|
+
<td width="50%">
|
|
62
|
+
|
|
63
|
+
🎯 **实时反应**
|
|
64
|
+
|
|
65
|
+
读文件、编辑代码、运行命令、完成任务、遇到错误时,宠物同步改变动画
|
|
66
|
+
|
|
67
|
+
</td>
|
|
68
|
+
<td width="50%">
|
|
69
|
+
|
|
70
|
+
🏆 **8 级成长体系**
|
|
71
|
+
|
|
72
|
+
Byte → Process → Thread → Module → Kernel → Neural → Quantum → Singularity
|
|
73
|
+
|
|
74
|
+
</td>
|
|
75
|
+
</tr>
|
|
76
|
+
<tr>
|
|
77
|
+
<td width="50%">
|
|
78
|
+
|
|
79
|
+
🤖 **AI 语音气泡**
|
|
29
80
|
|
|
30
|
-
|
|
81
|
+
基于 Claude 生成的上下文感知中文对话,无 API Key 时使用内置台词
|
|
31
82
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
83
|
+
</td>
|
|
84
|
+
<td width="50%">
|
|
85
|
+
|
|
86
|
+
🕐 **时段问候**
|
|
87
|
+
|
|
88
|
+
早上好、午安、下午茶、下班、晚安、凌晨问候
|
|
89
|
+
|
|
90
|
+
</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td width="50%">
|
|
94
|
+
|
|
95
|
+
🎮 **互动体验**
|
|
96
|
+
|
|
97
|
+
拖拽宠物到任意位置、右键菜单、快速点击彩蛋
|
|
98
|
+
|
|
99
|
+
</td>
|
|
100
|
+
<td width="50%">
|
|
101
|
+
|
|
102
|
+
💾 **状态持久化**
|
|
103
|
+
|
|
104
|
+
等级和事件数重启不丢失(HMAC 签名防篡改)
|
|
105
|
+
|
|
106
|
+
</td>
|
|
107
|
+
</tr>
|
|
108
|
+
</table>
|
|
40
109
|
|
|
41
110
|
---
|
|
42
111
|
|
|
43
|
-
## 快速开始
|
|
112
|
+
## 🚀 快速开始
|
|
44
113
|
|
|
45
114
|
### 环境要求
|
|
46
115
|
|
|
@@ -52,75 +121,169 @@ petdex-cc 为你的 Claude Code 工作流带来**动画桌面宠物**。从 [Pet
|
|
|
52
121
|
```bash
|
|
53
122
|
# 1. 浏览宠物 → https://petdex.crafter.run/zh
|
|
54
123
|
# 2. 看中哪只,记下它的 slug(比如 "boba")
|
|
55
|
-
# 3.
|
|
124
|
+
# 3. 全局安装并配置宠物:
|
|
56
125
|
|
|
57
|
-
|
|
126
|
+
npm install -g petdex-cc
|
|
127
|
+
petdex-cc install boba
|
|
58
128
|
```
|
|
59
129
|
|
|
60
|
-
|
|
130
|
+
> **为什么要全局安装?** 全局安装后 `petdex-cc` 命令才能在任何终端使用(`petdex-cc start`、`petdex-cc stop` 等)。使用 `npx` 只能一次性安装,新终端窗口中无法直接调用 `petdex-cc` 命令。
|
|
131
|
+
>
|
|
132
|
+
> **开机自启:** `petdex-cc install` 会自动启用开机自启。如需关闭,运行 `petdex-cc autostart --disable`。
|
|
133
|
+
|
|
134
|
+
### 🐾 热门宠物
|
|
135
|
+
|
|
136
|
+
<table>
|
|
137
|
+
<tr>
|
|
138
|
+
<th>Slug</th>
|
|
139
|
+
<th>名称</th>
|
|
140
|
+
<th>描述</th>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td><code>boba</code></td>
|
|
144
|
+
<td>🦦 Boba</td>
|
|
145
|
+
<td>喝着珍珠奶茶的小水獭</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td><code>doraemon</code></td>
|
|
149
|
+
<td>🐱 哆啦A梦</td>
|
|
150
|
+
<td>来自未来的蓝色机器猫</td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr>
|
|
153
|
+
<td><code>noir-webling</code></td>
|
|
154
|
+
<td>🕷️ Noir Webling</td>
|
|
155
|
+
<td>戴礼帽的单色蜘蛛侦探</td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td><code>ikun-hoops</code></td>
|
|
159
|
+
<td>🏀 IKUN Hoops</td>
|
|
160
|
+
<td>穿卫衣拿篮球的小鸡</td>
|
|
161
|
+
</tr>
|
|
162
|
+
<tr>
|
|
163
|
+
<td><code>ddo-zvzo</code></td>
|
|
164
|
+
<td>😎 ddo-zvzo</td>
|
|
165
|
+
<td>会戴墨镜的紫色吉祥物</td>
|
|
166
|
+
</tr>
|
|
167
|
+
<tr>
|
|
168
|
+
<td><code>mochi</code></td>
|
|
169
|
+
<td>🐱 Mochi</td>
|
|
170
|
+
<td>橘白色可爱小猫</td>
|
|
171
|
+
</tr>
|
|
172
|
+
</table>
|
|
173
|
+
|
|
174
|
+
> 浏览全部 1,569+ 款宠物 → [**petdex.crafter.run/zh**](https://petdex.crafter.run/zh) 🎨
|
|
175
|
+
|
|
176
|
+
<details>
|
|
177
|
+
<summary>🌏 国内用户加速(必看)</summary>
|
|
178
|
+
|
|
179
|
+
<br />
|
|
180
|
+
|
|
181
|
+
首次安装需要下载 Electron 二进制文件(~100MB),默认从 GitHub 下载,国内可能很慢或无法访问。安装前配置国内镜像:
|
|
61
182
|
|
|
62
|
-
|
|
183
|
+
```bash
|
|
184
|
+
# 设置 npm 淘宝镜像源
|
|
185
|
+
npm config set registry https://registry.npmmirror.com
|
|
63
186
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
187
|
+
# 设置 Electron 下载镜像
|
|
188
|
+
npm config set electron_mirror https://npmmirror.com/mirrors/electron/
|
|
189
|
+
|
|
190
|
+
# 然后全局安装
|
|
191
|
+
npm install -g petdex-cc
|
|
192
|
+
petdex-cc install boba
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
以上配置永久生效,只需设置一次。
|
|
196
|
+
|
|
197
|
+
</details>
|
|
198
|
+
|
|
199
|
+
<details>
|
|
200
|
+
<summary>🔧 常见问题</summary>
|
|
201
|
+
|
|
202
|
+
<br />
|
|
203
|
+
|
|
204
|
+
**`ERR_MODULE_NOT_FOUND: Cannot find package '@electron/remote'`**
|
|
205
|
+
|
|
206
|
+
这是 0.1.6 之前版本的 bug。更新到最新版即可:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npm uninstall -g petdex-cc
|
|
210
|
+
npm install -g petdex-cc
|
|
211
|
+
petdex-cc install boba
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**`EPERM` / `EBUSY` 文件被锁**
|
|
215
|
+
|
|
216
|
+
宠物进程仍在运行,锁住了文件。先停止宠物:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# Windows PowerShell
|
|
220
|
+
Stop-Process -Name electron -Force -ErrorAction SilentlyContinue
|
|
72
221
|
|
|
73
|
-
|
|
222
|
+
# macOS / Linux
|
|
223
|
+
pkill -f electron
|
|
224
|
+
|
|
225
|
+
# 然后重新安装
|
|
226
|
+
npm install -g petdex-cc
|
|
227
|
+
petdex-cc install boba
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**安装时 `ECONNRESET` / `ETIMEDOUT`**
|
|
231
|
+
|
|
232
|
+
Electron 无法从 GitHub 下载。请配置国内镜像(见上方「国内用户加速」)。
|
|
233
|
+
|
|
234
|
+
</details>
|
|
74
235
|
|
|
75
236
|
---
|
|
76
237
|
|
|
77
|
-
## 你的宠物会做什么
|
|
238
|
+
## 🎬 你的宠物会做什么
|
|
78
239
|
|
|
79
240
|
Claude Code 的每一次操作都会触发宠物反应:
|
|
80
241
|
|
|
81
242
|
| Claude Code 事件 | 宠物动画 | 语音气泡 |
|
|
82
243
|
|---|---|---|
|
|
83
|
-
| 会话开始 | 挥手 | "Let's get to work!" |
|
|
84
|
-
| 读取文件 | 审视 | "Reading 文件名..." |
|
|
85
|
-
| 编辑文件 | 待机 | "Edited 文件名" |
|
|
86
|
-
| 运行命令 | 奔跑 | "Running command..." |
|
|
87
|
-
| 搜索文件 | 等待 | "Searching..." |
|
|
88
|
-
| 工具失败 | 垂头 | "Oops, something went wrong" + AI 鼓励 |
|
|
89
|
-
| 任务完成 | 跳跃 | "Task complete!" + AI 庆祝 |
|
|
90
|
-
| Claude 停止 | 跳跃 | "Task complete!"(60% 概率触发 AI) |
|
|
91
|
-
| Claude 报错 | 垂头 | 错误信息 + AI 安慰 |
|
|
92
|
-
| 空闲 10+ 分钟 | 挥手 | 时段问候(中文) |
|
|
93
|
-
| 等级提升 | 当前状态 | "Level up! Kernel!" + 特效激活 |
|
|
94
|
-
|
|
95
|
-
### 互动操作
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
244
|
+
| 🟢 会话开始 | 挥手 👋 | "Let's get to work!" |
|
|
245
|
+
| 📖 读取文件 | 审视 🔍 | "Reading 文件名..." |
|
|
246
|
+
| ✏️ 编辑文件 | 待机 | "Edited 文件名" |
|
|
247
|
+
| ▶️ 运行命令 | 奔跑 🏃 | "Running command..." |
|
|
248
|
+
| 🔍 搜索文件 | 等待 ⏳ | "Searching..." |
|
|
249
|
+
| ❌ 工具失败 | 垂头 😢 | "Oops, something went wrong" + AI 鼓励 |
|
|
250
|
+
| ✅ 任务完成 | 跳跃 🎉 | "Task complete!" + AI 庆祝 |
|
|
251
|
+
| 🛑 Claude 停止 | 跳跃 | "Task complete!"(60% 概率触发 AI) |
|
|
252
|
+
| ⚠️ Claude 报错 | 垂头 | 错误信息 + AI 安慰 |
|
|
253
|
+
| 💤 空闲 10+ 分钟 | 挥手 | 时段问候(中文) |
|
|
254
|
+
| ⬆️ 等级提升 | 当前状态 | "Level up! Kernel!" + 特效激活 |
|
|
255
|
+
|
|
256
|
+
### 🎮 互动操作
|
|
257
|
+
|
|
258
|
+
| 操作 | 效果 |
|
|
259
|
+
|---|---|
|
|
260
|
+
| **拖拽** | 点击拖动宠物到屏幕任意位置 |
|
|
261
|
+
| **右键** | 上下文菜单:显示/隐藏、关于、退出 |
|
|
262
|
+
| **系统托盘** | 右下角任务栏图标 |
|
|
263
|
+
| **彩蛋** | 快速连续点击,触发递进式反应(2→4→6→9→12→15 次) |
|
|
101
264
|
|
|
102
265
|
---
|
|
103
266
|
|
|
104
|
-
## 等级系统
|
|
267
|
+
## 🏆 等级系统
|
|
105
268
|
|
|
106
|
-
|
|
269
|
+
你的宠物随你的编码而成长,每次 Claude Code 操作算一次事件,累积升级:
|
|
107
270
|
|
|
108
|
-
| 等级 | 名称 | 所需事件数 |
|
|
271
|
+
| 等级 | 名称 | 所需事件数 | | 视觉效果 |
|
|
109
272
|
|:---:|---|---:|---|---|
|
|
110
|
-
| 1 | **Byte** | 0 |
|
|
111
|
-
| 2 | **Process** | 50 |
|
|
112
|
-
| 3 | **Thread** | 200 |
|
|
113
|
-
| 4 | **Module** | 500 |
|
|
114
|
-
| 5 | **Kernel** | 1,000 |
|
|
115
|
-
| 6 | **Neural** | 2,000 |
|
|
116
|
-
| 7 | **Quantum** | 5,000 |
|
|
117
|
-
| 8 | **Singularity** | 10,000 |
|
|
273
|
+
| 1 | **Byte** | 0 | ⚪ 基础宠物 |
|
|
274
|
+
| 2 | **Process** | 50 | 🟢 呼吸式发光 |
|
|
275
|
+
| 3 | **Thread** | 200 | 🔵 旋转光环 |
|
|
276
|
+
| 4 | **Module** | 500 | 🟣 增强光环 |
|
|
277
|
+
| 5 | **Kernel** | 1,000 | 🟡 漂浮光点粒子 |
|
|
278
|
+
| 6 | **Neural** | 2,000 | 🩷 粒子风暴 |
|
|
279
|
+
| 7 | **Quantum** | 5,000 | 🩵 能量场 |
|
|
280
|
+
| 8 | **Singularity** | 10,000 | 🌟 金色光环 + 全部特效 |
|
|
118
281
|
|
|
119
282
|
---
|
|
120
283
|
|
|
121
|
-
## AI 语音
|
|
284
|
+
## 🤖 AI 语音
|
|
122
285
|
|
|
123
|
-
当 Anthropic API Key 可用时(自动从 Claude Code
|
|
286
|
+
当 Anthropic API Key 可用时(自动从 Claude Code 设置读取),宠物会生成**上下文感知的中文语音**:
|
|
124
287
|
|
|
125
288
|
| 场景 | 触发时机 | AI 生成示例 |
|
|
126
289
|
|---|---|---|
|
|
@@ -135,7 +298,7 @@ Claude Code 的每一次操作都会触发宠物反应:
|
|
|
135
298
|
|
|
136
299
|
---
|
|
137
300
|
|
|
138
|
-
## 命令参考
|
|
301
|
+
## 📋 命令参考
|
|
139
302
|
|
|
140
303
|
```bash
|
|
141
304
|
petdex-cc install <slug> # 下载宠物、配置 hooks、启动
|
|
@@ -145,10 +308,16 @@ petdex-cc list # 浏览 Petdex 宠物库
|
|
|
145
308
|
petdex-cc switch <slug> # 运行时切换宠物(自动下载)
|
|
146
309
|
petdex-cc status # 查看宠物名称、等级、事件数、运行状态
|
|
147
310
|
petdex-cc uninstall # 移除 hooks、停止宠物、删除所有数据
|
|
311
|
+
petdex-cc autostart # 查看开机自启状态
|
|
312
|
+
petdex-cc autostart --enable # 启用开机自启(安装时默认启用)
|
|
313
|
+
petdex-cc autostart --disable # 关闭开机自启
|
|
148
314
|
petdex-cc config [选项] # 配置设置
|
|
149
315
|
```
|
|
150
316
|
|
|
151
|
-
|
|
317
|
+
<details>
|
|
318
|
+
<summary>⚙️ 配置选项</summary>
|
|
319
|
+
|
|
320
|
+
<br />
|
|
152
321
|
|
|
153
322
|
```bash
|
|
154
323
|
petdex-cc config --api-key <key> # Anthropic API Key(用于 AI 语音)
|
|
@@ -158,9 +327,11 @@ petdex-cc config --cooldown <分钟> # AI 调用冷却时间(默
|
|
|
158
327
|
|
|
159
328
|
> API 凭据会自动从 `~/.claude/settings.json` 读取,大多数用户无需手动配置。
|
|
160
329
|
|
|
330
|
+
</details>
|
|
331
|
+
|
|
161
332
|
---
|
|
162
333
|
|
|
163
|
-
## 架构设计
|
|
334
|
+
## 🏗️ 架构设计
|
|
164
335
|
|
|
165
336
|
```
|
|
166
337
|
┌─────────────────────────────────────────────────┐
|
|
@@ -200,25 +371,10 @@ petdex-cc config --cooldown <分钟> # AI 调用冷却时间(默
|
|
|
200
371
|
└──────────────────┘
|
|
201
372
|
```
|
|
202
373
|
|
|
203
|
-
|
|
374
|
+
<details>
|
|
375
|
+
<summary>📁 项目结构</summary>
|
|
204
376
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
git clone https://github.com/devnomad-byte/petdex-cc.git
|
|
209
|
-
cd petdex-cc
|
|
210
|
-
npm install
|
|
211
|
-
npm run build
|
|
212
|
-
|
|
213
|
-
# 开发模式启动
|
|
214
|
-
npx electron .
|
|
215
|
-
|
|
216
|
-
# 全局安装使用 CLI
|
|
217
|
-
npm link
|
|
218
|
-
petdex-cc install boba
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### 项目结构
|
|
377
|
+
<br />
|
|
222
378
|
|
|
223
379
|
```
|
|
224
380
|
petdex-cc/
|
|
@@ -241,21 +397,38 @@ petdex-cc/
|
|
|
241
397
|
│ │ └── context-menu.ts 右键菜单
|
|
242
398
|
│ ├── cli/ CLI 命令实现
|
|
243
399
|
│ ├── hooks/ Claude Code hooks 注册
|
|
244
|
-
│ │ ├── register.ts 写入 ~/.claude/settings.json
|
|
245
|
-
│ │ ├── write-scripts.ts 跨平台 bridge 脚本
|
|
246
|
-
│ │ ├── bridge.ps1 Windows PowerShell bridge
|
|
247
|
-
│ │ └── bridge.sh Unix bash bridge
|
|
248
400
|
│ ├── petdex-api/ Petdex 注册中心客户端
|
|
249
|
-
│ │ ├── client.ts 清单获取 + slug 查询
|
|
250
|
-
│ │ └── download.ts 流式下载 + 进度回调
|
|
251
401
|
│ └── shared/ 共享类型和常量
|
|
252
402
|
```
|
|
253
403
|
|
|
404
|
+
</details>
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 🔧 开发者安装
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
git clone https://github.com/devnomad-byte/petdex-cc.git
|
|
412
|
+
cd petdex-cc
|
|
413
|
+
npm install
|
|
414
|
+
npm run build
|
|
415
|
+
|
|
416
|
+
# 开发模式启动
|
|
417
|
+
npx electron .
|
|
418
|
+
|
|
419
|
+
# 全局安装使用 CLI
|
|
420
|
+
npm link
|
|
421
|
+
petdex-cc install boba
|
|
422
|
+
```
|
|
423
|
+
|
|
254
424
|
---
|
|
255
425
|
|
|
256
|
-
## 配置参考
|
|
426
|
+
## ⚙️ 配置参考
|
|
427
|
+
|
|
428
|
+
<details>
|
|
429
|
+
<summary>自动检测配置</summary>
|
|
257
430
|
|
|
258
|
-
|
|
431
|
+
<br />
|
|
259
432
|
|
|
260
433
|
petdex-cc 自动从 `~/.claude/settings.json` 读取以下配置:
|
|
261
434
|
|
|
@@ -264,15 +437,12 @@ petdex-cc 自动从 `~/.claude/settings.json` 读取以下配置:
|
|
|
264
437
|
| `ANTHROPIC_AUTH_TOKEN` | AI 语音的 API Key |
|
|
265
438
|
| `ANTHROPIC_BASE_URL` | AI 语音的 API 端点 |
|
|
266
439
|
|
|
267
|
-
|
|
440
|
+
</details>
|
|
268
441
|
|
|
269
|
-
|
|
442
|
+
<details>
|
|
443
|
+
<summary>数据目录</summary>
|
|
270
444
|
|
|
271
|
-
|
|
272
|
-
petdex-cc config --api-key <key> --api-base-url <url> --cooldown 2
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### 数据目录
|
|
445
|
+
<br />
|
|
276
446
|
|
|
277
447
|
| 路径 | 内容 |
|
|
278
448
|
|---|---|
|
|
@@ -282,11 +452,11 @@ petdex-cc config --api-key <key> --api-base-url <url> --cooldown 2
|
|
|
282
452
|
| `~/.petdex-cc/hooks/` | Bridge 脚本 |
|
|
283
453
|
| `~/.petdex-cc/config.json` | 用户配置(API Key、冷却时间) |
|
|
284
454
|
|
|
285
|
-
|
|
455
|
+
</details>
|
|
286
456
|
|
|
287
|
-
|
|
457
|
+
---
|
|
288
458
|
|
|
289
|
-
|
|
459
|
+
## 🪝 Hooks 参考
|
|
290
460
|
|
|
291
461
|
| Hook | 匹配器 | 触发时机 |
|
|
292
462
|
|---|---|---|
|
|
@@ -301,7 +471,7 @@ petdex-cc 在 `~/.claude/settings.json` 中注册以下 hooks:
|
|
|
301
471
|
|
|
302
472
|
---
|
|
303
473
|
|
|
304
|
-
## 后续计划
|
|
474
|
+
## 🗺️ 后续计划
|
|
305
475
|
|
|
306
476
|
- [ ] 支持 Cursor
|
|
307
477
|
- [ ] 支持 Windsurf
|
|
@@ -311,13 +481,28 @@ petdex-cc 在 `~/.claude/settings.json` 中注册以下 hooks:
|
|
|
311
481
|
|
|
312
482
|
---
|
|
313
483
|
|
|
314
|
-
|
|
484
|
+
<div align="center">
|
|
485
|
+
|
|
486
|
+
## ⭐ Star 趋势
|
|
487
|
+
|
|
488
|
+
<a href="https://www.star-history.com/?repos=devnomad-byte%2Fpetdex-cc&type=date&legend=top-left">
|
|
489
|
+
<picture>
|
|
490
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=devnomad-byte/petdex-cc&type=date&theme=dark&legend=top-left" />
|
|
491
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=devnomad-byte/petdex-cc&type=date&legend=top-left" />
|
|
492
|
+
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=devnomad-byte/petdex-cc&type=date&legend=top-left" />
|
|
493
|
+
</picture>
|
|
494
|
+
</a>
|
|
495
|
+
|
|
496
|
+
<br />
|
|
497
|
+
|
|
498
|
+
## 📄 许可证
|
|
315
499
|
|
|
316
500
|
[MIT](./LICENSE)
|
|
317
501
|
|
|
318
|
-
|
|
502
|
+
<br />
|
|
503
|
+
|
|
504
|
+
为 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 社区用心打造 💜
|
|
505
|
+
|
|
506
|
+
宠物来自 [**Petdex**](https://petdex.crafter.run/zh) · 1,569+ 款社区宠物,持续更新中
|
|
319
507
|
|
|
320
|
-
<div align="center">
|
|
321
|
-
<sub>为 <a href="https://docs.anthropic.com/en/docs/claude-code">Claude Code</a> 社区用心打造</sub><br />
|
|
322
|
-
<sub>宠物来自 <a href="https://petdex.crafter.run/zh">Petdex</a></sub>
|
|
323
508
|
</div>
|
package/dist/bin/cli.js
CHANGED
|
@@ -7,6 +7,7 @@ import { switchPet } from "../src/cli/switch.js";
|
|
|
7
7
|
import { status } from "../src/cli/status.js";
|
|
8
8
|
import { uninstall } from "../src/cli/uninstall.js";
|
|
9
9
|
import { config } from "../src/cli/config.js";
|
|
10
|
+
import { autostart } from "../src/cli/autostart.js";
|
|
10
11
|
const args = process.argv.slice(2);
|
|
11
12
|
const command = args[0];
|
|
12
13
|
const rest = args.slice(1);
|
|
@@ -39,11 +40,14 @@ async function main() {
|
|
|
39
40
|
status();
|
|
40
41
|
break;
|
|
41
42
|
case "uninstall":
|
|
42
|
-
uninstall();
|
|
43
|
+
await uninstall();
|
|
43
44
|
break;
|
|
44
45
|
case "config":
|
|
45
46
|
config(rest);
|
|
46
47
|
break;
|
|
48
|
+
case "autostart":
|
|
49
|
+
await autostart(rest[0]);
|
|
50
|
+
break;
|
|
47
51
|
case "help":
|
|
48
52
|
case "--help":
|
|
49
53
|
case "-h":
|
|
@@ -56,19 +60,20 @@ async function main() {
|
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
function printHelp() {
|
|
59
|
-
console.log(`
|
|
60
|
-
petdex-cc - Desktop pet companion for Claude Code
|
|
61
|
-
|
|
62
|
-
Commands:
|
|
63
|
-
install <slug> Install a pet from Petdex and configure hooks
|
|
64
|
-
start Start the desktop pet
|
|
65
|
-
stop Stop the desktop pet
|
|
66
|
-
list List available pets from Petdex
|
|
67
|
-
switch <slug> Switch to a different pet
|
|
68
|
-
status Show current pet status and level
|
|
69
|
-
uninstall Remove petdex-cc hooks and data
|
|
70
|
-
config Configure API key and settings
|
|
71
|
-
|
|
63
|
+
console.log(`
|
|
64
|
+
petdex-cc - Desktop pet companion for Claude Code
|
|
65
|
+
|
|
66
|
+
Commands:
|
|
67
|
+
install <slug> Install a pet from Petdex and configure hooks
|
|
68
|
+
start Start the desktop pet
|
|
69
|
+
stop Stop the desktop pet
|
|
70
|
+
list List available pets from Petdex
|
|
71
|
+
switch <slug> Switch to a different pet
|
|
72
|
+
status Show current pet status and level
|
|
73
|
+
uninstall Remove petdex-cc hooks and data
|
|
74
|
+
config Configure API key and settings
|
|
75
|
+
autostart Enable/disable auto-start on login (--enable / --disable)
|
|
76
|
+
help Show this help message
|
|
72
77
|
`);
|
|
73
78
|
}
|
|
74
79
|
main().catch((err) => {
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3B,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,OAAO;YACV,KAAK,EAAE,CAAC;YACR,MAAM;QACR,KAAK,MAAM;YACT,IAAI,EAAE,CAAC;YACP,MAAM;QACR,KAAK,MAAM;YACT,MAAM,IAAI,EAAE,CAAC;YACb,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,EAAE,CAAC;YACT,MAAM;QACR,KAAK,WAAW;YACd,MAAM,SAAS,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,MAAM;QACR,KAAK,WAAW;YACd,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YACjD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function enableAutostart(): Promise<void>;
|
|
2
|
+
export declare function disableAutostart(): Promise<void>;
|
|
3
|
+
export declare function autostartStatus(): Promise<boolean>;
|
|
4
|
+
export declare function autostart(subcommand?: string): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=autostart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autostart.d.ts","sourceRoot":"","sources":["../../../src/cli/autostart.ts"],"names":[],"mappings":"AAqBA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAGxD;AAED,wBAAsB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const AutoLaunch = require("auto-launch");
|
|
6
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const pkgRoot = join(__dirname, "..", "..", "..");
|
|
8
|
+
const cliEntry = join(pkgRoot, "dist", "bin", "cli.js");
|
|
9
|
+
function getAutoLauncher() {
|
|
10
|
+
return new AutoLaunch({
|
|
11
|
+
name: "petdex-cc",
|
|
12
|
+
path: process.execPath,
|
|
13
|
+
isHidden: true,
|
|
14
|
+
extraArgs: [cliEntry, "start"],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export async function enableAutostart() {
|
|
18
|
+
const launcher = getAutoLauncher();
|
|
19
|
+
const alreadyEnabled = await launcher.isEnabled();
|
|
20
|
+
if (alreadyEnabled)
|
|
21
|
+
return;
|
|
22
|
+
await launcher.enable();
|
|
23
|
+
}
|
|
24
|
+
export async function disableAutostart() {
|
|
25
|
+
const launcher = getAutoLauncher();
|
|
26
|
+
const alreadyEnabled = await launcher.isEnabled();
|
|
27
|
+
if (!alreadyEnabled)
|
|
28
|
+
return;
|
|
29
|
+
await launcher.disable();
|
|
30
|
+
}
|
|
31
|
+
export async function autostartStatus() {
|
|
32
|
+
const launcher = getAutoLauncher();
|
|
33
|
+
return launcher.isEnabled();
|
|
34
|
+
}
|
|
35
|
+
export async function autostart(subcommand) {
|
|
36
|
+
switch (subcommand) {
|
|
37
|
+
case "--enable":
|
|
38
|
+
case "enable":
|
|
39
|
+
await enableAutostart();
|
|
40
|
+
console.log("Auto-start enabled. petdex-cc will launch on login.");
|
|
41
|
+
break;
|
|
42
|
+
case "--disable":
|
|
43
|
+
case "disable":
|
|
44
|
+
await disableAutostart();
|
|
45
|
+
console.log("Auto-start disabled.");
|
|
46
|
+
break;
|
|
47
|
+
default: {
|
|
48
|
+
const enabled = await autostartStatus();
|
|
49
|
+
console.log(`Auto-start: ${enabled ? "enabled" : "disabled"}`);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=autostart.js.map
|