kapsel-cli 0.1.0__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.
- kapsel_cli-0.1.0/PKG-INFO +397 -0
- kapsel_cli-0.1.0/README.md +361 -0
- kapsel_cli-0.1.0/kapsel/__init__.py +6 -0
- kapsel_cli-0.1.0/kapsel/cli.py +162 -0
- kapsel_cli-0.1.0/kapsel/completion/__init__.py +23 -0
- kapsel_cli-0.1.0/kapsel/completion/carapace_engine.py +236 -0
- kapsel_cli-0.1.0/kapsel/completion/completer.py +251 -0
- kapsel_cli-0.1.0/kapsel/completion/fig_engine.py +215 -0
- kapsel_cli-0.1.0/kapsel/completion/fig_schema.py +135 -0
- kapsel_cli-0.1.0/kapsel/completion/importer.py +92 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/__init__.py +18 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/__init__.py +92 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/add.py +121 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/config.py +184 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/datadir.py +108 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/help.py +270 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/language.py +83 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/status.py +121 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/builtins/toggle.py +34 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/dispatcher.py +65 -0
- kapsel_cli-0.1.0/kapsel/completion/kps/registry.py +101 -0
- kapsel_cli-0.1.0/kapsel/core/__init__.py +28 -0
- kapsel_cli-0.1.0/kapsel/core/detector.py +162 -0
- kapsel_cli-0.1.0/kapsel/core/engine.py +159 -0
- kapsel_cli-0.1.0/kapsel/core/executor.py +200 -0
- kapsel_cli-0.1.0/kapsel/core/i18n.py +31 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/__init__.py +17 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/base.py +53 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/catalog.py +187 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/context.py +71 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/hooks.py +34 -0
- kapsel_cli-0.1.0/kapsel/core/plugin/manager.py +173 -0
- kapsel_cli-0.1.0/kapsel/i18n.py +196 -0
- kapsel_cli-0.1.0/kapsel/locales/de/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/de/LC_MESSAGES/kapsel.po +215 -0
- kapsel_cli-0.1.0/kapsel/locales/de/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/en/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/es/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/es/LC_MESSAGES/kapsel.po +213 -0
- kapsel_cli-0.1.0/kapsel/locales/es/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/fr/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/fr/LC_MESSAGES/kapsel.po +213 -0
- kapsel_cli-0.1.0/kapsel/locales/fr/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/ja/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/ja/LC_MESSAGES/kapsel.po +211 -0
- kapsel_cli-0.1.0/kapsel/locales/ja/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/kapsel.pot +210 -0
- kapsel_cli-0.1.0/kapsel/locales/ru/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/ru/LC_MESSAGES/kapsel.po +212 -0
- kapsel_cli-0.1.0/kapsel/locales/ru/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/locales/zh_CN/LC_MESSAGES/kapsel.mo +0 -0
- kapsel_cli-0.1.0/kapsel/locales/zh_CN/LC_MESSAGES/kapsel.po +211 -0
- kapsel_cli-0.1.0/kapsel/locales/zh_CN/help.yaml +101 -0
- kapsel_cli-0.1.0/kapsel/storage/__init__.py +17 -0
- kapsel_cli-0.1.0/kapsel/storage/config.py +362 -0
- kapsel_cli-0.1.0/kapsel/storage/history.py +166 -0
- kapsel_cli-0.1.0/kapsel/storage/logger.py +75 -0
- kapsel_cli-0.1.0/kapsel/storage/migrate.py +119 -0
- kapsel_cli-0.1.0/kapsel/ui/__init__.py +21 -0
- kapsel_cli-0.1.0/kapsel/ui/banner.py +121 -0
- kapsel_cli-0.1.0/kapsel/ui/card.py +109 -0
- kapsel_cli-0.1.0/kapsel/ui/prompt.py +391 -0
- kapsel_cli-0.1.0/kapsel/ui/theme.py +59 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/PKG-INFO +397 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/SOURCES.txt +71 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/dependency_links.txt +1 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/entry_points.txt +3 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/requires.txt +8 -0
- kapsel_cli-0.1.0/kapsel_cli.egg-info/top_level.txt +1 -0
- kapsel_cli-0.1.0/pyproject.toml +66 -0
- kapsel_cli-0.1.0/setup.cfg +4 -0
- kapsel_cli-0.1.0/tests/test_history.py +191 -0
- kapsel_cli-0.1.0/tests/test_i18n.py +90 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kapsel-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: 💊 跨平台自适应智能终端胶囊 (Cross-platform adaptive smart terminal capsule)
|
|
5
|
+
Author-email: MrEiu <k648888@vip.qq.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/MrEiu/Kapsel
|
|
8
|
+
Project-URL: Repository, https://github.com/MrEiu/Kapsel
|
|
9
|
+
Project-URL: Issues, https://github.com/MrEiu/Kapsel/issues
|
|
10
|
+
Keywords: terminal,shell,cli,capsule,prompt,completion,i18n,carapace
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
16
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
17
|
+
Classifier: Operating System :: MacOS
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: System :: Shells
|
|
25
|
+
Classifier: Topic :: Terminals
|
|
26
|
+
Classifier: Topic :: Utilities
|
|
27
|
+
Requires-Python: >=3.9
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
Requires-Dist: prompt_toolkit>=3.0.40
|
|
30
|
+
Requires-Dist: rich>=13.0.0
|
|
31
|
+
Requires-Dist: pyyaml>=6.0
|
|
32
|
+
Requires-Dist: psutil>=5.9.0
|
|
33
|
+
Requires-Dist: shellingham>=1.5.0
|
|
34
|
+
Provides-Extra: test
|
|
35
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
36
|
+
|
|
37
|
+
# 💊 Kapsel:跨平台自适应智能终端胶囊
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
<b>Wrap complexity, expose simplicity. 包裹复杂,暴露极简。</b><br>
|
|
41
|
+
现代化 UI 体验的跨平台交互式终端增强包装器(CLI Wrapper)。
|
|
42
|
+
</p>
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 📝 产品理念 (Philosophy)
|
|
47
|
+
|
|
48
|
+
**Kapsel**(德语“胶囊”)是一款具有现代化 UI 体验的跨平台交互式终端包装器(CLI Wrapper)。
|
|
49
|
+
|
|
50
|
+
它的核心理念是**“包裹复杂,暴露极简”**。Kapsel 完全接管终端输入流,**不侵入任何操作系统原生配置**(无需修改 `.bashrc`、`config.fish` 或 PowerShell Profile)。它以 **Linux 原生命令** 为主导肌肉记忆,结合**双态智能引擎**,让开发者在 Windows、macOS 和 Linux 上都能享受高度一致、极致优雅的命令行体验。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🚀 核心特性
|
|
55
|
+
|
|
56
|
+
### 1. 核心交互:双态智能引擎 (Dual-State Engine)
|
|
57
|
+
|
|
58
|
+
在同一个输入框内实现无缝、克制的双态切换:
|
|
59
|
+
|
|
60
|
+
- **默认态:安静的终端增强器 (Native Mode)**
|
|
61
|
+
- **原生无感透传**:原汁原味地执行当前系统的原生命令(如 `git push`, `npm run dev`, `vim`, `python`),绝不拦截,完美兼容交互式程序与标准输入输出。
|
|
62
|
+
- **历史智能预测 (Autosuggestion)**:基于独立的本地历史数据库,在光标后方以暗灰色文本实时预测命令,按 **`→` (右方向键)** 一键采纳。
|
|
63
|
+
- **原生路径补全**:输入 `cd ` 并按下 **Tab**,自动读取当前操作系统的真实目录和文件进行智能补全。
|
|
64
|
+
|
|
65
|
+
- **映射态:跨平台翻译胶囊 (Kapsel Mode)**
|
|
66
|
+
- **动态无缝切入**:输入 `kps ` 加空格瞬间进入“胶囊模式”,补全数据源即刻切换为跨平台指令集。
|
|
67
|
+
- **Linux-First 肌肉记忆**:完全采用熟悉的 Linux 基础命令作为触发词(如 `kps rm -rf`, `kps ls -la`, `kps ps`, `kps grep`)。
|
|
68
|
+
- **富文本感知菜单**:下拉菜单展示匹配的 Linux 映射指令,附带高亮中文说明,并在右侧实时预览即将执行的底层真实代码。
|
|
69
|
+
- **剥离与派发**:按下回车后,Kapsel 自动剥离 `kps ` 前缀,提取核心参数,将其翻译为当前终端的最佳原生指令并执行。
|
|
70
|
+
|
|
71
|
+
### 2. 终端级精细化路由与降级 (Terminal-Level Routing)
|
|
72
|
+
|
|
73
|
+
Kapsel 实现了比“操作系统级”更硬核的终端(Shell)级精细化路由与降级回退机制:
|
|
74
|
+
|
|
75
|
+
- **环境深度嗅探**:启动时精准识别外层宿主是 `pwsh`, `powershell`, `cmd`, `bash`, `zsh` 还是 `fish`。
|
|
76
|
+
- **多级降级匹配**:例如指令 `kps ls -la`:
|
|
77
|
+
- 检测到 `zsh`:优先执行美化版指令 `eza -la --icons`
|
|
78
|
+
- 检测到 `powershell` / `pwsh`:执行 `Get-ChildItem -Force`
|
|
79
|
+
- 检测到 `cmd`:执行 `dir /Q /A`
|
|
80
|
+
- 通用 Unix 环境:执行 `ls -la`
|
|
81
|
+
- **智能参数注入 (`{{args}}`)**:输入 `kps rm -rf node_modules` 时,Kapsel 自动提取参数并无缝注入到 YAML 配置的占位符中(如 `Remove-Item -Recurse -Force node_modules`)。
|
|
82
|
+
|
|
83
|
+
### 3. 独立沙箱化的用户状态 (Isolated State DB)
|
|
84
|
+
|
|
85
|
+
- **历史无缝漫游**:统一将历史输入写入外部的 SQLite 数据库 `~/.kapsel/history.db`。无论昨天在 Windows CMD 还是今天在 pwsh 中,都能随时调出完整的跨平台历史记录。
|
|
86
|
+
- **频次权重学习**:基于 SQLite 自动记录命令使用频次,高频映射指令在补全菜单中享有最高优先级排序。
|
|
87
|
+
|
|
88
|
+
### 4. 现代美学界面 (Aesthetic UI/UX)
|
|
89
|
+
|
|
90
|
+
- **区块化视觉封装**:采用现代符号连线(`╭─ ❯` 和 `╰─`),将“输入 -> 耗时执行 -> 输出结果”在终端里视觉化为一个独立、闭合的卡片区块。
|
|
91
|
+
- **优雅的状态反馈**:执行结束后自动返回鲜明的状态标识(绿色的 `✔ 0` 或标红的退出码 `✘ exit 1`)以及毫秒级执行耗时(`⏱ 42ms`)。
|
|
92
|
+
- **动态环境欢迎页**:启动时展示圆角边框面板,智能播报当前检测到的宿主终端、提权状态(Root / Admin / User)及配置文件加载情况。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 📁 规范化数据沙箱设计
|
|
97
|
+
|
|
98
|
+
安装运行后,Kapsel 将在用户主目录自动生成标准化的数据目录:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
~/.kapsel/
|
|
102
|
+
├── config.yaml # 系统级 UI 配置 (主题颜色、符号样式、动画开关等)
|
|
103
|
+
├── commands.yaml # Linux-First 自适应映射指令集 (支持团队 Git 共享)
|
|
104
|
+
├── history.db # 跨平台的独立用户历史输入与频次分析数据库 (SQLite)
|
|
105
|
+
└── logs/ # Kapsel 自身的运行报错与调试日志
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### `commands.yaml` 配置示例
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
commands:
|
|
112
|
+
- alias: "rm -rf"
|
|
113
|
+
desc: "递归强制删除目录或文件"
|
|
114
|
+
mapping:
|
|
115
|
+
powershell: "Remove-Item -Recurse -Force {{args}}"
|
|
116
|
+
cmd: "rmdir /S /Q {{args}}"
|
|
117
|
+
unix: "rm -rf {{args}}"
|
|
118
|
+
|
|
119
|
+
- alias: "ls -la"
|
|
120
|
+
desc: "详细列出所有文件(含隐藏文件)"
|
|
121
|
+
mapping:
|
|
122
|
+
zsh: "eza -la --icons {{args}}"
|
|
123
|
+
powershell: "Get-ChildItem -Force {{args}}"
|
|
124
|
+
cmd: "dir /Q /A {{args}}"
|
|
125
|
+
unix: "ls -la {{args}}"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🛠️ 安装与快速开始
|
|
131
|
+
|
|
132
|
+
### 本地开发安装
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
git clone <repo-url> kapsel
|
|
136
|
+
cd kapsel
|
|
137
|
+
pip install -e .
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 使用方式
|
|
141
|
+
|
|
142
|
+
1. **交互式全屏胶囊模式 (`kapsel`)**:
|
|
143
|
+
```bash
|
|
144
|
+
kapsel
|
|
145
|
+
```
|
|
146
|
+
进入 Kapsel 交互终端,即可体验双态补全、现代卡片包装和历史漫游。
|
|
147
|
+
- 输入 `help`:随时调出完整使用指南与指令速查手册。
|
|
148
|
+
- 输入 `status` 或 `info`:查看当前宿主 Shell、运行权限、数据沙箱与系统详细状态面板。
|
|
149
|
+
- 输入 `clear`:清除屏幕并重绘胶囊徽标。
|
|
150
|
+
- 输入 `exit`:无痕退出胶囊。
|
|
151
|
+
|
|
152
|
+
2. **单次快速命令转换 (`kps`)**:
|
|
153
|
+
```bash
|
|
154
|
+
kps rm -rf dist/
|
|
155
|
+
kps ls -la
|
|
156
|
+
kps ps
|
|
157
|
+
kps help
|
|
158
|
+
kps status
|
|
159
|
+
```
|
|
160
|
+
直接在您现有的任意 Shell(PowerShell、CMD、Bash)中调用 `kps`,即刻转换并执行。
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 🛠️ 内置控制台指令
|
|
165
|
+
|
|
166
|
+
| 指令 | 别名 | 功能说明 |
|
|
167
|
+
| :--- | :--- | :--- |
|
|
168
|
+
| `help` | `kps help`, `--help` | 显示详尽的使用指南、交互机制与常用指令速查手册 |
|
|
169
|
+
| `status` | `info`, `kps status` | 查看当前宿主 Shell、运行权限、操作系统、数据沙箱与历史库统计 |
|
|
170
|
+
| `config` | `kps config` | 查看系统核心配置看板、快速调节灵敏度与功能开关 |
|
|
171
|
+
| `config path` | - | 打印配置文件 `~/.kapsel/config.yaml` 的完整绝对路径 |
|
|
172
|
+
| `config edit` | - | 调用系统关联编辑器直接打开并编辑 `config.yaml` |
|
|
173
|
+
| `config set <k> <v>` | - | 命令行快速修改某项配置(如 `config set sensitivity 0.2`) |
|
|
174
|
+
| `config reload` | - | 即刻热重载最新配置文件,无需重启终端 |
|
|
175
|
+
| `repo [subcmd]` | `kps repo`, `hub` | 📦 访问指令云仓库(支持 `list`, `search`, `info`, `pull`, `mappings`) |
|
|
176
|
+
| `register [user]` | `kps register` | 注册胶囊用户身份,生成专属设备指纹与加密云同步秘钥 |
|
|
177
|
+
| `whoami` | `user`, `kps whoami` | 查看当前设备登录的胶囊用户、绑定邮箱与云同步就绪状态 |
|
|
178
|
+
| `logout` | `kps logout` | 安全退出当前用户身份并清除本地凭证 |
|
|
179
|
+
| `cd` | - | 智能切换工作目录(支持 `cd ~` 家目录、`cd -` 快速返回、`cd ..` 上级目录) |
|
|
180
|
+
| `clear` | `cls` | 清屏并重新绘制极简胶囊徽标 |
|
|
181
|
+
| `exit` | `quit` | 安全退出 Kapsel,无痕返回当前原生 Shell |
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 📦 指令云仓库 (Hub Repository):两层指令集与 PWSH 独立映射
|
|
186
|
+
|
|
187
|
+
为了让终端开发者能像使用 `pip`、`scoop` 或 `brew` 那样轻松获取、共享和安装各类命令行工具指令集,Kapsel 内置了基于 SQLite 的指令云仓库体系 (`kapsel/hub/registry.db`):
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
┌── hub_packages (平台 -> 软件元数据)
|
|
191
|
+
Kapsel Hub (SQLite 仓库) ─┼── hub_commands (具体软件收录的丰富子命令集)
|
|
192
|
+
└── hub_mappings (独立终端转义映射仓库,优先聚焦 pwsh)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 1. 两层架构:平台 (Platform) ➜ 软件 (Software)
|
|
196
|
+
- **第一层:平台环境**:如 `windows`、`universal`(跨平台通用)、`linux`。
|
|
197
|
+
- **第二层:软件工具链**:
|
|
198
|
+
- 🧰 **`scoop`** (Windows 专属):收录 `install`, `update`, `status`, `search`, `list`, `uninstall`, `bucket`, `cleanup`, `info`, `cache` 等常用指令与用例。
|
|
199
|
+
- 🌿 **`git`** (通用):收录 `status`, `add`, `commit`, `push`, `pull`, `checkout`, `branch`, `diff`, `log`, `clone`, `init`, `stash` 等。
|
|
200
|
+
- 🐍 **`python`** (通用):收录 `venv`, `pip-install`, `pip-freeze`, `http-server`, `run`, `pip-list`, `pip-show`。
|
|
201
|
+
- 📦 **`npm`** (通用):收录 `install`, `run`, `dev`, `build`, `test`, `init`, `outdated`, `list`, `cache`。
|
|
202
|
+
|
|
203
|
+
### 2. 独立映射仓库 (Focused on `pwsh`)
|
|
204
|
+
- 独立于软件具体业务指令,专门收录 Linux 原生命令到 **PowerShell Core / Windows PowerShell** 的精准 Cmdlet 映射模板(当前收录 32+ 条核心系统转义)。
|
|
205
|
+
|
|
206
|
+
### 3. 像 `pip` / `scoop` 一样使用云仓库指令
|
|
207
|
+
| 指令 | 作用描述 | 类似 pip/scoop 概念 |
|
|
208
|
+
| :--- | :--- | :--- |
|
|
209
|
+
| **`kps repo list`** | 按平台分类展示所有可用的软件包清单 | `pip list` / `scoop bucket list` |
|
|
210
|
+
| **`kps repo search <词>`** | 跨平台全局模糊搜索软件包、子命令或中文说明 | `pip search` / `scoop search` |
|
|
211
|
+
| **`kps repo info <软件名>`** | 审查该软件收录的所有指令明细、语法与示例(如 `kps repo info scoop`) | `pip show` / `scoop info` |
|
|
212
|
+
| **`kps repo pull <软件名>`** | **一键拉取并安装该软件指令集**至本地活跃 `commands.yaml` | **`pip install`** / **`scoop install`** |
|
|
213
|
+
| **`kps repo mappings`** | 查看独立收录的面向 pwsh 的原生命令转义库 | 查看底层原生适配表 |
|
|
214
|
+
| **`kps-hub`** / **`kps repo admin`** | **独立的云仓库 CRUD 运维管理工具**(增删改查软件包、指令、映射) | 仓库源管理员工具 |
|
|
215
|
+
|
|
216
|
+
#### 独立云仓库运维工具 (`kps-hub`) 快速用法:
|
|
217
|
+
```bash
|
|
218
|
+
# 查看云仓库统计与数据库状态
|
|
219
|
+
kps-hub status
|
|
220
|
+
|
|
221
|
+
# 管理软件包 (增删查)
|
|
222
|
+
kps-hub pkg list
|
|
223
|
+
kps-hub pkg add docker -d "Docker 容器引擎" --platform universal --category container
|
|
224
|
+
kps-hub pkg del docker
|
|
225
|
+
|
|
226
|
+
# 管理具体软件的指令集 (增删查)
|
|
227
|
+
kps-hub cmd list scoop
|
|
228
|
+
kps-hub cmd add scoop bucket "scoop bucket" -d "管理扩展 Bucket 源" --example "scoop bucket add extras"
|
|
229
|
+
kps-hub cmd del scoop bucket
|
|
230
|
+
|
|
231
|
+
# 管理独立 pwsh 原生映射库 (增删查)
|
|
232
|
+
kps-hub map list --shell pwsh
|
|
233
|
+
kps-hub map add "docker-ps" "docker.exe ps" -d "Docker 进程列表" --shell pwsh
|
|
234
|
+
|
|
235
|
+
# 整个仓库导出与导入
|
|
236
|
+
kps-hub export -o backup.json
|
|
237
|
+
kps-hub import backup.json
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## ☁️ 胶囊用户身份与多端云漫游体系
|
|
243
|
+
|
|
244
|
+
为了在 Windows、macOS 和 Linux 之间实现**无缝的个人工作流漫游**,Kapsel 现已内置端到端加密的数字身份系统,为后续全量云端多系统同步提供基础支撑:
|
|
245
|
+
|
|
246
|
+
### 1. 凭据与设备指纹
|
|
247
|
+
- **存储路径**:`~/.kapsel/user.json`
|
|
248
|
+
- **安全体系**:每个设备在注册时,均会基于硬件环境生成独立的 `device_id`,并签发专属的跨端加密同步秘钥(`kps_sync_...`),无需侵入系统密钥环。
|
|
249
|
+
- **漫游就绪**:后续在任一台新设备(macOS / Linux / Windows)上通过您的秘钥接入,即可自动拉取并双向同步:
|
|
250
|
+
- 📂 您的自定义 Linux-First 指令映射表 (`commands.yaml`)
|
|
251
|
+
- ⚙️ 您量身定制的终端主题与交互灵敏度参数 (`config.yaml`)
|
|
252
|
+
- 🧠 跨 Shell 的历史输入库与高频频次学习权重 (`history.db`)
|
|
253
|
+
|
|
254
|
+
### 2. 账号管理常用指令
|
|
255
|
+
```bash
|
|
256
|
+
# 1. 交互式或单行注册胶囊账号
|
|
257
|
+
kps register meru --email user@example.com
|
|
258
|
+
|
|
259
|
+
# 2. 查看当前登录用户信息与设备秘钥
|
|
260
|
+
kps whoami
|
|
261
|
+
|
|
262
|
+
# 3. 查看系统状态看板(联动显示当前用户)
|
|
263
|
+
kps status
|
|
264
|
+
|
|
265
|
+
# 4. 退出登录
|
|
266
|
+
kps logout
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## ⚙️ 配置文件与右箭头灵敏交互
|
|
272
|
+
|
|
273
|
+
### 1. 配置文件位置
|
|
274
|
+
Kapsel 的所有个性化设置均集中在外部沙箱的 YAML 文件中:
|
|
275
|
+
- **物理路径**:`~/.kapsel/config.yaml`(在 Windows 上通常为 `C:\Users\<当前用户>\.kapsel\config.yaml`)
|
|
276
|
+
- 文件内部提供全中文详尽注释,涵盖:交互灵敏度、UI 主题调色板、提示行符号、终端路由降级规则及历史漫游深度。
|
|
277
|
+
|
|
278
|
+
### 2. 右箭头 (`→`) 灵敏交互设计:单按 vs 长按
|
|
279
|
+
为了解决传统终端“一次性填满整行无法部分复用”的痛点,Kapsel 引入了基于按键时间敏感度的多态采纳引擎:
|
|
280
|
+
- **单次轻按 (Tap)**:**逐词采纳 (Word-by-word)**。例如历史命令为 `git commit -m "update" -a`,按一下输入 `git`,再按一下输入 `commit`,方便开发者精确截取历史参数并微调。
|
|
281
|
+
- **长按 / 连按 (Hold)**:**一键整行采纳 (Full Accept)**。当连续击键或长按时,系统自动判定为连按意图,瞬间将剩余全部命令一键填满!
|
|
282
|
+
- **可配参数**:
|
|
283
|
+
- `autosuggest_tap_mode`: 可设为 `"word"`(逐词,默认)或 `"full"`(单按直接整行)。
|
|
284
|
+
- `autosuggest_sensitivity`: 长按/连按判定敏感度阈值(单位秒,默认 `0.25`)。两次按键时间间隔在此阈值内即判定为连续长按。
|
|
285
|
+
- `consecutive_press_threshold`: 触发整行长按所需的连续击键次数(默认 `2` 次)。
|
|
286
|
+
|
|
287
|
+
#### 快速调参示例
|
|
288
|
+
```bash
|
|
289
|
+
# 查看当前所有重要配置
|
|
290
|
+
kps config
|
|
291
|
+
|
|
292
|
+
# 快速打开配置文件编辑
|
|
293
|
+
kps config edit
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 3. 数据存储目录自定义与无痕迁移 (`kps datadir`)
|
|
297
|
+
Kapsel 默认将配置文件、本地 SQLite 历史库与指令仓库保存在 `~/.kapsel`。若您希望将其存放在非系统盘(如 D盘)、外部挂载盘或同步盘中,可随时一键迁移:
|
|
298
|
+
- **查看当前存储状态**:
|
|
299
|
+
```bash
|
|
300
|
+
kps datadir
|
|
301
|
+
```
|
|
302
|
+
- **迁移到自定义路径 (自动搬迁且旧目录不留)**:
|
|
303
|
+
```bash
|
|
304
|
+
kps datadir D:\KapselData
|
|
305
|
+
```
|
|
306
|
+
*系统会自动转移全部 SQLite 历史记录、`config.yaml` 配置文件和指令仓库,并在搬迁完毕后彻底清理旧目录,全局永久生效。*
|
|
307
|
+
- **一键恢复为系统默认路径**:
|
|
308
|
+
```bash
|
|
309
|
+
kps datadir default
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### 4. 上下方向键重构:以当前输入为原点的双向流转机制 (Origin-Centered Navigation)
|
|
313
|
+
为了让开发者的双手不离开方向键即可完成最核心的高频操作,Kapsel 创新性地设计了**以当前输入为原点**的上下流转交互:
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
▲ 向上漫游更早历史
|
|
317
|
+
│
|
|
318
|
+
┌──────────────────────┐
|
|
319
|
+
│ 历史模式 (History) │ ── 按【↓】往回翻看较新历史,直到回到原点
|
|
320
|
+
└──────────────────────┘
|
|
321
|
+
▲
|
|
322
|
+
[按 ↑ 进入] │ [按 ↓ 回到原点]
|
|
323
|
+
───────────────┼─────────────────────────── (当前正在输入的命令行 · 原点)
|
|
324
|
+
[按 ↑ 回到] │ [按 ↓ 进入]
|
|
325
|
+
▼
|
|
326
|
+
┌──────────────────────┐
|
|
327
|
+
│ 补全模式 (Completion)│ ── 按【↑】往回选择上一个词条,直到回到原点
|
|
328
|
+
└──────────────────────┘
|
|
329
|
+
│
|
|
330
|
+
▼ 向下选择下一个候选词
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
- **从原点出发**:
|
|
334
|
+
- **`↑` (上方向键)**:向上进入【历史漫游模式】,调出 SQLite 历史库中的上一条输入;
|
|
335
|
+
- **`↓` (下方向键)**:向下进入【补全候选模式】,一键唤起并自动选中第一个补全词!
|
|
336
|
+
- **在模式内部可自由来回切换,回到原点才能进入下一个模式**:
|
|
337
|
+
- **在历史模式中**:按 `↑` 查更早历史、按 `↓` 查较新历史;一路按 `↓` **回到原点**后,再次按 `↓` 即可无缝切换进入补全模式!
|
|
338
|
+
- **在补全模式中**:按 `↓` 选下一个词条、按 `↑` 选上一个词条;一路按 `↑` **回到原点**(恢复原始输入)后,再次按 `↑` 即可无缝切换进入历史模式!
|
|
339
|
+
- **选词采纳 vs 提交执行(Enter 回车键智能分流)**:
|
|
340
|
+
- 当通过向下键选中了某个子命令或 Flag 时,按下 **`Enter`**(或 `Tab`)会**确认采纳该词条**,自动在末尾补全空格,光标停留在末尾——**绝对不会直接执行裸命令**,方便您立刻接着敲入后续参数(如 `-m "update"` 或目录名)!
|
|
341
|
+
- 只有当没有选词时,按下 `Enter` 才会提交整行命令执行。
|
|
342
|
+
- **绝对不是死板的“只能一味上一味下”**,双手不离方向键,自由丝滑来回穿梭!
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 📋 预置常用命令一览
|
|
347
|
+
|
|
348
|
+
| Linux 命令 | 功能说明 | PowerShell 映射 | CMD 映射 |
|
|
349
|
+
| :--- | :--- | :--- | :--- |
|
|
350
|
+
| `rm -rf` | 递归强制删除 | `Remove-Item -Recurse -Force` | `rmdir /S /Q` |
|
|
351
|
+
| `rm` | 删除文件 | `Remove-Item` | `del /Q` |
|
|
352
|
+
| `ls -la` / `ll` | 详细列出文件 | `Get-ChildItem -Force` | `dir /Q /A` |
|
|
353
|
+
| `cat` | 查看文件内容 | `Get-Content` | `type` |
|
|
354
|
+
| `touch` | 创建空文件 | `New-Item -ItemType File -Force` | `type nul >>` |
|
|
355
|
+
| `cp -r` | 递归复制 | `Copy-Item -Recurse -Force` | `xcopy /E /I /Y` |
|
|
356
|
+
| `mv` | 移动/重命名 | `Move-Item -Force` | `move /Y` |
|
|
357
|
+
| `mkdir -p` | 递归建目录 | `New-Item -ItemType Directory -Force` | `mkdir` |
|
|
358
|
+
| `ps` | 查看进程列表 | `Get-Process` | `tasklist` |
|
|
359
|
+
| `kill -9` | 强制终止进程 | `Stop-Process -Force -Id` | `taskkill /F /PID` |
|
|
360
|
+
| `grep` | 文本模式匹配 | `Select-String` | `findstr` |
|
|
361
|
+
| `find` | 递归查找文件 | `Get-ChildItem -Recurse -Filter` | `dir /S /B` |
|
|
362
|
+
| `which` | 查找程序路径 | `Get-Command` | `where` |
|
|
363
|
+
| `df -h` | 磁盘空间统计 | `Get-PSDrive -PSProvider FileSystem` | `wmic logicaldisk ...` |
|
|
364
|
+
| `clear` | 清屏 | `Clear-Host` | `cls` |
|
|
365
|
+
| `ifconfig` / `ip a` | 查看网卡信息 | `Get-NetIPAddress` | `ipconfig /all` |
|
|
366
|
+
| `env` | 环境变量列表 | `Get-ChildItem env:` | `set` |
|
|
367
|
+
| `head` | 查看前 10 行 | `Get-Content -Head 10` | `powershell ...` |
|
|
368
|
+
| `tail` | 查看后 10 行 | `Get-Content -Tail 10` | `powershell ...` |
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 🔮 未来规划 (Roadmap)
|
|
373
|
+
|
|
374
|
+
- **非侵入式交互看板 (Context Stream)**:
|
|
375
|
+
- 在后续版本中,计划将交互底栏演进为可插拔关键信息看板:
|
|
376
|
+
- **Git 状态流**:实时反映未暂存修改、未推送 Commit 计数
|
|
377
|
+
- **环境上下文**:Python 虚拟环境 (`venv`/`conda`)、Node 运行时版本自动感知
|
|
378
|
+
- **后台与性能监控**:耗时后台任务执行进度、系统资源告警
|
|
379
|
+
- **AI 智能建议**:基于历史错误码的自适应修复提示
|
|
380
|
+
- **配置云漫游与团队共享**:支持通过用户数字凭据一键跨设备同步指令集与历史漫游。
|
|
381
|
+
- **自定义指令热重载**:在外部修改 `~/.kapsel/commands.yaml` 时无感知热重载。
|
|
382
|
+
- 📖 **深度技术白皮书**:详细架构与演进方案已整理至 [《Kapsel 指令存储与映射架构分析与全方位优化方案》](docs/command_storage_and_mapping_architecture.md)。
|
|
383
|
+
- 🛠️ **开发架构规范 (DEVELOPMENT.md)**:开发守则与核心铁律已写入 [《Kapsel 架构设计与开发规范》](DEVELOPMENT.md)(坚决杜绝代码硬编码,杜绝配置文件堆叠,坚持云仓库集中、客户端同步、本地高速读取)。
|
|
384
|
+
- 📡 **云端与本地通信架构提案**:详见 [《Kapsel 本地与云端通信方案调研与架构选型报告》](docs/local_cloud_communication_proposals.md)(深度对比 REST API、Git CDN、SQLite Changeset、gRPC 与混合架构五大方案)。
|
|
385
|
+
|
|
386
|
+
## 🙏 特别致谢 (Acknowledgments)
|
|
387
|
+
|
|
388
|
+
- **Fig / Amazon Q (`withfig/autocomplete`)**:
|
|
389
|
+
> *“Fig 是我制作完功能后意外发现的;之后全面兼容了该仓库,感谢各位先贤的贡献。”*
|
|
390
|
+
Kapsel 深度兼容并吸纳了其优秀的 `Fig.Spec` 树形补全规范,使开发者在拥有强大的跨平台原生转义映射的同时,享受全球顶级的终端自动补全体验。
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
## 📄 License
|
|
395
|
+
|
|
396
|
+
MIT License.
|
|
397
|
+
|