Agent Tools

What Friday can actually do.

16 local tools in the default registry, plus plugin, MCP, and LSP tools when configured. Up to 8 are selected per turn based on the request — ranked by relevance, safety, and cost.

16local tools
8exposed per turn
5identical calls trigger loop veto
1 MBmax web_fetch response

Files

9 tools
read

Reads a UTF-8 file and returns line-numbered text. Records read state so later write, edit, delete, copy, and move operations can verify the file was seen first.

write

Creates or overwrites a UTF-8 file. Existing files must be read earlier in the run before they can be overwritten.

edit

Applies an exact string replacement to a file after it has been read. Targeted and surgical — does not rewrite the whole file.

apply_patch

Applies a unified diff to existing workspace files after affected files have been read. Useful for multi-file changes from a single diff block.

delete

Deletes a file after it has been read. Directory deletion requires explicit recursive=true. Root paths are guarded.

copy

Copies one file to another path. Overwriting an existing destination requires prior read state for that destination.

move

Moves or renames a file. The source must be read first. Overwriting requires prior destination read state.

inspect_file

Inspects file bytes, size, MIME type, content preview, and hashes. Returns PNG/JPEG/GIF/WebP image content directly when practical.

find

Finds files by glob pattern across the workspace. Excludes common generated directories like node_modules and .git automatically.

Shell

2 tools
exec

Runs a shell command in the workspace with capped output, denied dangerous command patterns, abort support, and a configurable execution timeout.

process

Lists, reads logs for, or kills background processes started by exec with background=true.

Web

3 tools
web_fetch

Fetches an HTTP or HTTPS URL and returns readable text capped at 1 MB. Used for current docs, API references, and live data.

open_browser

Opens an HTTP or HTTPS URL in the user's default browser.

browser

Controls the managed browser: lifecycle, tabs, navigation, DOM snapshots, screenshots, and element actions. Useful for UI automation and form filling.

Scheduling

2 tools
cron

Schedules, lists, updates, removes, manually runs, and inspects Gateway-owned cron jobs. The correct tool for future, delayed, recurring, and reminder work.

task

Starts an immediate in-memory background task through the task manager. The correct tool when the user asks to run something in the background right now.

Dynamic tools

Added only when the condition applies
execute_skill

A selected skill is not file-backed

startup_files

Bootstrap is pending — the only tool exposed during setup

heartbeat_respond

Heartbeat runs with tool reporting enabled

Plugin tools

Run-scoped assembler with plugin tools included by policy

MCP tools

Model Context Protocol servers are explicitly included

LSP tools

An LSP runtime supplies language-server capabilities

Client tools

The client provides hosted tool definitions

tool_search

Run-scoped tool-search compaction is enabled

tool_describe

Fetches schema for a hidden tool when compaction is active

tool_call

Executes a hidden tool through the managed execution path

How tools are selected

01
Policy check

If the user says not to use tools, none are exposed. Bootstrap runs expose startup_files only.

02
Candidate filtering

Disabled tools, tools without required permissions, tools above the safety level, and privacy-constrained tools are removed.

03
Ranking

Remaining tools are scored by request-term match, inferred category, memory preferences, recent success, schema specificity, reliability, cost, and latency.

04
Cap at 8

At most 8 tools reach the provider per turn. File mutation tools automatically keep read available. Skill and heartbeat tools can force their way in.

05
Loop detection

The third identical call in a turn adds a warning. After five identical calls, execution is vetoed and the model receives a loop-detector error.

Extend the tool surface

MCP, plugins, LSP, and client-hosted tools.

Connect Model Context Protocol servers, plugin registries, or language-server capabilities to add domain-specific tools without modifying the core agent loop.