Skip to content

Tools and Approval

Tools are the actions ByteMind's agent can take. Understanding which tools exist and how the approval system works lets you keep full control while staying efficient.

Available Tools

ToolCategoryWhat it does
list_filesReadList files in a directory tree
read_fileReadRead the contents of a file
search_textReadSearch files for text or regex patterns
write_fileWriteCreate or overwrite a file
replace_in_fileWriteReplace specific content inside a file
apply_patchWriteApply a unified diff patch to a file
run_shellExecuteRun a shell command
update_planPlanUpdate the current task plan (Plan mode)
web_fetchWebFetch and read a URL
web_searchWebSearch the web for information

Read tools run silently. Write and Execute tools pause and wait for your approval before proceeding.

Approval Flow

When the agent wants to call a high-risk tool, it displays:

  • The tool name and the exact arguments it will use
  • A summary of the operation
  • A prompt to approve (y), deny (n), or explain why it should not run

The default approval_policy: on-request enables this for every high-risk tool call.

  1. Analyze first — ask the agent to read and explain before making any changes
  2. Review the plan — check what files will be touched and why
  3. Approve incrementally — approve each write operation only after you're satisfied
  4. Use Plan mode for large tasks so you see the full scope before any execution
text
First read the relevant files and tell me what changes you'd propose, without writing anything.

Exec Allowlist

For trusted commands you don't want to approve repeatedly, define an exec_allowlist in your config:

json
{
  "exec_allowlist": [
    { "command": "go", "args_pattern": ["test", "./..."] },
    { "command": "make", "args_pattern": ["build"] }
  ]
}

Allowlisted commands skip the approval prompt.

Full Access Mode

For unattended runs (CI pipelines, scripts), set approval_mode: full_access so approval-required operations are auto-approved and the agent doesn't block waiting for input:

json
{
  "approval_mode": "full_access"
}

Legacy approval_mode: away is blocked by default to prevent silent privilege escalation. Set BYTEMIND_ALLOW_AWAY_FULL_ACCESS=true only for temporary migration.

See Configuration for all approval-related settings.

See Also

Released under the MIT License.