Tools

Tools Reference

63 always-registered built-in tools plus up to 5 CDP browser tools, up to 6 computer tools, and LSP language server integration (up to 75 tools total) available across coding harnesses, AST repo-mapping, git worktrees, web, memory, browser, security, and swarm coordination. Each implements the Tool trait and auto-registers in the registry; MCP servers and plugins extend the catalog.

Overview

Fathom agents have access to a comprehensive toolkit spanning web search, file operations, browser automation, OSINT pipelines, Git integration, and more. Tools are classified by parallelism safety for optimal concurrent execution.

Web

web_search

parallel-safe

Search the internet via the configured backend (Linkup/Exa/Tavily/Serper/Brave/Parallel/DuckDuckGo).

ParameterTypeDescription
querystringSearch query
limitu32Max results (default 10)

Returns: List of results (title, URL, snippet).

web_fetch

parallel-safe

Download a page and convert HTML to readable text.

ParameterTypeDescription
urlstringPage URL
extract_textboolExtract text only (default true)

Returns: Page text (truncated to 50K chars).

web_crawl

parallel-safe

Crawl a website breadth-first from a seed URL.

ParameterTypeDescription
urlstringSeed URL
max_depthu32Max crawl depth (cap 3)
max_pagesu32Max pages to crawl (cap 50)
same_domainboolRestrict to same domain
delay_msu64Delay between requests (ms)
selectorstring?CSS selector
chars_per_pageu32Max chars to extract per page

Returns: Per-page title + extracted text.

web_feed

parallel-safe

Parse an RSS 2.0, Atom, or sitemap.xml feed into a clean item list.

ParameterTypeDescription
urlstringFeed URL
limitu32?Max items (default 50)

Returns: Feed items (title, link, description, pub_date).

Files

file_read

parallel-safe

Read a file with optional partial reading support.

ParameterTypeDescription
pathstringFile path
offsetu32?Start line
limitu32?Number of lines

Note: Tracks read files for read-before-write validation.

file_write

Sequential

Write a file (creates directories automatically).

ParameterTypeDescription
pathstringFile path
contentstringContent to write

Note: Per-path locking, updates file history.

file_edit

Sequential

Find/replace edit (surgical replacement).

ParameterTypeDescription
pathstringFile path
old_stringstringWhat to replace
new_stringstringReplacement text

Validation: read-before-write, staleness check, size guard.

glob

parallel-safe

Search files by glob pattern.

