@milisp/keke 0.1.41 → 0.1.43
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 +35 -16
- package/README.zh-CN.md +21 -12
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -2,24 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
[中文文档](README.zh-CN.md) | [Architecture](docs/architecture.md) | [Config](docs/config.md) | [Roadmap](docs/ROADMAP.md)
|
|
4
4
|
|
|
5
|
-
**keke** is a local
|
|
6
|
-
|
|
5
|
+
**keke** is a local coding agent in a ~7 MB native binary — no Node or Python
|
|
6
|
+
runtime. Sign in with the ChatGPT or Grok subscription you already pay for, or
|
|
7
|
+
bring any API key, all from one tool. The TUI, `keke exec`, and desktop apps
|
|
8
|
+
(over ACP) drive the same session.
|
|
9
|
+
|
|
10
|
+
Subagents, MCP, skills, Claude-compatible plugins, hooks, plan mode,
|
|
11
|
+
per-turn checkpoints, and OS sandboxing are built in. Memory and repository
|
|
12
|
+
plugins stay off until you turn them on.
|
|
7
13
|
|
|
8
14
|
[](https://asciinema.org/a/1266474)
|
|
9
15
|
|
|
10
16
|
## Why keke?
|
|
11
17
|
|
|
12
|
-
- **
|
|
13
|
-
|
|
18
|
+
- **One session, every surface.** Interactive TUI and `keke exec` for scripts
|
|
19
|
+
and CI, both on one session protocol. Concurrent subagents (bounded, and a
|
|
20
|
+
child cannot spawn another), background shell tasks, and `/loop` for a prompt
|
|
21
|
+
that comes back later. Plan mode can research and write a plan, not the repo.
|
|
14
22
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
23
|
+
- **Use what you already pay for.** Sign in with ChatGPT (Codex) or Grok, or
|
|
24
|
+
any API key. Codex, Grok, Claude, OpenAI-compatible endpoints, Ollama, and
|
|
25
|
+
vLLM — Chat Completions, Responses, or Anthropic Messages. Several accounts
|
|
26
|
+
for one provider, picked by the directory you are in. A compatible endpoint
|
|
27
|
+
is a few lines of `config.toml`; it does not require a new build. The engine
|
|
28
|
+
crates cannot depend on any vendor plugin — CI fails the build if they do
|
|
29
|
+
([`scripts/check-layering.py`](scripts/check-layering.py)).
|
|
17
30
|
|
|
18
|
-
- **
|
|
19
|
-
|
|
31
|
+
- **Off by default.** Skills can be disabled. Persistent memory
|
|
32
|
+
is off until you set a directory. Hooks and MCP servers that ship with a
|
|
33
|
+
repository don't run on `git clone` (see [Safety](#safety)).
|
|
20
34
|
|
|
21
|
-
- **
|
|
22
|
-
|
|
35
|
+
- **Checkpoints outside your repo.** Each turn snapshots the working
|
|
36
|
+
tree in a store outside your repository, so reverting the agent's edits is
|
|
37
|
+
not a stash and not a commit.
|
|
23
38
|
|
|
24
39
|
## Install
|
|
25
40
|
|
|
@@ -67,15 +82,19 @@ all other settings are documented in [`docs/config.md`](docs/config.md).
|
|
|
67
82
|
|
|
68
83
|
- **Sandboxing & approvals** — shell commands run under an OS sandbox
|
|
69
84
|
(Seatbelt on macOS, Landlock + seccomp on Linux): by default they may write
|
|
70
|
-
only inside the workspace
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
only inside the workspace and have no direct network access; on macOS, and
|
|
86
|
+
on Linux with the opt-in bubblewrap backend, domains and ports can be
|
|
87
|
+
approved per command. Git hooks and config are read-only
|
|
88
|
+
(enforced on macOS). Stepping outside is reviewed each time — by the guardian
|
|
89
|
+
in Auto mode, otherwise by you; `approval_policy = "never"` skips that
|
|
90
|
+
review. On Windows, which has no sandbox, every command asks you instead. A
|
|
91
|
+
repository's own config can tighten that but never loosen it. CI fails
|
|
92
|
+
rather than skips if the runner cannot enforce the sandbox. See
|
|
75
93
|
[`docs/config.md`](docs/config.md#sandbox).
|
|
76
94
|
- **Plugin trust** — repository-provided plugins (hooks, MCP servers) never
|
|
77
95
|
execute on `git clone` alone; a person must approve them, keyed to their
|
|
78
|
-
exact contents, not their path
|
|
96
|
+
exact contents, not their path, and nothing they add can undo a denial.
|
|
97
|
+
There's no flag to turn that gate off.
|
|
79
98
|
|
|
80
99
|
## License
|
|
81
100
|
|
package/README.zh-CN.md
CHANGED
|
@@ -2,24 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | [架构设计](docs/architecture.md) | [配置文档](docs/config.md) | [路线图](docs/ROADMAP.md)
|
|
4
4
|
|
|
5
|
-
**keke**
|
|
6
|
-
|
|
5
|
+
**keke** 是本地编码 agent:约 7 MB 的原生二进制,不需要 Node 或 Python
|
|
6
|
+
运行时。用你已经在付费的 ChatGPT 或 Grok 订阅登录,或任意 API Key,都在同一个工具里完成。
|
|
7
|
+
TUI、`keke exec` 和桌面应用(通过 ACP)共用同一个会话。
|
|
8
|
+
|
|
9
|
+
子 agent、MCP、skills、兼容 Claude 目录结构的插件、hooks、规划模式、
|
|
10
|
+
按轮次的检查点和操作系统级沙箱都已内置。
|
|
11
|
+
记忆和仓库自带的插件默认关闭,直到你打开它们。
|
|
7
12
|
|
|
8
13
|
[](https://asciinema.org/a/1266474)
|
|
9
14
|
|
|
10
15
|
## 为什么选择 keke?
|
|
11
16
|
|
|
12
|
-
-
|
|
13
|
-
|
|
17
|
+
- **一个会话,所有入口。** 交互式 TUI 与面向脚本和 CI 的 `keke exec`
|
|
18
|
+
共用一套会话协议。并发子 agent(有上限,子 agent 不能再派生子 agent)、后台
|
|
19
|
+
shell 任务,以及 `/loop`:一条稍后会再送回来的提示。规划模式可以调研并写下计划,但不能改仓库。
|
|
14
20
|
|
|
15
|
-
-
|
|
16
|
-
|
|
21
|
+
- **用你已经在付的账。** 用 ChatGPT(Codex)或 Grok 订阅登录,或任意 API Key。
|
|
22
|
+
Codex、Grok、Claude、OpenAI 兼容端点、Ollama、vLLM —— Chat Completions、
|
|
23
|
+
Responses 或 Anthropic Messages。同一供应商可登录多个账户,按所在目录选用。
|
|
24
|
+
兼容端点在 `config.toml` 里写几行即可,不必重新编译。引擎 crate 不能依赖任何厂商插件,
|
|
25
|
+
违反时 CI 会直接失败([`scripts/check-layering.py`](scripts/check-layering.py))。
|
|
17
26
|
|
|
18
|
-
-
|
|
19
|
-
|
|
27
|
+
- **默认关闭。** Skills 可以禁用。持久记忆在设定目录之前是关闭的。
|
|
28
|
+
随仓库提供的 hooks 和 MCP 服务器不会因为 `git clone` 就执行(见[安全](#安全))。
|
|
20
29
|
|
|
21
|
-
-
|
|
22
|
-
|
|
30
|
+
- **检查点在仓库之外。** 每一轮都把工作区快照存到仓库之外的存储里,
|
|
31
|
+
回退 agent 的修改既不是 stash,也不是一次提交。
|
|
23
32
|
|
|
24
33
|
## 安装
|
|
25
34
|
|
|
@@ -64,8 +73,8 @@ Provider 路由、API Key、本地模型、网关、按目录账户及其他设
|
|
|
64
73
|
|
|
65
74
|
## 安全
|
|
66
75
|
|
|
67
|
-
- **沙箱与审批** — shell 命令运行在操作系统级沙箱中(macOS 用 Seatbelt,Linux 用 Landlock + seccomp
|
|
68
|
-
- **插件信任** — 仓库自带的插件(hooks、MCP servers)不会仅因 `git clone`
|
|
76
|
+
- **沙箱与审批** — shell 命令运行在操作系统级沙箱中(macOS 用 Seatbelt,Linux 用 Landlock + seccomp):默认只能写入工作区、没有直接联网能力;macOS 上,以及 Linux 启用可选的 bubblewrap 后端时,域名和端口可按命令逐次审批;Git 的 hooks 和 config 只读(macOS 上强制)。越过沙箱时每次都会审查:Auto 模式由 guardian 审查,其他模式由你确认;`approval_policy = "never"` 会跳过审查。Windows 没有沙箱,每条命令都会先询问你。仓库自带的配置只能收紧、不能放宽沙箱。运行环境无法强制执行沙箱时,CI 会失败而不是跳过。详见 [`docs/config.md`](docs/config.md#sandbox)。
|
|
77
|
+
- **插件信任** — 仓库自带的插件(hooks、MCP servers)不会仅因 `git clone` 就执行;必须由人按**内容**(而非路径)批准,且它们不能把已有的拒绝改回允许。没有关闭该门禁的开关。
|
|
69
78
|
|
|
70
79
|
## 许可证
|
|
71
80
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milisp/keke",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.43",
|
|
4
4
|
"description": "keke is a multi-vendor terminal coding agent.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"win32"
|
|
19
19
|
],
|
|
20
20
|
"optionalDependencies": {
|
|
21
|
-
"@milisp/keke-darwin-x64": "0.1.
|
|
22
|
-
"@milisp/keke-darwin-arm64": "0.1.
|
|
23
|
-
"@milisp/keke-linux-x64": "0.1.
|
|
24
|
-
"@milisp/keke-linux-arm64": "0.1.
|
|
25
|
-
"@milisp/keke-win32-x64": "0.1.
|
|
26
|
-
"@milisp/keke-win32-arm64": "0.1.
|
|
21
|
+
"@milisp/keke-darwin-x64": "0.1.43",
|
|
22
|
+
"@milisp/keke-darwin-arm64": "0.1.43",
|
|
23
|
+
"@milisp/keke-linux-x64": "0.1.43",
|
|
24
|
+
"@milisp/keke-linux-arm64": "0.1.43",
|
|
25
|
+
"@milisp/keke-win32-x64": "0.1.43",
|
|
26
|
+
"@milisp/keke-win32-arm64": "0.1.43"
|
|
27
27
|
},
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|