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