# Maki > Maki is a terminal coding agent written in Rust. Point it at a codebase, pick an LLM provider, and it reads, edits, searches, and runs code for you while keeping token usage low. Full documentation in one file: https://maki.sh/llms-full.txt ## Docs - [Maki Docs](https://maki.sh/docs/index.md): overview and map of the documentation - [Quick Start](https://maki.sh/docs/quick-start/index.md): Install Maki, connect a provider, and run your first session. Takes a few minutes. - [Configuration](https://maki.sh/docs/configuration/index.md): Settings go in `init.lua`, a Lua script that calls `maki.setup()`. Same language as plugins. - [Commands](https://maki.sh/docs/commands/index.md): Type `/` in the input box to open the command palette. - [Keybindings](https://maki.sh/docs/keybindings/index.md): On macOS, some bindings use Option or Fn keys instead (run `/help` for exact keybindings). - [Tools](https://maki.sh/docs/tools/index.md): Maki ships with 20 built-in tools in this reference (18 on by default, 2 opt-in via plugin options). Tools marked **opt-in** are off until you enable them under `plugins` in [Configuration](/docs/configuration/). - [Providers](https://maki.sh/docs/providers/index.md): Maki talks to LLM providers over their HTTP APIs. Models are split into three tiers: **weak** (cheap and fast), **medium** (balanced), and **strong** (highest capability, highest cost). There is also a **compaction** tier for choosing a dedicated model to summarize context when the conversation grows long. - [Permissions](https://maki.sh/docs/permissions/index.md): Maki uses a permission system to decide what each tool is allowed to do and when to ask you first. - [Skills](https://maki.sh/docs/skills/index.md): A skill is a short Markdown how-to that the agent loads only when it needs it. The `skill` tool shows the agent what is available, and when it picks one, the file drops into the conversation and the agent follows it. - [MCP](https://maki.sh/docs/mcp/index.md): Maki connects to external tool servers over MCP. Both **stdio** and **HTTP** transports are supported. - [Lua API](https://maki.sh/docs/lua-api/index.md): Maki plugins are plain Lua files. Everything a plugin can touch lives under one global table: `maki`. This reference documents every module, function, and method. It is generated straight from the source code by `maki-docgen`. - [CLI](https://maki.sh/docs/cli/index.md): `maki` without a subcommand starts the TUI. Subcommands cover auth, models, MCP OAuth, updates, and a few debug helpers. Many flags only apply to one of three run paths: **TUI**, one-shot **`--print`**, or **SDK** (`--print --input-format stream-json`). - [Headless Mode](https://maki.sh/docs/headless/index.md): Run Maki non-interactively with `--print` / `-p`. Useful for scripts, CI, and automation. - [ACP](https://maki.sh/docs/acp/index.md): Run Maki inside your editor. `maki acp` starts an [ACP](https://agentclientprotocol.com/) server over stdio, so any ACP-capable editor (like [Zed](https://zed.dev/)) can drive Maki as its coding agent.