Agent
Tools

Tools

This is the reference for ProxyAI's built-in tools: what each tool does, what inputs it accepts, and what it returns. Tools are the contract between the model and your machine. If something feels "magical", it usually maps to one of these tools.

Quick map

  • Need to inspect a file? Use Read.
  • Need to find a file/symbol name-first? Use IntelliJSearch.
  • Need to change files? Use Edit (precise replace) or Write (create/overwrite).
  • Need to run commands? Use Bash, and monitor with BashOutput.
  • Need to delegate? Use Task.
  • Need reusable workflow instructions? Use LoadSkill.

Approvals

The UI asks for approval for:

  • Edit and Write
  • Bash

For path-level restrictions, see Ignore Rules. For tool allow rules (Bash, Read), see Permissions.

Tool reference

Read

Reads a file from disk and returns it in numbered cat -n format.

Input

FieldTypeRequiredNotes
file_pathstringYesMust be an absolute path.
offsetnumberNo1-indexed line offset.
limitnumberNoNumber of lines to read.

Output

FieldTypeNotes
filePathstringEchoes the path requested.
contentstringNumbered content (lines truncated to 2000 chars each).
lineCountnumberLines returned (not total lines).
truncatedbooleanTrue when the file/selection exceeds the read limit.
fileTypestring | nullIntelliJ file type name.
startLinenumber | nullFirst line returned (when offset is used).
endLinenumber | nullLast line returned (when limit truncates).

IntelliJSearch

Name-oriented search (files/classes/symbols). Use it when you don't know the exact path yet.

Input

FieldTypeRequiredNotes
patternstringYesSearch query.
scopestringNoproject, module, directory, file, custom.
pathstringNoUsed with directory or file scope.
fileTypestringNoFilter by language/file type.
contextstringNoSearch context selector.
caseSensitivebooleanNoDefaults to false.
regexbooleanNoDefaults to false.
wholeWordsbooleanNoDefaults to false.
outputModestringNocontent, files_with_matches, count.
limitnumberNoMax results.

Output

FieldTypeNotes
patternstringEchoes the query.
scopestringEffective scope.
totalMatchesnumberNumber of matches included.
matchesarrayStructured matches (file, line, column, text, context).
outputstringHuman-readable summary.

Edit

Exact string replacement in a file.

Approval required.

Input

FieldTypeRequiredNotes
file_pathstringYesMust be an absolute path.
old_stringstringYesMust match exactly (including whitespace).
new_stringstringYesReplacement text; can be empty.
short_descriptionstringYesShown in UI/logs.
replace_allbooleanNoDefaults to false.

Output (success)

FieldTypeNotes
filePathstringEdited file path.
replacementsMadenumberCount of replacements.
messagestringHuman-readable message.
oldStringPreviewstring | nullPreview (up to ~200 chars).
newStringPreviewstring | nullPreview (up to ~200 chars).
editLocationsarrayLine/column + small context for each replacement.

Output (error)

FieldTypeNotes
filePathstringRequested file path.
errorstringError message.

Write

Creates a file or overwrites an existing file.

Approval required.

Input

FieldTypeRequiredNotes
file_pathstringYesAbsolute path to the file.
contentstringYesFull file contents.

Output (success)

FieldTypeNotes
filePathstringWritten file path.
bytesWrittennumberUTF-8 byte count.
isNewFilebooleanWhether the file was created.
messagestringHuman-readable message.

Output (error)

FieldTypeNotes
filePathstringRequested file path.
errorstringError message.

Bash

Runs a shell command.

Approval required.

Input

FieldTypeRequiredNotes
commandstringYesShell command to execute.
timeoutnumberNoTimeout in ms (defaults to 60000 in the tool implementation).
descriptionstring | nullNoShort description of what the command does.
run_in_backgroundboolean | nullNoStart in background; use BashOutput to monitor.

Output

FieldTypeNotes
commandstringEchoes the command.
exitCodenumber | nullNull when running in background or timed out.
outputstringCombined stdout/stderr and status messages.
bash_idstring | nullPresent when started in background.

