Skip to main content

Built-in Tools Reference

Built-in tools are the operations Anyy can choose during a model turn. Dashboard → Tools shows the authoritative live catalog, including source, toolset, native definition and runtime limits.

Core file and terminal tools​

ToolToolsetPurpose
readfileRead a text file or range
lsfileList a directory
findfileFind matching paths
grepfileSearch file contents
writefileCreate or replace a file
editfileApply a targeted text edit
bashterminalRun a shell command in the active working directory
processterminalInteract with tracked background processes

read, write, edit, grep, find, ls, bash and managed process operations execute directly. File changes use edit or write; the redundant apply_patch extension has been removed. Process sessions remain isolated to their owning conversation.

Model image limits​

A model can specify input_limits.images.resize in its providers[].models[] configuration entry. The fields are maxWidth, maxHeight, maxBytes and jpegQuality: positive integers, with JPEG quality at most 100. maxBytes counts bytes after base64 encoding. Leaving this setting absent keeps the existing defaults without adding entries to the configuration file.

When reading an image, read uses the currently selected model's limits.

Before sending tool results to the model, Anyy processes their images again using the current model's limits. If the selection is a virtual model, it uses the model actually called for the most recent successful reply when available in the model catalog; otherwise it uses the selected model. The model chosen for a future reply does not determine these limits.

Anyy may resize the image shown to the model while preserving the tool's structured return value for Codemode programs. This is the value the tool returned; read may already have resized its own result. If processing an image from an ordinary tool fails, Anyy keeps the original image. read can instead return an image-omission notice when it cannot meet the size limit.

Image resizing uses Anyy's embedded Photon codec; BMP input is converted to PNG. No external image-processing executable is needed for this path. The default image limits are 2000 × 2000 pixels, 4.5 MiB after base64 encoding and JPEG quality 80.

Search helper availability​

Local grep uses ripgrep (rg); local find uses fd. Anyy first checks the selected Profile's bin/ directory, then probes its execution PATH with --version. A managed helper is selected by existence without that probe; a PATH probe may exit nonzero as long as the command started. For find, fd is preferred over the fdfind alias.

If no helper is found, Anyy can download the platform archive from the tool's official GitHub release and keep it in <PROFILE_HOME>/bin/ for reuse. Release-page redirects select the version, except fd on Intel macOS uses 10.3.0. Acquisition and extraction are implemented in Go; rg/fd remain separate local executables and do not add a Node.js runtime requirement.

Set ANYY_OFFLINE to 1, true or yes in the environment of the Anyy process that owns local execution to disable acquisition; the word values are case-insensitive. Existing helpers remain usable. Android also skips automatic acquisition. A latest-version lookup has a 10-second total network budget; an archive download has 120 seconds. Each may make at most three immediate request attempts, but a response-body transfer is not retried.

grep resolves or acquires its helper before checking the search path, so a missing path may still cause helper acquisition. If no helper is available, the error is ripgrep (rg) is not available and could not be downloaded or fd is not available and could not be downloaded, including in offline mode. This wording does not mean a network request occurred.

Other execution backends use their own helper resolution.

Sessions, memory, and tasks​

ToolToolsetPurpose
session_searchsessionsSearch earlier Profile sessions within the current scope
tool_result_readcoreRead a bounded chunk from stored tool-result evidence
memorymemoryAdd, replace, or remove durable USER.md/MEMORY.md entries
task_createtasksCreate a durable personal task
task_listtasksList and filter tasks
task_updatetasksUpdate task fields or status
task_completetasksComplete a task with an optional note

The memory tool is for durable facts and preferences, not temporary task notes, copied references, or secrets.

Automations and messaging​

ToolsToolsetPurpose
automation_list, automation_historyautomationInspect schedules and run history
automation_create, automation_update, automation_delete, automation_runautomationManage or trigger scheduled work
messaging_statusmessagingInspect available delivery routes
notify_usermessagingSend a notification through the current runtime route
send_messagemessagingDeliver a message or attachment through a supported Channel
message_receiptmessagingInspect delivery receipts

Outbound delivery depends on configured Channel accounts, conversation scope, access policy, and adapter capability.

Artifacts and generated media​

ToolToolsetAvailability
artifact_list, artifact_inspect, artifact_pin, artifact_exportartifactAvailable when the artifact service is active
image_generatemedia_generationAdded when image generation is configured
text_to_speechttsAdded when a TTS route is configured

artifact_export hands off a Workspace-relative regular file as a temporary generated attachment. It does not move or delete the source.

Web​

ToolToolsetPurpose
web_searchwebSearch the public web through the configured provider
web_fetchwebFetch readable content from one public HTTP(S) URL
web_extractwebExtract readable content from public URLs into structured results

