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
What is this?Maki is a terminal AI coding agent written in Rust, built to spend as few context tokens as possible, and extendable with neovim-style Lua plugins.
Is it a terminal app, a library, or an IDE plugin?It's a full interactive terminal UI written in Rust with ratatui - no JavaScript, 60 FPS, fast startup and light on memory. It can also run UI-less with --print --output-format stream-json.
Do I bring my own API key, and which providers are supported?Yes, bring your own key: around 20 providers are supported, including Anthropic, OpenAI, xAI, Google, GitHub Copilot, Mistral, DeepSeek, OpenRouter, plus local Ollama and llama.cpp. Custom providers or proxies can be added by dropping a script into ~/.config/maki/providers/.
Anything it can't do yet that I should know about?A few things: Anthropic works with an API key only since OAuth is against their TOS, Escape-Escape rewinds chat history but not code yet, and provider support as Lua plugins is still work in progress.
Does it run on Windows too, or is it macOS and Linux only?Windows is covered with PowerShell and Git Bash installers, and Linux and macOS get their own one-liner. Nix support and pre-built binaries on GitHub Releases are also available.
How does it save so many context tokens?The index tool parses code with tree-sitter into a file skeleton with exact line ranges (e.g. a function at lines 150-165) so reads stay small; a sandboxed codeexecution tool filters or summarizes data between tools without it ever entering the context window; delegation can use a weaker model tier. The author measured the index tool alone saving 165 tokens per turn.
Can I extend it with plugins like in neovim?Yes - extension is via Lua plugins with a neovim-like feel, backed by a Lua API reference, builtin plugins and a user-made showcase. The example config repo tontinton/makiconf adds semantic code search and an ast-grep MCP server for AST-based search and replace.
How does the permission system handle risky commands?Maki parses the bash command with tree-sitter before asking, so git diff && rm -rf / is understood as requesting two separate permissions - git and rm - instead of one opaque line. A --yolo flag disables the prompts entirely.
Can I plug it into my editor instead of using the TUI?Yes. maki acp exposes it over the Agent Client Protocol for editors like Zed, and for automation you can run it UI-less with --print --output-format stream-json, which is output-compatible with Claude Code so existing setups keep working.
What do subagents look like in practice?The task tool delegates work to subagents and lets the model pick a weak, medium or strong tier of your provider's models - think haiku vs sonnet vs opus. Each subagent gets its own chat window, and you can jump between them with /tasks (Ctrl-X).
Why did the author build it?Two frustrations with existing agents: bloated context and hidden internals. Maki follows a philosophy of not hiding anything - it still shows details like how many lines were read - and pairs that with token efficiency. Notably, over 90% of maki's own code was written by maki under human guidance.
What are similar projects?aichat, claurst, oh-my-pi, magpie, Raven, jcode, trae-agent, opensquilla
Creator
tontinton
Size
22.2 MB
Stars
1.2K
Age
8mo
Commits · 90 Days