ParameterTypeDescription
patternstringGlob pattern (e.g. **/*.rs)

grep

parallel-safe

Search file contents with regex. Uses ripgrep when available.

ParameterTypeDescription
patternstringRegex pattern
pathstring?Search directory
file_patternstring?File filter

Shell

shell

Sequential

Execute a bash command.

ParameterTypeDescription
commandstringCommand to execute
timeoutu64Timeout in seconds (default 120)

Protection: Blocks destructive commands (rm -rf /, mkfs, fork bombs).

Code

code_symbols

parallel-safe

Find code definitions (functions, classes, structs, traits, methods) in a file or directory. Supports Rust, Python, JS/TS, Go, Ruby, Java/Kotlin, C/C++/C#, PHP.

ParameterTypeDescription
pathstringFile path
symbol_typestring?Filter: function, class, struct, trait, method

Returns: List of definitions with name, kind, file, line.

repo_map

parallel-safe

Build a compact map of a codebase: files by language plus their top symbols.

ParameterTypeDescription
pathstring?Root path (default: cwd)
include_hiddenbool?Include hidden files

Returns: File tree with language tags and top-level symbols per file.

python_exec

Sequential

Execute Python code and return stdout/stderr. Uses system python3.

ParameterTypeDescription
codestringPython code
timeoutu64?Timeout in seconds (default 30, max 600)

Returns: stdout, stderr, exit_code.

node_exec

Sequential

Execute Node.js code and return stdout/stderr. Uses system node.

ParameterTypeDescription
codestringJavaScript code
timeoutu64?Timeout in seconds (default 30)

Returns: stdout, stderr, exit_code.

LSP

lsp

parallel-safe

Query the Language Server Protocol for code intelligence: document symbols, go-to-definition, find references, hover info, and workspace symbol search. Auto-detects LSP server from project files.

ParameterTypeDescription
actionstringdocument_symbols | goto_definition | find_references | hover | workspace_symbols
filestring?File path
lineu32?Line number
characteru32?Character offset
querystring?Search query (for workspace_symbols)

Returns: LSP response (symbols, locations, hover info depending on action).

Browser (CDP)

Requires Chrome running with –remote-debugging-port=9222. CDP availability is detected automatically.

browser_navigate

parallel-safe

Open a URL in the browser.

ParameterTypeDescription
urlstringURL to open

browser_screenshot

parallel-safe

Take a screenshot of the current page.

Returns: base64 image in metadata.base64.

browser_click

Sequential

Click an element by CSS selector.

ParameterTypeDescription
selectorstringCSS selector

browser_type

Sequential

Type text into an element.

ParameterTypeDescription
selectorstringCSS selector
textstringText to enter

browser_extract

parallel-safe

Extract text content from page (with JS rendering).

Returns: Page text (truncated to 50K).

Vision

analyze_image

parallel-safe

Analyze an image via vision model (qwen-vl-max).

ParameterTypeDescription
imagestringFile path or image URL
promptstring?What to analyze

Config: PARALLEL_VISION_API_BASE, PARALLEL_VISION_API_KEY, PARALLEL_VISION_MODEL.

Git

git_status

parallel-safe

Show working tree status.

git_diff

parallel-safe

Show changes.

ParameterTypeDescription
stagedbool?Staged changes only
pathstring?Specific file

git_log

parallel-safe

Commit history.

ParameterTypeDescription
limitu32?Max commits

git_add

Sequential

Add files to staging.

ParameterTypeDescription
pathsstring[]Files to add

git_commit

Sequential

Create a commit.

ParameterTypeDescription
messagestringCommit message

git_push

Sequential

Push to remote.

ParameterTypeDescription
remotestring?Remote (default: origin)
branchstring?Branch name

PDF

pdf_extract

parallel-safe

Extract text from a PDF file.

ParameterTypeDescription
pathstringPDF file path

Returns: Text + page count. Supports ToUnicode CMaps, encryption (empty password).

Parsing

parse_html

parallel-safe

Extract structured data from an HTML page or file using CSS selectors. Modes: texts, html, attr, links, tables.

ParameterTypeDescription
urlstring?URL to fetch
pathstring?File path
selectorstringCSS selector
modestring?texts | html | attr | links | tables
base_urlstring?Base URL for resolving links
max_charsu32?Max output characters

Returns: Extracted elements matching the selector.

extract_json

parallel-safe

Query a JSON document (API response, file, or inline value) with a dot path and return selected values.

ParameterTypeDescription
sourcestringURL, file path, or inline JSON
pathstringDot-notation query path

Returns: Matching values at the specified path.

OSINT / Lead Generation

find_leads

parallel-safe

High-level lead search. Orchestrates business directories → corporate sites → social networks → contact extraction → deduplication.

ParameterTypeDescription
industrystring?Industry
locationstring?Location
company_sizestring?Company size
role_titlesstring[]?Roles (CEO, CTO…)
limitu32?Max leads

search_business_directory

parallel-safe

Search business directories (2GIS, Google Maps, Yandex Maps, Yellow Pages).

ParameterTypeDescription
querystringWhat to search for
citystring?City

Returns: Name, category, address, phone, website, email, rating.

search_social

parallel-safe

Search people/companies on social networks (Twitter, Telegram, LinkedIn).

ParameterTypeDescription
querystringSearch query
platformstring?Specific platform

parse_corporate_site

parallel-safe

Parse corporate website: company info, team, contacts.

ParameterTypeDescription
urlstringWebsite URL

Returns: Company name, description, industry, size, contacts, team page URL, social profiles.

search_news

parallel-safe

Search news/mentions (Serper News or Google News RSS).

ParameterTypeDescription
querystringWho/what to search
limitu32?Max articles (default 10)

Returns: Title, URL, source, date, snippet + extracted persons/companies.

Verification

verify_email

parallel-safe

Verify email: syntax, MX records, disposable, role-based checks.

ParameterTypeDescription
emailstringEmail to verify

Returns: is_valid_syntax, domain_exists, mx_records, is_disposable, is_role_based, confidence.

suggest_emails

parallel-safe

Generate likely corporate email addresses for a person from standard name permutations at a domain. Infers the company’s email pattern from known addresses. Every candidate is verified.

ParameterTypeDescription
namestringPerson name
domainstringEmail domain
known_emailsstring[]?Known email addresses
smtp_checkbool?Verify via SMTP

Returns: List of candidate emails with verification status and confidence scores.

verify_phone

parallel-safe

Validate and normalize phone number (E.164).

ParameterTypeDescription
phonestringPhone number

Returns: Normalized (E.164), country_code, country_name, is_valid, is_mobile.

verify_social_profile

parallel-safe

Check if a social media profile exists.

ParameterTypeDescription
urlstringProfile URL

Returns: exists, platform, username, name, followers.

Enrichment

enrich_company

parallel-safe

Enrich company data.

ParameterTypeDescription
company_namestringCompany name
websitestring?Website

Returns: Industry, size, revenue, founded, headquarters, description, technologies.

enrich_person

parallel-safe

Enrich person data.

ParameterTypeDescription
namestringPerson name
companystring?Company

Returns: Title, company, linkedin, twitter, email, phone, location, bio.

Contacts

extract_contacts

parallel-safe

Extract structured contact information (emails, phone numbers, social profiles, people, companies) from text, HTML, or a URL. Built for OSINT and lead-generation research.

ParameterTypeDescription
inputstringText, URL, or file path
enrich_entitiesbool?Enrich extracted entities
max_resultsu32?Max results to return

Returns: Emails, phones (E.164), social profiles, persons, companies — each with confidence and source.

save_contacts

Sequential

Save harvested contacts into the persistent contact database (contacts.db), and optionally push to CRM (amoCRM/Bitrix24/HubSpot) when configured.

ParameterTypeDescription
contactsarrayArray of contact objects
push_to_crmbool?Also push to connected CRM

Returns: saved count, merged count, skipped count.

Coordination

spawn_agent

Sequential

Spawn a sub-agent to handle a specific research task. Available roles: researcher, analyst, verifier, writer. Sub-agent runs autonomously with its own context.

ParameterTypeDescription
taskstringTask for the sub-agent
rolestring?Role (default: researcher)
contextstring?Additional context for the sub-agent
backgroundbool?Run in background

Limit: Nesting depth (max_depth).

question

parallel-safe

Ask the human operator a question and wait for the answer. Use ONLY when genuinely blocked. Max 500 chars.

ParameterTypeDescription
questionstringQuestion to ask

Returns: The operator’s answer text.

skill

parallel-safe

Load the full instructions of a skill by name. Skills are reusable playbooks from ~/.fathom/skills.

ParameterTypeDescription
namestringSkill name

Returns: Skill instructions as text.

scratchpad

Context-dependent

Shared session ledger for coordination between agents. Actions: read (return current content), append (add one line). Prevents duplicate work across parallel agents.

ParameterTypeDescription
actionstringread | append
textstring?Text to append (required for append)

Returns: Current scratchpad content (for read) or confirmation (for append).

undoSequential

Undo recent file edits made during this session by rewinding to an earlier file-history checkpoint.

steps (usize?, default 1)

↩ Confirmation of the undo operation with list of reverted files

Semantic Memory

memory

Context-dependent

Manage persistent memory entries stored in MEMORY.md and USER.md under ~/.fathom/memory/. Actions: add, replace, remove, or batch.

ParameterTypeDescription
actionstringadd | replace | remove | batch
targetstring?memory or user (default: memory)
contentstring?Content for add or replace
old_textstring?Existing text for replace or remove
operationsarray?Batch of add, replace, or remove operations when action is batch

Returns: Memory entries or operation result.

memory_absorb

Sequential

Store one or more facts into long-term semantic memory. Facts are deduplicated, reconciled, and near-duplicates consolidated. Secrets are rejected automatically.

ParameterTypeDescription
factsarrayArray of fact objects
sourcestring?Source attribution

Returns: Absorb report (created, duplicates, superseded counts).

memory_search

parallel-safe

Search long-term semantic memory. Combines vector similarity with keyword (BM25) matching and recency decay.

ParameterTypeDescription
querystringSearch query
limitu32?Max results (default 5)
min_scoref32?Min similarity score (default 0.25)

Returns: Ranked memories with scores.

memory_digest

parallel-safe

Load a deterministic context digest from long-term memory for a topic: most relevant memories, open TODOs, recently added facts.

ParameterTypeDescription
topicstringTopic to get digest for

Returns: Formatted digest text for system prompt injection.

memory_boost

Sequential

Raise (or lower) the importance of a stored memory. Importance influences ranking under tight score margins and future digests.

ParameterTypeDescription
idstringMemory entry ID
deltaf32?Importance delta (default 0.1, range -1.0 to 1.0)

Returns: Updated memory with new importance.

memory_link

Sequential

Add a typed edge between two stored memories. Edge types: related_to, supersedes, contradicts, implements, extends, references.

ParameterTypeDescription
fromstringSource memory ID
tostringTarget memory ID
edge_typestring?Edge type (default: related_to)
reasonstring?Reason for the link

Returns: Created edge confirmation.

memory_graph

Context-dependent

Entity knowledge graph for persons, companies, and locations. Stores entities and typed relations; answers multi-hop queries.

ParameterTypeDescription
actionstringadd | query | list
entitiesarray?Entities to add/query
relationsarray?Relations to add
namestring?Entity name to query
entity_typestring?person | company | location
depthu32?Query depth for multi-hop

Returns: Entities and relations matching the query.

Parallelism Safety

Tools are classified for smart parallelism:

ClassToolsBehavior
parallel-safeweb_search, web_fetch, web_crawl, web_feed, file_read, glob, grep, code_symbols, repo_map, parse_html, extract_json, pdf_extract, analyze_image, verify_email, suggest_emails, verify_phone, verify_social_profile, enrich_company, enrich_person, extract_contacts, search_business_directory, search_social, search_news, parse_corporate_site, find_leads, git_status, git_diff, git_log, browser_navigate, browser_screenshot, browser_extract, memory_search, memory_digest, lsp, question, skillCan execute in parallel
Sequentialfile_write, file_edit, shell, python_exec, node_exec, browser_click, browser_type, git_add, git_commit, git_push, spawn_agent, save_contacts, memory_absorb, memory_boost, memory_link, undoExecute sequentially (exclusive access)
Context-dependentmemory (file-backed), memory_graph, scratchpadContext-dependent; file-memory writes are sequential

Path-overlap detection: Two file tools targeting the same path are automatically serialized.

Search Backends

Seven search backends are supported. Each is configured via [search.*] sub-sections in config.toml.

BackendAPI FormatKey Required
linkupLinkup Search APIYes
exaExa Neural Search APIYes
tavilyTavily Search APIYes
serperSerper (Google) APIYes
braveBrave Search APIYes
parallelParallel.ai Search APIYes
duckduckgoDuckDuckGo Instant AnswerNo

Hybrid & Smart Modes

hybrid

Tries configured backends in order (linkup → exa → tavily → serper → brave → parallel → duckduckgo). Returns results from the first backend that responds.

smart

Queries all configured backends in parallel, then ranks combined results using reciprocal rank fusion.