Tools Reference
49 built-in tools available to agents. Each implements the Tool trait and auto-registers in the ToolRegistry.
Overview
Parallel Research 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-safeSearch the internet via the configured backend (Linkup/Exa/Tavily/Serper/Brave/Parallel/DuckDuckGo).
| Parameter | Type | Description |
|---|---|---|
query | string | Search query |
limit | u32 | Max results (default 10) |
Returns: List of results (title, URL, snippet).
web_fetch
Parallel-safeDownload a page and convert HTML to readable text.
| Parameter | Type | Description |
|---|---|---|
url | string | Page URL |
extract_text | bool | Extract text only (default true) |
Returns: Page text (truncated to 50K chars).
Files
file_read
Parallel-safeRead a file with optional partial reading support.
| Parameter | Type | Description |
|---|---|---|
path | string | File path |
offset | u32? | Start line |
limit | u32? | Number of lines |
Note: Tracks read files for read-before-write validation.
file_write
SequentialWrite a file (creates directories automatically).
| Parameter | Type | Description |
|---|---|---|
path | string | File path |
content | string | Content to write |
Note: Per-path locking, updates file history.
file_edit
SequentialFind/replace edit (surgical replacement).
| Parameter | Type | Description |
|---|---|---|
path | string | File path |
old_string | string | What to replace |
new_string | string | Replacement text |
Validation: read-before-write, staleness check, size guard.
glob
Parallel-safeSearch files by glob pattern.
| Parameter | Type | Description |
|---|---|---|
pattern | string | Glob pattern (e.g. **/*.rs) |
grep
Parallel-safeSearch file contents with regex. Uses ripgrep when available.
| Parameter | Type | Description |
|---|---|---|
pattern | string | Regex pattern |
path | string? | Search directory |
file_pattern | string? | File filter |
Shell
shell
SequentialExecute a bash command.
| Parameter | Type | Description |
|---|---|---|
command | string | Command to execute |
timeout | u64 | Timeout in seconds (default 120) |
Protection: Blocks destructive commands (rm -rf /, mkfs, fork bombs).
python_exec
SequentialExecute Python code.
| Parameter | Type | Description |
|---|---|---|
code | string | Python code |
timeout | u64? | Timeout |
node_exec
SequentialExecute Node.js code.
| Parameter | Type | Description |
|---|---|---|
code | string | JavaScript code |
timeout | u64? | Timeout |
Browser (CDP)
Requires Chrome running with --remote-debugging-port=9222. CDP availability is detected automatically.
browser_navigate
SequentialOpen a URL in the browser.
| Parameter | Type | Description |
|---|---|---|
url | string | URL to open |
browser_screenshot
SequentialTake a screenshot of the current page.
Returns: base64 image in metadata.base64.
browser_click
SequentialClick an element by CSS selector.
| Parameter | Type | Description |
|---|---|---|
selector | string | CSS selector |
browser_type
SequentialType text into an element.
| Parameter | Type | Description |
|---|---|---|
selector | string | CSS selector |
text | string | Text to enter |
browser_extract
SequentialExtract text content from page (with JS rendering).
Returns: Page text (truncated to 50K).
Vision
analyze_image
Parallel-safeAnalyze an image via vision model (Qwen 3.8).
| Parameter | Type | Description |
|---|---|---|
image | string | File path or image URL |
prompt | string? | What to analyze |
Config: PARALLEL_VISION_API_BASE, PARALLEL_VISION_API_KEY, PARALLEL_VISION_MODEL.
Git
git_status
Parallel-safeShow working tree status.
git_diff
Parallel-safeShow changes.
| Parameter | Type | Description |
|---|---|---|
staged | bool? | Staged changes only |
path | string? | Specific file |
git_log
Parallel-safeCommit history.
| Parameter | Type | Description |
|---|---|---|
limit | u32? | Max commits |
git_add
SequentialAdd files to staging.
| Parameter | Type | Description |
|---|---|---|
paths | string[] | Files to add |
git_commit
SequentialCreate a commit.
| Parameter | Type | Description |
|---|---|---|
message | string | Commit message |
git_push
SequentialPush to remote.
| Parameter | Type | Description |
|---|---|---|
remote | string? | Remote (default: origin) |
branch | string? | Branch name |
pdf_extract
Parallel-safeExtract text from a PDF file.
| Parameter | Type | Description |
|---|---|---|
path | string | PDF file path |
Returns: Text + page count. Supports ToUnicode CMaps, encryption (empty password).
OSINT / Lead Generation
extract_contacts
Parallel-safeExtract contacts from text, HTML, or URL.
| Parameter | Type | Description |
|---|---|---|
text | string? | Text to analyze |
html | string? | HTML to analyze |
url | string? | URL to download and analyze |
Returns: Emails, phones (E.164), social profiles, persons, companies — each with confidence and source.
find_leads
Parallel-safeHigh-level lead search. Orchestrates business directories → corporate sites → social networks → contact extraction → deduplication.
| Parameter | Type | Description |
|---|---|---|
industry | string? | Industry |
location | string? | Location |
company_size | string? | Company size |
role_titles | string[]? | Roles (CEO, CTO...) |
limit | u32? | Max leads |
search_business_directory
Parallel-safeSearch business directories (2GIS, Google Maps, Yandex Maps, Yellow Pages).
| Parameter | Type | Description |
|---|---|---|
query | string | What to search for |
city | string? | City |
Returns: Name, category, address, phone, website, email, rating.
search_social
Parallel-safeSearch people/companies on social networks (Twitter, Telegram, LinkedIn).
| Parameter | Type | Description |
|---|---|---|
query | string | Search query |
platform | string? | Specific platform |
parse_corporate_site
Parallel-safeParse corporate website: company info, team, contacts.
| Parameter | Type | Description |
|---|---|---|
url | string | Website URL |
Returns: Company name, description, industry, size, contacts, team page URL, social profiles.
search_news
Parallel-safeSearch news/mentions (Serper News or Google News RSS).
| Parameter | Type | Description |
|---|---|---|
query | string | Who/what to search |
limit | u32? | Max articles (default 10) |
Returns: Title, URL, source, date, snippet + extracted persons/companies.
Verification
verify_email
Parallel-safeVerify email: syntax, MX records, disposable, role-based checks.
| Parameter | Type | Description |
|---|---|---|
email | string | Email to verify |
Returns: is_valid_syntax, domain_exists, mx_records, is_disposable, is_role_based, confidence.
verify_phone
Parallel-safeValidate and normalize phone number (E.164).
| Parameter | Type | Description |
|---|---|---|
phone | string | Phone number |
Returns: Normalized (E.164), country_code, country_name, is_valid, is_mobile.
verify_social_profile
Parallel-safeCheck if a social media profile exists.
| Parameter | Type | Description |
|---|---|---|
url | string | Profile URL |
Returns: exists, platform, username, name, followers.
Enrichment
enrich_company
Parallel-safeEnrich company data.
| Parameter | Type | Description |
|---|---|---|
company_name | string | Company name |
website | string? | Website |
Returns: Industry, size, revenue, founded, headquarters, description, technologies.
enrich_person
Parallel-safeEnrich person data.
| Parameter | Type | Description |
|---|---|---|
name | string | Person name |
company | string? | Company |
Returns: Title, company, linkedin, twitter, email, phone, location, bio.
Meta
spawn_agent
SequentialLaunch a sub-agent for a sub-task.
| Parameter | Type | Description |
|---|---|---|
task | string | Task for the sub-agent |
role | string? | Role (default: researcher) |
Limit: Nesting depth (max_depth).
memory
SequentialManage agent memory (MEMORY.md / USER.md).
| Parameter | Type | Description |
|---|---|---|
action | string | add | replace | remove | batch |
target | string | memory | user |
content | string? | Content to write |
old_text | string? | For replace/remove |
operations | array? | For batch operations |
Parallelism Safety
Tools are classified for smart parallelism:
| Class | Tools | Behavior |
|---|---|---|
| Parallel-safe | web_search, web_fetch, file_read, glob, grep, pdf_extract, analyze_image, verify_*, enrich_*, search_*, extract_contacts, git_status, git_diff, git_log | Can execute in parallel |
| Sequential | file_write, file_edit, shell, python_exec, node_exec, browser_*, git_add, git_commit, git_push, spawn_agent, memory | Execute sequentially (exclusive access) |
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.
| Backend | API Format | Key Required |
|---|---|---|
linkup | Linkup Search API | Yes |
exa | Exa Neural Search API | Yes |
tavily | Tavily Search API | Yes |
serper | Serper (Google) API | Yes |
brave | Brave Search API | Yes |
parallel | Parallel Search API | Yes |
duckduckgo | DuckDuckGo Instant Answer | No |
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. Deduplicates results by URL, then ranks using reciprocal rank fusion for optimal relevance.