@yivan-lab/pretty-please 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +390 -1
- package/bin/pls.tsx +1255 -123
- package/dist/bin/pls.js +1098 -103
- package/dist/package.json +4 -4
- package/dist/src/alias.d.ts +41 -0
- package/dist/src/alias.js +240 -0
- package/dist/src/chat-history.js +10 -1
- package/dist/src/components/Chat.js +54 -26
- package/dist/src/components/CodeColorizer.js +26 -20
- package/dist/src/components/CommandBox.js +19 -8
- package/dist/src/components/ConfirmationPrompt.js +2 -1
- package/dist/src/components/Duration.js +2 -1
- package/dist/src/components/InlineRenderer.js +2 -1
- package/dist/src/components/MarkdownDisplay.js +2 -1
- package/dist/src/components/MultiStepCommandGenerator.d.ts +3 -1
- package/dist/src/components/MultiStepCommandGenerator.js +20 -10
- package/dist/src/components/TableRenderer.js +2 -1
- package/dist/src/config.d.ts +33 -3
- package/dist/src/config.js +83 -34
- package/dist/src/mastra-agent.d.ts +1 -0
- package/dist/src/mastra-agent.js +3 -11
- package/dist/src/mastra-chat.d.ts +13 -6
- package/dist/src/mastra-chat.js +31 -31
- package/dist/src/multi-step.d.ts +23 -7
- package/dist/src/multi-step.js +45 -26
- package/dist/src/prompts.d.ts +30 -4
- package/dist/src/prompts.js +218 -70
- package/dist/src/remote-history.d.ts +63 -0
- package/dist/src/remote-history.js +315 -0
- package/dist/src/remote.d.ts +113 -0
- package/dist/src/remote.js +634 -0
- package/dist/src/shell-hook.d.ts +58 -0
- package/dist/src/shell-hook.js +295 -26
- package/dist/src/ui/theme.d.ts +60 -23
- package/dist/src/ui/theme.js +544 -22
- package/dist/src/upgrade.d.ts +41 -0
- package/dist/src/upgrade.js +348 -0
- package/dist/src/utils/console.d.ts +4 -0
- package/dist/src/utils/console.js +89 -17
- package/package.json +4 -4
- package/src/alias.ts +301 -0
- package/src/chat-history.ts +11 -1
- package/src/components/Chat.tsx +71 -26
- package/src/components/CodeColorizer.tsx +27 -19
- package/src/components/CommandBox.tsx +26 -8
- package/src/components/ConfirmationPrompt.tsx +2 -1
- package/src/components/Duration.tsx +2 -1
- package/src/components/InlineRenderer.tsx +2 -1
- package/src/components/MarkdownDisplay.tsx +2 -1
- package/src/components/MultiStepCommandGenerator.tsx +25 -11
- package/src/components/TableRenderer.tsx +2 -1
- package/src/config.ts +126 -35
- package/src/mastra-agent.ts +3 -12
- package/src/mastra-chat.ts +40 -34
- package/src/multi-step.ts +62 -30
- package/src/prompts.ts +236 -78
- package/src/remote-history.ts +390 -0
- package/src/remote.ts +800 -0
- package/src/shell-hook.ts +339 -26
- package/src/ui/theme.ts +632 -23
- package/src/upgrade.ts +397 -0
- package/src/utils/console.ts +99 -17
package/README.md
CHANGED
|
@@ -11,9 +11,13 @@
|
|
|
11
11
|
- 🛡️ **智能错误恢复** - 命令失败时 AI 自动分析并调整策略
|
|
12
12
|
- ✏️ **命令编辑** - 执行前可编辑 AI 生成的命令,支持 manual/auto 两种模式
|
|
13
13
|
- 💬 **AI 对话模式** - 随时问 AI 命令怎么用
|
|
14
|
+
- 🌐 **远程执行** - 通过 SSH 在远程服务器执行命令,支持密码/密钥认证
|
|
14
15
|
- 📜 **三种历史记录** - 命令历史、对话历史、Shell 历史统一管理
|
|
15
16
|
- 🎨 **精美界面** - 基于 React + Ink 的终端 UI,Markdown 渲染
|
|
17
|
+
- 🌗 **主题切换** - 支持 dark/light 主题,适配不同终端背景
|
|
18
|
+
- 🏷️ **命令别名** - 常用操作一键触发,支持参数模板
|
|
16
19
|
- 🔧 **多 Provider 支持** - 支持 OpenAI、DeepSeek、Anthropic 等多种 AI
|
|
20
|
+
- 🚀 **一键升级** - 内置 `pls upgrade` 命令,自动更新到最新版本
|
|
17
21
|
|
|
18
22
|
## 📦 安装
|
|
19
23
|
|
|
@@ -36,7 +40,7 @@ yarn global add @yivan-lab/pretty-please
|
|
|
36
40
|
|
|
37
41
|
```bash
|
|
38
42
|
# 克隆项目
|
|
39
|
-
git clone https://github.com/
|
|
43
|
+
git clone https://github.com/IvanLark/pretty-please.git
|
|
40
44
|
cd pretty-please
|
|
41
45
|
|
|
42
46
|
# 安装依赖
|
|
@@ -51,6 +55,25 @@ pnpm link --global
|
|
|
51
55
|
|
|
52
56
|
安装完成后,你可以在任何目录使用 `pls` 或 `please` 命令了!
|
|
53
57
|
|
|
58
|
+
### 方式三:一键安装(无需 Node.js)
|
|
59
|
+
|
|
60
|
+
适用于云服务器、DevOps 场景,无需 Node.js 环境:
|
|
61
|
+
|
|
62
|
+
**Linux / macOS:**
|
|
63
|
+
```bash
|
|
64
|
+
curl -fsSL https://raw.githubusercontent.com/IvanLark/pretty-please/main/install.sh | bash
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Windows (PowerShell):**
|
|
68
|
+
```powershell
|
|
69
|
+
irm https://raw.githubusercontent.com/IvanLark/pretty-please/main/install.ps1 | iex
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
支持的平台:
|
|
73
|
+
- Linux x64 / arm64
|
|
74
|
+
- macOS Intel / Apple Silicon
|
|
75
|
+
- Windows x64
|
|
76
|
+
|
|
54
77
|
## 🚀 快速开始
|
|
55
78
|
|
|
56
79
|
### 1. 配置 API
|
|
@@ -261,6 +284,8 @@ pls config set <key> <value> # 设置单个配置项
|
|
|
261
284
|
| `chatHistoryLimit` | 对话历史保留轮数 | `10` |
|
|
262
285
|
| `commandHistoryLimit` | 命令历史保留条数 | `10` |
|
|
263
286
|
| `shellHistoryLimit` | Shell 历史保留条数 | `15` |
|
|
287
|
+
| `theme` | 界面主题(dark/light) | `dark` |
|
|
288
|
+
| `aliases` | 命令别名配置 | `{}` |
|
|
264
289
|
|
|
265
290
|
### 支持的 Provider
|
|
266
291
|
|
|
@@ -274,6 +299,154 @@ pls config set <key> <value> # 设置单个配置项
|
|
|
274
299
|
- `fireworks` - Fireworks AI
|
|
275
300
|
- `together` - Together AI
|
|
276
301
|
|
|
302
|
+
## 🌐 远程执行
|
|
303
|
+
|
|
304
|
+
通过 SSH 在远程服务器上执行 AI 生成的命令,支持密码/密钥认证。
|
|
305
|
+
|
|
306
|
+
### 添加远程服务器
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
# 使用默认密钥(~/.ssh/id_rsa)
|
|
310
|
+
pls remote add myserver root@192.168.1.100
|
|
311
|
+
|
|
312
|
+
# 指定端口
|
|
313
|
+
pls remote add myserver root@192.168.1.100:2222
|
|
314
|
+
|
|
315
|
+
# 使用指定密钥
|
|
316
|
+
pls remote add myserver root@192.168.1.100 --key ~/.ssh/my_key
|
|
317
|
+
|
|
318
|
+
# 使用密码认证(每次执行时输入密码)
|
|
319
|
+
pls remote add myserver root@192.168.1.100 --password
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### 管理远程服务器
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
pls remote # 查看所有服务器
|
|
326
|
+
pls remote list # 同上
|
|
327
|
+
pls remote test myserver # 测试连接并采集系统信息
|
|
328
|
+
pls remote remove myserver # 删除服务器
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### 设置默认服务器
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
pls remote default myserver # 设置默认服务器
|
|
335
|
+
pls remote default # 查看当前默认服务器
|
|
336
|
+
pls remote default --clear # 清除默认服务器
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
设置默认服务器后,使用 `-r` 参数时可以省略服务器名:
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
pls -r 查看磁盘使用情况 # 使用默认服务器
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### 设置工作目录
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
pls remote workdir myserver /var/www # 设置工作目录
|
|
349
|
+
pls remote workdir myserver # 查看当前工作目录
|
|
350
|
+
pls remote workdir myserver --clear # 清除工作目录
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
设置工作目录后,所有命令会自动在该目录下执行。
|
|
354
|
+
|
|
355
|
+
### 远程执行命令
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# 指定服务器执行
|
|
359
|
+
pls -r myserver 查看磁盘使用情况
|
|
360
|
+
pls -r myserver 查找大于 100MB 的日志文件
|
|
361
|
+
|
|
362
|
+
# 使用默认服务器(需先设置)
|
|
363
|
+
pls -r 查看当前目录的文件
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### 批量远程执行 ⭐
|
|
367
|
+
|
|
368
|
+
在多台服务器上并发执行同一个任务,每个服务器自动生成适配其环境的命令:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# 批量执行(逗号分隔服务器名)
|
|
372
|
+
pls -r web1,web2,web3 查看 nginx 状态
|
|
373
|
+
pls -r server1,server2 查看磁盘使用情况
|
|
374
|
+
pls -r prod1,prod2,prod3 重启应用服务
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**特点:**
|
|
378
|
+
- 🚀 **并发执行** - 所有服务器同时生成命令和执行,速度快
|
|
379
|
+
- 🔧 **自动适配** - 每个服务器根据其系统环境生成独立命令(支持异构环境)
|
|
380
|
+
- 📊 **清晰展示** - 显示每个服务器的命令和执行结果
|
|
381
|
+
- 📝 **历史记录** - 自动记录到每个服务器的历史
|
|
382
|
+
|
|
383
|
+
**执行流程示例:**
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
$ pls -r web1,web2,web3 查看 nginx 状态
|
|
387
|
+
|
|
388
|
+
正在为 3 台服务器生成命令...
|
|
389
|
+
|
|
390
|
+
✓ 命令生成完成
|
|
391
|
+
|
|
392
|
+
web1 (linux):
|
|
393
|
+
systemctl status nginx | grep Active
|
|
394
|
+
|
|
395
|
+
web2 (linux):
|
|
396
|
+
systemctl status nginx | grep Active
|
|
397
|
+
|
|
398
|
+
web3 (linux):
|
|
399
|
+
systemctl status nginx | grep Active
|
|
400
|
+
|
|
401
|
+
将在 3 台服务器执行以上命令
|
|
402
|
+
执行? [回车执行 / Ctrl+C 取消]
|
|
403
|
+
|
|
404
|
+
正在执行...
|
|
405
|
+
|
|
406
|
+
执行完成:
|
|
407
|
+
|
|
408
|
+
✓ web1 (退出码: 0)
|
|
409
|
+
✓ web2 (退出码: 0)
|
|
410
|
+
✗ web3 (退出码: 3)
|
|
411
|
+
|
|
412
|
+
─── web1 ───
|
|
413
|
+
Active: active (running)
|
|
414
|
+
|
|
415
|
+
─── web2 ───
|
|
416
|
+
Active: active (running)
|
|
417
|
+
|
|
418
|
+
─── web3 ───
|
|
419
|
+
Active: inactive (dead)
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**退出码:**
|
|
423
|
+
- `0` - 全部成功
|
|
424
|
+
- `1` - 部分失败
|
|
425
|
+
- `2` - 全部失败
|
|
426
|
+
|
|
427
|
+
**限制:**
|
|
428
|
+
- 批量执行模式不支持多步骤命令(只生成单个命令)
|
|
429
|
+
- 不支持命令编辑(直接执行生成的命令)
|
|
430
|
+
|
|
431
|
+
### 远程 Shell Hook
|
|
432
|
+
|
|
433
|
+
在远程服务器上安装 Shell Hook,让 AI 了解你在远程服务器上的操作历史:
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
pls remote hook install myserver # 安装远程 Hook
|
|
437
|
+
pls remote hook status myserver # 查看状态
|
|
438
|
+
pls remote hook uninstall myserver # 卸载 Hook
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### 远程历史记录
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
pls remote history show myserver # 查看远程命令历史
|
|
445
|
+
pls remote history clear myserver # 清空远程命令历史
|
|
446
|
+
pls remote history shell myserver # 查看远程 Shell 历史
|
|
447
|
+
pls remote history shell-clear myserver # 清空远程 Shell 历史
|
|
448
|
+
```
|
|
449
|
+
|
|
277
450
|
## 🔧 Shell Hook(可选)
|
|
278
451
|
|
|
279
452
|
Shell Hook 可以记录你在终端执行的所有命令,让 AI 更智能地理解上下文。
|
|
@@ -289,6 +462,198 @@ pls hook uninstall # 卸载 hook
|
|
|
289
462
|
- bash
|
|
290
463
|
- PowerShell
|
|
291
464
|
|
|
465
|
+
## 🌗 主题系统
|
|
466
|
+
|
|
467
|
+
支持多种内置主题和自定义主题,适配不同终端背景和个人喜好:
|
|
468
|
+
|
|
469
|
+
### 内置主题
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
pls theme # 查看当前主题
|
|
473
|
+
pls theme list # 查看所有可用主题
|
|
474
|
+
pls theme dark # 切换到深色主题
|
|
475
|
+
pls theme nord # 切换到 Nord 主题
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
**可用的内置主题:**
|
|
479
|
+
- **dark(深色)** - 明亮的颜色,适合深色终端背景(默认)
|
|
480
|
+
- **light(浅色)** - 较深的颜色,适合浅色终端背景
|
|
481
|
+
- **nord(北欧冷色)** - 冷色调护眼主题,适合长时间使用
|
|
482
|
+
- **dracula(德古拉暗色)** - 高对比暗色主题,色彩丰富但不刺眼
|
|
483
|
+
- **retro(复古终端绿)** - 经典终端荧光绿,致敬老派 hacker 风格
|
|
484
|
+
- **contrast(高对比度)** - 极高对比度,适合视力辅助和强光环境
|
|
485
|
+
- **monokai(经典编辑器)** - Monokai 经典配色,开发者熟悉的选择
|
|
486
|
+
|
|
487
|
+
也可以通过配置命令切换:
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
pls config set theme nord
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
### 自定义主题
|
|
494
|
+
|
|
495
|
+
创建你自己的主题配色方案:
|
|
496
|
+
|
|
497
|
+
#### 1. 创建主题模板
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
# 创建深色主题
|
|
501
|
+
pls theme create my-ocean --display-name "我的海洋主题"
|
|
502
|
+
|
|
503
|
+
# 创建浅色主题
|
|
504
|
+
pls theme create my-light --display-name "我的浅色" --category light
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
这会在 `~/.please/themes/` 目录下生成一个 JSON 模板文件。
|
|
508
|
+
|
|
509
|
+
#### 2. 编辑主题文件
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
vim ~/.please/themes/my-ocean.json
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
主题文件格式:
|
|
516
|
+
|
|
517
|
+
```json
|
|
518
|
+
{
|
|
519
|
+
"metadata": {
|
|
520
|
+
"name": "my-ocean",
|
|
521
|
+
"displayName": "我的海洋主题",
|
|
522
|
+
"description": "深邃的海洋蓝配色",
|
|
523
|
+
"category": "dark",
|
|
524
|
+
"author": "Your Name"
|
|
525
|
+
},
|
|
526
|
+
"colors": {
|
|
527
|
+
"primary": "#0077BE",
|
|
528
|
+
"secondary": "#5DADE2",
|
|
529
|
+
"accent": "#48C9B0",
|
|
530
|
+
"success": "#2ECC71",
|
|
531
|
+
"error": "#E74C3C",
|
|
532
|
+
"warning": "#F39C12",
|
|
533
|
+
"info": "#3498DB",
|
|
534
|
+
"text": {
|
|
535
|
+
"primary": "#ECF0F1",
|
|
536
|
+
"secondary": "#BDC3C7",
|
|
537
|
+
"muted": "#95A5A6",
|
|
538
|
+
"dim": "#7F8C8D"
|
|
539
|
+
},
|
|
540
|
+
"border": "#34495E",
|
|
541
|
+
"divider": "#2C3E50",
|
|
542
|
+
"code": {
|
|
543
|
+
"background": "#1C2833",
|
|
544
|
+
"text": "#ECF0F1",
|
|
545
|
+
"keyword": "#C678DD",
|
|
546
|
+
"string": "#98C379",
|
|
547
|
+
"function": "#61AFEF",
|
|
548
|
+
"comment": "#5C6370"
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
#### 3. 验证主题
|
|
555
|
+
|
|
556
|
+
```bash
|
|
557
|
+
pls theme validate ~/.please/themes/my-ocean.json
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
验证通过后会显示主题信息,失败会给出详细的错误提示。
|
|
561
|
+
|
|
562
|
+
#### 4. 应用自定义主题
|
|
563
|
+
|
|
564
|
+
```bash
|
|
565
|
+
pls theme my-ocean
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
#### 5. 管理自定义主题
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
# 查看所有主题(内置 + 自定义)
|
|
572
|
+
pls theme list
|
|
573
|
+
|
|
574
|
+
# 只查看自定义主题
|
|
575
|
+
pls theme list --custom
|
|
576
|
+
|
|
577
|
+
# 只查看内置主题
|
|
578
|
+
pls theme list --builtin
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
自定义主题在列表中会显示 ✨ 标记。
|
|
582
|
+
|
|
583
|
+
**主题文件位置:** `~/.please/themes/`
|
|
584
|
+
|
|
585
|
+
**颜色格式:** 所有颜色必须使用十六进制格式(如 `#00D9FF`)
|
|
586
|
+
|
|
587
|
+
## 🏷️ 命令别名
|
|
588
|
+
|
|
589
|
+
将常用的操作保存为别名,一键触发:
|
|
590
|
+
|
|
591
|
+
### 基本使用
|
|
592
|
+
|
|
593
|
+
```bash
|
|
594
|
+
# 添加简单别名
|
|
595
|
+
pls alias add disk "查看磁盘使用情况,按使用率排序"
|
|
596
|
+
pls alias add mem "查看内存使用最高的 10 个进程"
|
|
597
|
+
|
|
598
|
+
# 使用别名(两种格式都支持)
|
|
599
|
+
pls disk
|
|
600
|
+
pls @disk
|
|
601
|
+
|
|
602
|
+
# 查看所有别名
|
|
603
|
+
pls alias
|
|
604
|
+
pls alias list
|
|
605
|
+
|
|
606
|
+
# 删除别名
|
|
607
|
+
pls alias remove disk
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
### 参数模板
|
|
611
|
+
|
|
612
|
+
支持动态参数,让别名更灵活:
|
|
613
|
+
|
|
614
|
+
```bash
|
|
615
|
+
# 添加带参数的别名
|
|
616
|
+
pls alias add taillog "查看 {{file}} 的最后 {{lines:20}} 行日志"
|
|
617
|
+
|
|
618
|
+
# 使用时传参
|
|
619
|
+
pls taillog --file=/var/log/system.log # lines 使用默认值 20
|
|
620
|
+
pls taillog --file=/var/log/system.log --lines=50 # 自定义 lines
|
|
621
|
+
pls taillog file=/var/log/nginx.log lines=100 # 不带 -- 也可以
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
参数格式说明:
|
|
625
|
+
- `{{param}}` - 必填参数,不提供会报错
|
|
626
|
+
- `{{param:default}}` - 可选参数,有默认值
|
|
627
|
+
|
|
628
|
+
### 别名 + 额外描述
|
|
629
|
+
|
|
630
|
+
别名后可以追加额外的描述:
|
|
631
|
+
|
|
632
|
+
```bash
|
|
633
|
+
pls disk 显示详情 # 等同于 pls 查看磁盘使用情况,按使用率排序 显示详情
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
## 🚀 版本升级
|
|
637
|
+
|
|
638
|
+
### 自动更新提示
|
|
639
|
+
|
|
640
|
+
程序会每 24 小时检查一次新版本,发现更新时在命令结束后提示:
|
|
641
|
+
|
|
642
|
+
```
|
|
643
|
+
⚠ 发现新版本: 1.1.0 → 1.2.0,运行 pls upgrade 更新
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
### 升级命令
|
|
647
|
+
|
|
648
|
+
```bash
|
|
649
|
+
# 升级到最新版本
|
|
650
|
+
pls upgrade
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
升级方式:
|
|
654
|
+
- **二进制安装**(curl/irm):自动下载并替换
|
|
655
|
+
- **npm 安装**:提示使用 `npm update -g @yivan-lab/pretty-please`
|
|
656
|
+
|
|
292
657
|
## 🎯 命令参考
|
|
293
658
|
|
|
294
659
|
### 基础命令
|
|
@@ -326,6 +691,26 @@ pls hook
|
|
|
326
691
|
pls hook install
|
|
327
692
|
pls hook uninstall
|
|
328
693
|
pls hook status
|
|
694
|
+
|
|
695
|
+
# 主题
|
|
696
|
+
pls theme # 查看当前主题
|
|
697
|
+
pls theme list # 查看所有主题
|
|
698
|
+
pls theme <name> # 切换主题(dark/light/nord/dracula/retro/contrast/monokai)
|
|
699
|
+
|
|
700
|
+
# 自定义主题
|
|
701
|
+
pls theme create <name> --display-name "名称" # 创建主题模板
|
|
702
|
+
pls theme validate <file> # 验证主题文件
|
|
703
|
+
pls theme list --custom # 只显示自定义主题
|
|
704
|
+
pls theme list --builtin # 只显示内置主题
|
|
705
|
+
|
|
706
|
+
# 别名
|
|
707
|
+
pls alias # 查看所有别名
|
|
708
|
+
pls alias list # 同上
|
|
709
|
+
pls alias add <name> "<prompt>" # 添加别名
|
|
710
|
+
pls alias remove <name> # 删除别名
|
|
711
|
+
|
|
712
|
+
# 升级
|
|
713
|
+
pls upgrade # 升级到最新版本
|
|
329
714
|
```
|
|
330
715
|
|
|
331
716
|
## 🏗️ 技术架构
|
|
@@ -355,11 +740,15 @@ pretty-please/
|
|
|
355
740
|
│ ├── shell-hook.ts # Shell 集成
|
|
356
741
|
│ ├── builtin-detector.ts # Shell builtin 检测
|
|
357
742
|
│ ├── sysinfo.ts # 系统信息采集
|
|
743
|
+
│ ├── upgrade.ts # 版本升级模块
|
|
744
|
+
│ ├── alias.ts # 命令别名管理
|
|
358
745
|
│ ├── components/ # React Ink 组件
|
|
359
746
|
│ │ ├── MultiStepCommandGenerator.tsx
|
|
360
747
|
│ │ ├── Chat.tsx
|
|
361
748
|
│ │ ├── MarkdownDisplay.tsx
|
|
362
749
|
│ │ └── ...
|
|
750
|
+
│ ├── ui/
|
|
751
|
+
│ │ └── theme.ts # 主题系统
|
|
363
752
|
│ └── utils/
|
|
364
753
|
│ └── console.ts # 原生输出工具
|
|
365
754
|
├── package.json
|