@gird/ccli 2.0.0 → 2.0.1
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 +22 -61
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,26 +4,17 @@
|
|
|
4
4
|
[](./LICENSE)
|
|
5
5
|
[](https://nodejs.org)
|
|
6
6
|
|
|
7
|
-
**CCLI**
|
|
7
|
+
**CCLI** —— 一个**从零开始、一步一步**实现的代理型(Agentic)终端 AI 编程助手。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> ⚠️ **重建中(work in progress)**:本项目正在从零逐步重写,力求每一步都简单、可读、可运行。
|
|
10
|
+
> 当前进度见下方「实现进度」。每一步都配有说明文档,放在 [`docs/steps/`](docs/steps/)。
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
npm install -g @gird/ccli
|
|
13
|
-
ccli # 首次运行会引导你配置模型与密钥
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
---
|
|
12
|
+
## 为什么重写
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- **丰富工具集** —— 读写与精确编辑文件、grep / glob 检索、shell 执行、网页抓取、子代理调研、任务清单。
|
|
23
|
-
- **安全可控** —— 只读操作放行;写文件 / 执行命令前显式授权;高危命令(`rm -rf`、`git push`…)告警;支持钩子拦截。
|
|
24
|
-
- **上下文工程** —— 自动索引项目结构、注入 `CCLI.md` 项目记忆、`/compact` 压缩、`/cost` 成本统计。
|
|
25
|
-
- **顺手的交互** —— 流式 Markdown 渲染、`@文件` 引用、`!` 直通 shell、`#` 写长期记忆、会话恢复、自定义斜杠命令。
|
|
26
|
-
- **零重型依赖** —— 纯 TypeScript 实现,运行时仅依赖官方 SDK。
|
|
14
|
+
上一版实现一次性堆了太多功能,代码复杂到难以通读。现在推倒重来,遵循一个原则:
|
|
15
|
+
**从最小可运行的骨架开始,每次只加一个能独立讲清楚的功能,并为它写一份文档**
|
|
16
|
+
(这一步做什么、怎么做的、遇到什么问题、下一步是什么)。目标是过程可追、代码好懂,
|
|
17
|
+
最终长成一个可发布的工具。
|
|
27
18
|
|
|
28
19
|
## 安装
|
|
29
20
|
|
|
@@ -33,18 +24,17 @@ npm install -g @gird/ccli
|
|
|
33
24
|
|
|
34
25
|
要求 Node.js ≥ 18。
|
|
35
26
|
|
|
36
|
-
##
|
|
27
|
+
## 用法
|
|
37
28
|
|
|
38
29
|
```bash
|
|
39
|
-
ccli
|
|
40
|
-
ccli
|
|
41
|
-
ccli
|
|
30
|
+
ccli # 进入交互式会话
|
|
31
|
+
ccli --version # 打印版本号
|
|
32
|
+
ccli --help # 打印帮助
|
|
42
33
|
```
|
|
43
34
|
|
|
44
35
|
## 配置
|
|
45
36
|
|
|
46
|
-
|
|
47
|
-
首次运行 `ccli` 会弹出引导菜单帮你完成配置,也可手动设置:
|
|
37
|
+
密钥来源优先级:**环境变量 > 项目 `.env` > 全局 `~/.ccli/config.json`**。
|
|
48
38
|
|
|
49
39
|
**Anthropic Claude**
|
|
50
40
|
|
|
@@ -58,47 +48,18 @@ export ANTHROPIC_API_KEY=sk-ant-...
|
|
|
58
48
|
export QWEN_API_KEY=sk-...
|
|
59
49
|
export QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
|
60
50
|
export QWEN_MODEL=qwen-plus
|
|
61
|
-
# 或通用:OPENAI_API_KEY / OPENAI_BASE_URL /
|
|
51
|
+
# 或通用:OPENAI_API_KEY / OPENAI_BASE_URL / OPENAI_MODEL
|
|
62
52
|
```
|
|
63
53
|
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
ccli [目标] 进入交互式会话(可附带初始目标)
|
|
68
|
-
ccli -p, --print <文本> 一次性模式,输出后退出
|
|
69
|
-
ccli -m, --model <id> 指定模型,如 -m qwen-max
|
|
70
|
-
ccli -c, --continue 恢复本目录最近一次会话
|
|
71
|
-
ccli -r, --resume [id] 列出 / 恢复历史会话
|
|
72
|
-
ccli -y, --yes 自动批准所有工具(慎用)
|
|
73
|
-
ccli config 配置密钥
|
|
74
|
-
ccli -h, --help 查看帮助
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## 交互
|
|
78
|
-
|
|
79
|
-
进入会话后,输入框支持:
|
|
80
|
-
|
|
81
|
-
| 输入 | 作用 |
|
|
82
|
-
| --- | --- |
|
|
83
|
-
| 直接输入 | 与 AI 对话,触发代理循环 |
|
|
84
|
-
| `@<路径>` | 将文件 / 目录内容并入消息 |
|
|
85
|
-
| `!<命令>` | 直接执行 shell 命令 |
|
|
86
|
-
| `#<文字>` | 将一条规则写入 `CCLI.md`(长期记忆) |
|
|
87
|
-
|
|
88
|
-
常用斜杠命令:`/help` `/model` `/cost` `/init` `/commit` `/resume` `/compact` `/clear` `/auto` `/exit`。
|
|
89
|
-
在 `.ccli/commands/<名>.md` 放置提示词模板即可定义自定义命令 `/<名>`。
|
|
90
|
-
|
|
91
|
-
## 工具
|
|
54
|
+
## 实现进度
|
|
92
55
|
|
|
93
|
-
|
|
|
56
|
+
| 步骤 | 内容 | 文档 |
|
|
94
57
|
| --- | --- | --- |
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
| `todo_write` | 协调 | 维护多步任务清单并实时显示进度 |
|
|
101
|
-
| `task` | 协调 | 派生只读子代理执行聚焦调研 |
|
|
58
|
+
| 01 | 最小可执行入口 | [docs/steps/01-入口.md](docs/steps/01-入口.md) |
|
|
59
|
+
| 02 | 命令行参数解析(`--version` / `--help`) | [docs/steps/02-参数解析.md](docs/steps/02-参数解析.md) |
|
|
60
|
+
| 03 | 交互式会话循环(REPL) | [docs/steps/03-交互循环.md](docs/steps/03-交互循环.md) |
|
|
61
|
+
| 04 | 配置与密钥读取 | [docs/steps/04-配置读取.md](docs/steps/04-配置读取.md) |
|
|
62
|
+
| … | 接入 AI、工具调用、代理循环… | 进行中 |
|
|
102
63
|
|
|
103
64
|
## 本地开发
|
|
104
65
|
|
|
@@ -107,7 +68,7 @@ git clone https://github.com/GridGit/ai-cli.git
|
|
|
107
68
|
cd ai-cli
|
|
108
69
|
npm install
|
|
109
70
|
cp .env.example .env # 填入密钥
|
|
110
|
-
npm run dev
|
|
71
|
+
npm run dev # 用 tsx 直接运行源码(免编译)
|
|
111
72
|
npm run build # 编译到 dist/
|
|
112
73
|
```
|
|
113
74
|
|