maki README

The project's README from github.com/tontinton/maki. As one markdown file: README.md.

An AI coding agent optimized for minimal use of context tokens, while providing a great user experience.

Benchmarks

Maki 0.5.5 at 80% pass rate and $1.75 per pass, against the FrontierHarness Eval baselines

FrontierHarness Eval benchmark result, click here to download report.zip

Features

Context efficiency

User experience

Supported providers

Dynamic providers - drop an executable script into ~/.config/maki/providers/ to add custom providers or proxies. See docs for details.

Providers as Lua plugins WIP!

Installation

Linux / macOS

# Download and read the script first (don't blindly trust shell scripts).
curl -fsSL https://maki.sh/install.sh -o install.sh
cat install.sh

# Then run.
chmod +x install.sh && sh install.sh

One-liner:

curl -fsSL https://maki.sh/install.sh | sh

Installs to ~/.local/bin. Override with MAKI_INSTALL_DIR.

Windows (PowerShell)

# Download and read the script first (don't blindly trust remote scripts).
irm https://maki.sh/install.ps1 -OutFile install.ps1
Get-Content install.ps1

# Then run.
.\install.ps1

One-liner:

irm https://maki.sh/install.ps1 | iex

Windows (Git Bash)

curl -fsSL https://maki.sh/install.sh | sh

Both install to %LOCALAPPDATA%\maki and add it to your user PATH. Override with MAKI_INSTALL_DIR / $env:MAKI_INSTALL_DIR.

Living on the edge (main branch)

cargo install --locked --git https://github.com/tontinton/maki.git maki

With Nix

nix run github:tontinton/maki

Or download a pre-built binary from GitHub Releases.

ACP

Run maki acp or configure your ACP supporting editor to use maki, e.g. in Zed's settings.json:

"agent_servers": {
  "Maki": {
    "default_config_options": {
      "model": "deepseek/deepseek-flash"
    },
    "type": "custom",
    "command": "maki",
    "args": ["acp"],
    "env": {}
  }
}

Documentation

More info at the official docs.

Community

Discord

Example config

tontinton/makiconf - includes a semble tool (Lua code) for semantic code search, and an ast-grep MCP server for AST-based search and replace.

DISCLAIMER: >90% of code in maki was written by maki, guided by humans. Some parts of the code are not as good as what I would've made in the artisanal hand-made style. But it's also not slop / vibe coded, and can easily be refactored if needed nowadays.

maki (tontinton/maki)

Searching Database…

1.2K ·GitHub
这是什么?Maki 是一个用 Rust 编写的终端 AI 编程助手,设计目标是尽量少消耗上下文 token,并支持用类似 neovim 的 Lua 插件来扩展功能。
它是终端应用、代码库,还是 IDE 插件?它是一个用 Rust 和 ratatui 写的完整交互式终端界面——不用 JavaScript,60 帧刷新,启动快、内存占用低。它也可以通过 --print --output-format stream-json 在无界面的模式下运行。
我要自己准备 API 密钥吗?支持哪些服务商?是的,需要自带密钥:支持约 20 家服务商,包括 Anthropic、OpenAI、xAI、Google、GitHub Copilot、Mistral、DeepSeek、OpenRouter,还有本地的 Ollama 和 llama.cpp。把一个脚本放进 ~/.config/maki/providers/ 就能添加自定义服务商或代理。
有什么目前做不到的地方需要提前知道?有几点:Anthropic 只能用 API 密钥,因为 OAuth 违反了它的服务条款;Escape-Escape 可以回退聊天记录,但还不能回退代码;以 Lua 插件形式提供的服务商支持也仍在开发中。
它在 Windows 上也能运行吗,还是只有 macOS 和 Linux?Windows 有 PowerShell 和 Git Bash 安装器,Linux 和 macOS 各有一行式安装脚本。此外还支持 Nix,GitHub Releases 上也有预编译的二进制文件。
它是怎么省下这么多上下文 token 的?索引工具用 tree-sitter 解析代码,生成带精确行号范围的文件骨架(比如某个函数在第 150-165 行),这样读取的内容就很精简;一个沙箱化的代码执行工具会在工具之间对数据做过滤或摘要,数据根本不会进入上下文窗口;任务委派还可以用更弱的模型档位。作者实测仅索引工具每轮就能省下 165 个 token。
我能像 neovim 那样用插件扩展它吗?可以——扩展方式是 Lua 插件,体验类似 neovim,配有 Lua API 文档、内置插件和用户作品展示。示例配置仓库 tontinton/makiconf 提供了语义代码搜索,以及一个基于 AST 做搜索替换的 ast-grep MCP 服务器。
权限系统是怎么处理危险命令的?Maki 在询问之前会用 tree-sitter 解析 bash 命令,所以 git diff && rm -rf / 会被理解为两个独立的权限请求——git 和 rm——而不是一整行看不懂的东西。加 --yolo 参数可以完全关闭这些询问。
我可以不用 TUI,把它接到我的编辑器里吗?可以。maki acp 通过 Agent Client Protocol 把它暴露给 Zed 这类编辑器;要自动化的话,可以用 --print --output-format stream-json 以无界面模式运行,输出与 Claude Code 兼容,所以现有配置照常能用。
子代理实际上是怎么用的?task 工具会把工作委派给子代理,并让模型从你所用服务商的模型里选弱、中、强三档——就好比 haiku、sonnet、opus 的区别。每个子代理有自己的聊天窗口,可以用 /tasks(Ctrl-X)在它们之间切换。
作者为什么要做这个?是因为对现有代理的两个不满:上下文臃肿和内部机制不透明。Maki 秉持不隐藏任何东西的理念——连读取了多少行这样的细节都会显示出来——同时兼顾 token 效率。值得一提的是,maki 自己超过 90% 的代码是在人类指导下由 maki 写的。
What are similar projects?aichat, claurst, oh-my-pi, magpie, Raven, jcode, trae-agent, opensquilla
Creator
tontinton
Size
22.3 MB
Stars
1.2K
Age
8mo
Commits · 90 Days