Tools

Maki ships with 18 built-in tools. This is the full reference.

File Operations

bash

Execute a bash command. Commands run in by default.

ParameterTypeRequiredDefaultDescription
commandstringyesThe bash command to execute
descriptionstringnoShort description (3-5 words) of what the command does
timeoutintegerno120Timeout in seconds
workdirstringnocwdWorking directory

read

Read a file or directory. Returns contents with line numbers (1-indexed).

ParameterTypeRequiredDescription
limitintegernoMax number of lines to read
offsetintegernoLine number to start from (1-indexed)
pathstringyesAbsolute path to the file or directory

write

Write content to a file, replacing existing content.

ParameterTypeRequiredDescription
contentstringyesThe complete file content to write
pathstringyesAbsolute path to the file

edit

Replace an exact string match in a file.

ParameterTypeRequiredDefaultDescription
new_stringstringyesReplacement string
old_stringstringyesExact string to find (must match uniquely unless replace_all is true)
pathstringyesAbsolute path to the file
replace_allbooleannofalseReplace all occurrences

multiedit

Make multiple find-and-replace edits to a single file atomically. Prefer this over edit when making multiple changes to the same file.

ParameterTypeRequiredDescription
editsarrayyesArray of edit operations to apply sequentially
pathstringyesAbsolute path to the file

glob

Find files by glob pattern.

ParameterTypeRequiredDefaultDescription
pathstringnocwdDirectory to search in
patternstringyesGlob pattern (e.g. /*.rs, src//*.ts)

grep

Search file contents using regex.

ParameterTypeRequiredDefaultDescription
context_afterintegernoContext lines after match
context_beforeintegernoContext lines before match
includestringnoFile glob filter (e.g. *.c)
limitintegernoMax match groups to return
pathstringnocwdDirectory to search in
patternstringyesRegex pattern

index

Return a compact overview of a source file: imports, type definitions, function signatures, and structure with their line numbers surrounded by []. ~70-90% more efficient than reading the full file.

ParameterTypeRequiredDescription
pathstringyesAbsolute path to the file

find_symbol

Find all references to a symbol across a project. Scope-aware: locals search enclosing function, private items search the file.

Experimental. Opt in with experimental_find_symbol = true in your config.

ParameterTypeRequiredDefaultDescription
filestringyesAbsolute path to file containing the symbol
lineintegeryesLine number (1-indexed)
max_resultsintegerno50Max results
occurrenceintegerno1Nth occurrence on line
symbolstringyesSymbol name

Execution & Control

batch

Executes multiple independent tool calls concurrently to reduce round-trips.

ParameterTypeRequiredDescription
tool_callsarrayyesArray of tool calls to execute in parallel

code_execution

Execute Python code in a sandboxed interpreter. Tools are available as callable functions.

ParameterTypeRequiredDefaultDescription
codestringyesPython code to execute. Tools are async functions that return strings (not objects). You MUST await every call: result = await read(path='/file'). Use await asyncio.gather(...) for concurrency.
timeoutintegerno30, max 300Timeout in seconds

question

Use this tool when you need to ask the user questions during execution. This allows you to:

  • Gather user preferences or requirements
  • Clarify ambiguous instructions
  • Get decisions on implementation choices as you work
  • Offer choices to the user about what direction to take
ParameterTypeRequiredDescription
questionsarrayyesList of questions to ask the user

External

webfetch

Fetch a URL and return its contents.

ParameterTypeRequiredDefaultDescription
formatstringnoOutput format: markdown (default), text, or html
timeoutintegerno30, max 120Timeout in seconds
urlstringyesURL to fetch (http:// or https://)

websearch

Search the web for real-time information using Exa AI.

ParameterTypeRequiredDefaultDescription
num_resultsintegerno8Number of results to return
querystringyesSearch query

Agent & Knowledge

task

Launch an autonomous subagent to perform tasks independently. Best combined with batch.

ParameterTypeRequiredDescription
descriptionstringyesShort (3-5 words) description of the task
model_tierstringnoModel tier (optional, omit to use current model, capped at current tier):
- "strong" (e.g. Opus): Deep reasoning, complex architecture, subtle bugs, most critical sections. ~5x cost of medium.
- "medium" (e.g. Sonnet): Balanced. Refactors, features, multi-file changes.
- "weak" (e.g. Haiku): Fast/cheap. Search, summarize, boilerplate, simple edits.
promptstringyesDetailed task prompt for the agent
subagent_typestringnoSubagent type: "research" (read-only, default) or "general" (can modify files)

todo_write

Create or update a structured todo list to track tasks.

ParameterTypeRequiredDescription
todosarrayyesThe updated todo list

memory

Persistent, project-scoped scratchpad for learnings, patterns, decisions, and gotchas across sessions.

ParameterTypeRequiredDescription
commandstringyesCommand: view, write, delete
contentstringnoFile content for 'write'
pathstringnoRelative path (e.g. 'architecture.md'). Omit to list all.

skill

Load a skill that provides instructions and workflows for specific tasks.

ParameterTypeRequiredDescription
namestringyesName of the skill to load