Reference
~3.1k tokens

Tools

Makima ships with 26 built-in tools in this reference (24 on by default, 2 opt-in via plugin options). Tools marked opt-in are off until you enable them under plugins in Configuration.

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

list

List directory contents. Returns entry names sorted alphabetically, directories first with a trailing /.

ParameterTypeRequiredDescription
pathstringyesAbsolute path to the directory

read

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

ParameterTypeRequiredDescription
limitintegeryesMax number of lines to read. Use 0 to read until end of file (capped at 2000 lines).
offsetintegeryesLine number to start from (1-indexed). Use 1 for the first line.
pathstringyesAbsolute path to the file

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

edit_lines opt-in

Edit lines by number. Replaces lines from start to end (inclusive) with new_string. Use empty new_string to delete a range. Do not use with the batch tool.

ParameterTypeRequiredDescription
endintegeryesLast line, inclusive
new_stringstringyesReplacement text
pathstringyesAbsolute path to the file
startintegeryesFirst line (1-indexed)

insert_lines opt-in

Insert new_string after line line, or at the top with 0. Only include new lines, never lines already in the file. Do not use with the batch tool.

ParameterTypeRequiredDescription
lineintegeryesLine number to insert after (1-indexed). Use 0 to insert at the top.
new_stringstringyesText to insert
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

view_image

View an image file (png, jpeg, gif, webp) so you can actually see it; it is returned as vision input alongside the tool result. Use instead of read for images.

ParameterTypeRequiredDescription
pathstringyesPath to the image file

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 with tools 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', offset=1, limit=0). Use await gather(...) for concurrency.
timeoutintegerno30Script execution timeout in seconds

plan_submit

Submit the finished plan for user review in the interactive UI.

ParameterTypeRequiredDescription

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

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.
output_schemastringnoJSON Schema (object) the subagent's final result must match. When set, the result is returned as a validated JSON string.
promptstringyesDetailed task prompt for the agent
subagent_typestringnoSubagent type: "research" (read-only, default), "general" (can modify files), or "plan_reviewer" (read-only plan audit, plan mode only)

task_spawn

Start a background subagent and return its task_id immediately. Each task's messages run FIFO, acquiring concurrency capacity only when each turn starts. The result is returned automatically when the subagent finishes, so wait for the reply instead of polling task_get. Queue messages with task_send and finish with task_despawn. Also callable from a code_execution script as a Python async function.

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.
output_schemastringnoJSON Schema (object) the subagent's final result must match. When set, the result is returned as a validated JSON string.
promptstringyesDetailed task prompt for the agent
subagent_typestringnoSubagent type: "research" (read-only, default), "general" (can modify files), or "plan_reviewer" (read-only plan audit, plan mode only)

task_get

Poll a background subagent. Returns { status = "running" | "done" | "closed", result?, error? }. Normally unnecessary: a spawned subagent's result arrives automatically, so wait for that reply instead of polling task_get. Does not block the main agent. Also callable from a code_execution script as a Python async function.

ParameterTypeRequiredDescription
task_idstringyesTask id returned by task_spawn.

task_send

Queue a message to a background subagent in per-task FIFO order and return immediately. A done subagent processes it as a new turn, acquiring concurrency capacity when the turn starts. Returns { queued = true }, or a session error if queueing fails. Also callable from a code_execution script as a Python async function.

ParameterTypeRequiredDescription
messagestringyesMessage to queue to the subagent. A done subagent restarts on the next turn.
task_idstringyesTask id returned by task_spawn.

task_despawn

Cancel a background subagent, discard messages not yet admitted, flush its chat transcript, and release active turn permits. Returns { ok = true }. Also callable from a code_execution script as a Python async function.

ParameterTypeRequiredDescription
task_idstringyesTask id returned by task_spawn.

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
commandstringyes- list [tags]: tag-grouped index, no bodies.
- read path|tags: one body (path) or collated bodies (tags).
- write path tags content: create or overwrite a note.
- delete path
contentstringnoBody for write (frontmatter added automatically).
pathstringnoRelative path, e.g. 'architecture.md'.
tagsarraynosnake_case tags. Filter for list/read; assigned on write (defaults to filename stem).

skill

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

ParameterTypeRequiredDescription
namestringyesName of the skill to load

Web

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