BashOutput

Reads incremental output from a background Bash process.

Input

FieldTypeRequiredNotes
bash_idstringYesID returned by Bash.
filterstring | nullNoRegex filter to include matching lines only.

Output

FieldTypeNotes
bash_idstringEchoes the ID.
stdoutstringNew stdout since last check.
stderrstringNew stderr since last check.
statusstringrunning, completed, terminated, not_found, denied.
exit_codenumber | nullExit code when available.

KillShell

Stops a background Bash process.

Input

FieldTypeRequiredNotes
bash_idstringYesID returned by Bash.

Output

FieldTypeNotes
bash_idstringEchoes the ID.
successbooleanWhether the process was terminated.
messagestringHuman-readable status message.

WebSearch

Web search tool. Use it for general web content; for library/API docs use Context7 tools.

Input

FieldTypeRequiredNotes
querystringYesSearch query.
allowed_domainsstring[] | nullNoDomain allowlist.
blocked_domainsstring[] | nullNoDomain blocklist.

Output

FieldTypeNotes
querystringEchoes query.
resultsarraytitle, url, content.
sourcesstring[]Markdown links to sources.

ResolveLibraryId

Resolves a library name into a Context7-compatible ID.

Input

FieldTypeRequiredNotes
library_namestringYesName to search for (e.g. "nextjs", "mongodb").

Output (success)

FieldTypeNotes
libraryNamestringEchoes the search query.
librariesarrayCandidate libraries; includes id you pass to GetLibraryDocs.

Output (error)

FieldTypeNotes
errorstringError message.

GetLibraryDocs

Fetches docs from Context7 for a specific library ID.

Input

FieldTypeRequiredNotes
context7CompatibleLibraryIDstringYes/org/project[/version].
modestringNocode (default) or info.
topicstring | nullNoTopic filter.
pagenumberNoPage number (1-10).

Output (success)

FieldTypeNotes
libraryIdstringEchoes the library id.
documentationstringPlain text docs (truncated).
docModestringcode or info.
pagenumberPage number returned.

Output (error)

FieldTypeNotes
errorstringError message.

LoadSkill

Loads a configured skill and injects it back into the run as a new user message. Skills are discovered from .proxyai/skills/**/SKILL.md.

Approval required (generic ask/approve flow).

Input

FieldTypeRequiredNotes
skill_namestringYesExact skill title from the available skills list in the system prompt.

Output (success)

FieldTypeNotes
titlestringLoaded skill title.
descriptionstringLoaded skill description.
queuedbooleanWhether the user-message injection was queued.

Output (error)

FieldTypeNotes
messagestringError message with available skills when possible.

AskUserQuestion

Asks the user a structured question in the UI.

Input

FieldTypeRequiredNotes
questionsarrayYesMax 1-4 questions. Each question includes header, question, options, and multiSelect.
answersobject | nullNoPrefill answers (rare).

Output (success)

FieldTypeNotes
answersobjectMap of header -> selected value(s).

Output (error)

FieldTypeNotes
messagestringError message.

TodoWrite

Creates/updates a todo list rendered in the UI.

Input

FieldTypeRequiredNotes
titlestringYesShort title (max 4 words).
todosarrayYesTodo items: content, status, activeForm.

Output

Returns a formatted string summary (used to render the UI todo widget).

Task

Launches a subagent.

Input

FieldTypeRequiredNotes
descriptionstringYesShort label.
promptstringYesFull instruction for the subagent.
subagent_typestringYesBuilt-in type or custom subagent title.
modelstring | nullNoOptional model override.
project_pathstring | nullNoOptional working directory override.

Output

FieldTypeNotes
agentTypestringThe subagent type used.
descriptionstringEchoes description.
promptstringEchoes prompt.
outputstringSubagent output text.
executionTimenumberDuration in ms.
totalTokensnumberToken usage (when available).

Exit

Ends the current agent run.

Input

No input.

Output

No output.

See also