tontinton/maki
GitHub: tontinton/maki
一个以上下文效率为核心、兼顾安全与体验的 AI 编码代理,帮助开发者在终端高效且透明地完成编码任务。
Stars: 215 | Forks: 24
一款针对最小化上下文令牌使用进行优化的 AI 编码代理,同时提供出色的用户体验。
上下文效率:
* `index` 工具 - 使用 [tree-sitter](https://tree-sitter.github.io/tree-sitter) 解析受支持编程语言,生成文件的高级骨架结构,并精确标注每个项目的起始-结束行(例如函数的实现在第 150-165 行)。建议在读取前使用。读取调用可节省 224 令牌/次,使用 `index` 可节省 165 令牌/次。
* `code_execution` 工具 - 使用 [monty](https://github.com/pydantic/monty) 运行解释器,该解释器拥有其他所有工具作为异步函数。Maki 使用它来过滤/汇总/转换/传递数据给其他工具作为输入,而不会污染上下文窗口。沙箱受时间和内存限制。
* `task` 工具 - 在委派工作给子代理时,AI 可选择弱/中/强模型。使用思考(haiku / sonnet / opus)。
* 系统提示、工具描述和工具示例均保持简洁,避免内容膨胀。
* 使用 [rtk](https://github.com/rtk-ai/rtk),如果已安装可节省约 50% 的 Bash 输出令牌。记住 Bash 仅占总令牌的 12%,因此节省 6% 是可观的,而通过 `index` 节省读取(占总量的 65%)带来的收益更大。我认为我会像下面这样自行实现 Bash 输出过滤。
用户体验:
* 启动速度超级快,60 FPS,内存占用轻量。不运行任何 JavaScript,使用 [ratatui](https://ratatui.rs) 构建 TUI。即使启动动画也使用 SIMD 加速。
* 哲学是“不隐藏任何信息”——当其他编码代理随着模型进步而隐藏信息(例如不显示读取行数)时,Maki 让你保持掌控。
* 用户界面在小屏幕笔记本上也能良好适配。
* 子代理完全可见,每个子代理拥有独立的“聊天窗口”,可使用 `/tasks`(Ctrl-X)或 Ctrl-N/P 在窗口间切换。
* 合理的权限系统——当代理执行 `git diff && rm -rf /` 时,你认为会发生什么?在当前会话中会被视为 `git *`。Maki 使用 tree-sitter 解析 Bash 命令并识别请求的权限为 `git *` 和 `rm *`。可使用 `--yolo` 禁用。
* 对 `webfetch` 调用启用 SSRF 保护。
* 提供 `memory` 工具,可保存长期上下文。只需告诉 Maki 记住某些内容(有时会自动使用)。可通过 `/memory`(查看/编辑/删除)管理。
* 支持使用 Ctrl-F 进行模糊搜索。
* 使用 `/btw` 可在聊天历史中运行命令而不干扰当前会话。
* 支持在退出时回退(仅聊天历史,未实现代码回退)。
* 支持在提示中附加图片。
* 提供 26 个主题。
* 支持恢复会话。
* 支持技能与 MCP。
* 支持计划模式。
* 可使用 `!` 执行 Bash 命令,或使用 `!!` 隐藏命令不被 Maki 知晓。
* 使用 `/cd` 更改目录。
* 使用 `--print --output-format stream-json` 可在无界面模式下运行。输出兼容 Claude Code,因此你可以轻松替换现有解决方案(尽管不推荐,Maki 仍较新)。
支持的提供者:
* Anthropic - 仅需 `ANTHROPIC_API_KEY`(使用 OAuth 违反服务条款)。
* OpenAI - 需要 `OPENAI_API_KEY` 并通过 `maki auth login openai` 使用 OAuth。
* Ollama - 本地使用时设置 `OLLAMA_HOST`(如 `http://localhost:11434`),或使用 `OLLAMA_API_KEY`。
* Mistral - 需要 `MISTRAL_API_KEY`。
* Z.AI - 需要 `ZHIPU_API_KEY`。
* Synthetic - 需要 `SYNTHETIC_API_KEY`。
**动态提供者** - 将可执行脚本放入 `~/.maki/providers/` 可添加自定义提供者或代理。详见 [文档](https://maki.sh/docs/providers/#dynamic-providers)。
推荐安装方式:
```
# 先下载并阅读脚本(不要盲目信任 shell 脚本)。
curl -fsSL https://maki.sh/install.sh -o install.sh
cat install.sh
# 然后运行。
chmod +x install.sh && sh install.sh
```
单行命令:
```
curl -fsSL https://maki.sh/install.sh | sh
```
使用开发主分支:
```
cargo install --locked --git https://github.com/tontinton/maki.git maki
```
使用 Nix:
```
nix run github:tontinton/maki
```
或从 [GitHub Releases](https://github.com/tontinton/maki/releases/latest) 下载预编译二进制文件。
更多文档请参考 [官方文档](http://maki.sh/docs)。标签:AI编码代理, AI编程工具, Monty, Ratatui, RTK, SEO, SIMD, Token优化, Tree-sitter, TUI, 上下文效率, 代码代理, 代码执行, 代码智能助手, 代码辅助, 任务委托, 信息透明, 内存优化, 内存限制, 可见性控制, 可视化界面, 命令行界面, 威胁情报, 子代理, 开发者工具, 快速启动, 无JavaScript, 时间限制, 树形解析, 模型选择, 编程效率, 轻量级UI, 逆向工具, 通知系统, 高效AI