Documentation

Tools

50+ built-in tools for files, git, shell, code analysis, browser automation, and more.

Edit on GitHub

Nyzhi ships with 50+ built-in tools organized by category. Read files, run commands, manage git, search code semantically, and automate browsers — all from natural language. You can extend Nyzhi further with MCP servers and tune tool behavior via configuration.


Permission Model

Each tool has one of two permission levels:

PermissionBehavior
ReadOnlyAlways auto-approved. Can run in parallel with other read-only tools in the same turn.
NeedsApprovalRequires user confirmation before execution. Auto-approved in full trust mode, or selectively in limited mode.

File Operations

ToolPermissionDescription
readReadOnlyRead file contents. Supports line offset and limit for large files.
writeNeedsApprovalWrite content to a file. Creates the file if it doesn’t exist.
editNeedsApprovalReplace a specific string in a file. The old string must be unique in the file.
multi_editNeedsApprovalApply multiple edits to a file in a single operation.
apply_patchNeedsApprovalApply a unified diff patch to one or more files.
globReadOnlyFind files matching a glob pattern. Recursive by default.
grepReadOnlySearch file contents using regex. Supports context lines, case-insensitive, multiline.
list_dirReadOnlyList directory contents with file types and sizes.
directory_treeReadOnlyDisplay a tree view of a directory structure.
file_infoReadOnlyGet file metadata (size, permissions, modification time).
delete_fileNeedsApprovalDelete a file.
move_fileNeedsApprovalMove or rename a file.
copy_fileNeedsApprovalCopy a file to a new location.
create_dirNeedsApprovalCreate a directory (with parents).

Shell

ToolPermissionDescription
bashNeedsApprovalExecute a shell command. Output streams in real-time. Supports timeout and working directory.

The bash tool runs commands via sh -c and captures stdout/stderr. Output is streamed back to the agent as it runs, giving live visibility during long-running commands.


Git

ToolPermissionDescription
git_statusReadOnlyShow working tree status.
git_diffReadOnlyShow changes (staged, unstaged, or between refs).
git_logReadOnlyShow commit history with optional count and format.
git_showReadOnlyShow a specific commit’s contents.
git_branchReadOnlyList or show current branch.
git_commitNeedsApprovalCreate a commit with a message. Supports --all flag.
git_checkoutNeedsApprovalSwitch branches or restore files.

Agent and Task Management

ToolPermissionDescription
taskReadOnlyDelegate a sub-task to a child agent. The child runs with its own context and tools.
todo_writeReadOnlyCreate or update todo items with id, content, and status.
todo_readReadOnlyRead the current todo list.
notepad_writeReadOnlyWrite an entry to the session notepad.
notepad_readReadOnlyRead notepad entries.
update_planReadOnlyUpdate the current execution plan.
thinkReadOnlyExplicit thinking/reasoning step. The agent uses this to reason through complex problems without taking action.
load_skillReadOnlyLoad a learned skill by name for the current context.
tool_searchReadOnlySearch deferred tools by name or description. Returns matching tools and expands them for use.

Code Analysis

ToolPermissionDescription
verifyReadOnlyRun build, test, and lint checks. Auto-detects checks for Rust, Node, Go, and Python projects. Returns structured evidence with pass/fail, output, and timing.
lsp_diagnosticsReadOnlyGet diagnostics from available language servers.
ast_searchReadOnlyStructural code pattern matching using AST queries.
lsp_goto_definitionReadOnlyJump to the definition of a symbol.
lsp_find_referencesReadOnlyFind all references to a symbol.
lsp_hoverReadOnlyGet hover information (type, docs) for a symbol at a position.

ToolPermissionDescription
semantic_searchReadOnlySearch code by meaning, not exact text. Uses a semantic index to find relevant code chunks.
fuzzy_findReadOnlyFuzzy file name search across the project.

Web

ToolPermissionDescription
web_fetchReadOnlyFetch a URL and return its content as readable text/markdown.
web_searchReadOnlySearch the web and return summarized results with URLs.

Browser Automation

ToolPermissionDescription
browser_openNeedsApprovalOpen a URL in a headless browser.
browser_screenshotReadOnlyTake a screenshot of the current browser page.
browser_evaluateNeedsApprovalExecute JavaScript in the browser context.

Team Orchestration

ToolPermissionDescription
team_createNeedsApprovalCreate a new agent team with configuration.
team_deleteNeedsApprovalDelete an existing team.
team_listReadOnlyList all teams and their members.
send_messageReadOnlySend a message to a teammate or broadcast to the team.
read_inboxReadOnlyRead unread messages from the team mailbox.
task_createReadOnlyCreate a task on the team task board.
task_updateReadOnlyUpdate a task’s status, owner, or details.
task_listReadOnlyList tasks with optional status filter.

PR Workflow

ToolPermissionDescription
create_prNeedsApprovalCreate a GitHub pull request using gh.
review_prReadOnlyReview an existing pull request.

Debug and Instrumentation

ToolPermissionDescription
instrumentNeedsApprovalInject debug instrumentation (logging, timing) into source files. Tracked for later removal.
remove_instrumentationNeedsApprovalRemove all previously injected instrumentation.
tail_fileReadOnlyRead the last N lines of a file, useful for monitoring logs.
batch_applyNeedsApprovalApply multiple file operations in a single batch.

Memory

ToolPermissionDescription
memory_readReadOnlyRead persistent memory entries (project-scoped or user-scoped).
memory_writeReadOnlyWrite a memory entry. Persists across sessions.

Deferred Tool Loading

To keep the LLM’s context budget manageable, some tools are registered as deferred. They appear in a compact index but their full schemas are not sent to the LLM until they are first used.

The tool_search tool lets the agent discover deferred tools:

  1. Agent calls tool_search with a query (e.g., “browser”).
  2. Returns matching deferred tool names and descriptions.
  3. On first invocation of a deferred tool, it is expanded — its full schema is included in all subsequent requests for the session.

This pattern allows Nyzhi to offer 50+ tools without overwhelming the context window.


MCP Tools

Tools from MCP servers are registered with the naming convention mcp__<server>__<tool>. For example, a tool named read_file on a server named filesystem becomes mcp__filesystem__read_file.

MCP tools inherit the NeedsApproval permission by default. See MCP for setup.


Tool Context

Every tool receives context when executed, including:

  • Session ID — identifies the current conversation
  • Current working directory — where the agent is operating
  • Project root — the detected project root
  • Agent depth — 0 for main agent, 1+ for sub-agents
  • Change tracker — tracks file modifications for undo
  • Allowed tools — when role-based filtering is used
  • Team info — team name, agent name, and whether this agent is the coordinator