Skills and delegation​

ToolToolsetPurpose
skill_manageskillsManage the active Profile's Skill packages and revisions (Anyy-specific)
delegate_tasksubagentsRun one or more bounded child tasks
background_jobsubagentsStart independent background work
subagent_list, subagent_history, subagent_cancelsubagentsInspect or stop child work

Skill discovery and reading use the catalog plus the current read/bash tools, including readers available through Codemode. Without a reader there is no model catalog. There are no separate built-in skills_list/skill_view registrations. Automatic review inherits the parent conversation's available tools, choices and exclusions.

Installation through skill_manage accepts a local ZIP path only; it does not download remote packages or install directories.

skill_manage is Anyy's managed-write capability, with package revisions and rollback. It does not replace shared Skill reading or grant additional tools. Dashboard and CLI management remain available. See Skills.

ToolDefault activationPurpose
codemodeOffRun raw JavaScript using the current Session's callable tools and branch-local store
tool_searchOffFind inactive deferred/Codemode tools and load matches for the next request

These built-ins execute with the actual run's Session context. Name selection can activate them; Profile codemode.mode selects on or only after activation. only changes request visibility and preserves callable tools and canonical declarations. It is not a Role mode or an additional CLI switch. See Codemode, Tool Search and conversation flags.

When the selected native model declares compat.supportsOpenAIGrammarTools and its provider supports that request path, Codemode sends JavaScript as raw tool input instead of a JSON-escaped code string. Other models use ordinary JSON arguments. Both paths keep the same tool validation, execution and saved canonical argument shape; no additional user setting is required.

MCP tools​

Enabled MCP servers contribute native tool definitions and exposure/ordered toolExposure metadata. They do not require an mcp-NAME product group or an include-list activation gate. Exact names come from the current server catalog. Remote original names and Anyy-visible names differ: the latter include a server namespace, sanitized characters and a suffix when needed for length or collisions. CLI mcp call uses the original SERVER_ID.TOOL_NAME; scripts use the identifier returned by discovery.

Shared resource toolPurpose
list_mcp_resourcesList one server page or collect eligible servers' resource lists
list_mcp_resource_templatesList URI templates with the same server/cursor behavior
read_mcp_resourceRead a resource using its server and uri

These definitions depend on enabled servers with a reported resource capability and non-hidden base exposure. Their shared exposure follows direct, then codemode, then deferred; withdrawn capability hides registered definitions. They replace the generated per-server resource/prompt tools. The tools.resources and tools.prompts server switches are rejected. See resource inputs and results.

Remote tools execute directly within the admitted scope, including external writes. Protocol prompt methods remain available to the MCP client API; they do not generate model tools. See MCP Integration for transport, authentication, resource and recovery behavior.

Tool results and context​

A tool's model text, Dashboard display and programmatic return can differ. A declared output schema describes the value available to Codemode; it does not imply that the same complete value is copied into model context. For example, bash returns an object with output, truncated, exit_code and wall_time_seconds; a nonzero exit can resolve that object. MCP results use their protocol envelope, including isError and optional structuredContent. Inspect these fields before treating a resolved value as success.

Anyy bounds model/display projections, protects known credentials and records whether retained evidence is complete. A shortened model result is not proof that a full body was stored. A projected result retains a bounded projection; artifact points to its associated file. Only inspectable evidence can be read in full through tool_result_read. Tool-specific limits, the final response envelope and the conversation's overall context budget apply separately; increasing one limit does not remove the others.

Use tool_result_read with the exact logical details_ref or raw_ref returned by the tool, never a host path:

{"ref":"tr_example","offset":0,"limit":12000}

Offsets and limits count characters. The default limit is 12000, the maximum is 48000; the final envelope may shorten a chunk further and report envelope_clamped:true. Continue from next_offset until eof; output also includes total_chars, source_tool, content_type and storage_kind.

Original result tokens resolve within their current run. Explicit canonical durable refs can read inspectable evidence from an older run in the same Session. Cross-session access returns out_of_scope; malformed or ambiguous refs return invalid_ref, missing records not_found, and incomplete/unavailable full bodies not_available. The reader does not reconstruct missing evidence from a preview. File delivery and reopening are described separately in Artifacts.

External services​

The unconnected generic email_* and calendar_* tool wrappers have been deleted. The actual Email channel remains available. External mail/calendar tools require a separately configured service, such as an MCP server.

Visibility is not permission​

A visible tool can still be unavailable because of missing credentials, unhealthy backends, Profile/session toolset selection, or session scope.

Trust the live catalog for exact availability

This page describes the stable user-facing groups. Dashboard → Tools and the current session catalog reflect optional services, MCP servers, and configuration for the running version.

See Toolsets, Files & Terminal.