Skip to content

Tools & Toolsets

Tools are the atomic actions EdgeCrab can perform. They are organized into toolsets (named groups) and activated via aliases in config or CLI.


Terminal window
edgecrab --toolset coding "implement the feature"
edgecrab --toolset file,terminal "run tests"
edgecrab --toolset all "maximum capability"
edgecrab --toolset minimal "safe mode"
tools:
enabled_toolsets: # only these toolsets active (null = all)
- coding
- memory
disabled_toolsets: # remove from enabled set
- browser

Define your own toolset alias in config:

tools:
custom_groups:
my-research:
- web_search
- web_extract
- read_file

Then use --toolset my-research on the CLI.


AliasExpands to
corefile + meta + scheduling + delegation + code_execution + session + mcp + browser
codingfile + terminal + search (search_files) + code_execution
researchweb + browser + vision
debuggingterminal + web + file
safeweb + vision + image_gen + moa
minimalfile + terminal
data_genfile + terminal + web + code_execution
allevery tool (no filtering)

ToolDescription
read_fileRead file contents with optional start_line/end_line range
write_fileWrite or overwrite a file (creates parent dirs automatically)
patchApply a unified diff patch to a file
search_filesRegex or glob search across a directory tree
ToolDescription
terminalRun a shell command, return stdout/stderr and exit code
run_processStart a background process, returns a process ID
list_processesList all background processes started this session
kill_processSend SIGTERM/SIGKILL to a background process
get_process_outputRead stdout/stderr from a running background process
wait_for_processBlock until a background process exits
write_stdinSend bytes to a process’s stdin
ToolDescription
web_searchSearch DuckDuckGo, returns structured results
web_extractFetch a URL and extract readable text (readability algorithm)
web_crawlRecursively crawl a site up to a specified depth
ToolDescription
browser_navigateNavigate to a URL in a CDP-connected Chrome instance
browser_snapshotGet page accessibility tree as structured text
browser_screenshotTake a full-page or viewport screenshot
browser_clickClick an element by CSS selector or text
browser_typeType text into a focused input
browser_scrollScroll the page in any direction
browser_consoleReturn buffered console.log/warn/error messages
browser_backNavigate back in browser history
browser_pressPress a keyboard key (Enter, Tab, Escape, etc.)
browser_closeClose the browser and release CDP connection
browser_get_imagesReturn base64-encoded images currently visible
browser_visionScreenshot + analyze with vision model
ToolDescription
memory_readRead a memory file from ~/.edgecrab/memories/
memory_writeWrite or update a memory file
honcho_concludeCommit a Honcho memory entry at end of session
honcho_searchSemantic search across Honcho user model
honcho_listList Honcho memory entries
honcho_removeRemove a specific Honcho entry
honcho_profileUpdate the Honcho user profile summary
honcho_contextRetrieve relevant Honcho context for current task
ToolDescription
skills_listList all installed skills
skills_categoriesList skill categories
skill_viewRead a skill’s SKILL.md content
skill_manageInstall/uninstall/update skills
skills_hubSearch and browse the public skills hub
ToolDescription
manage_todo_listCreate and manage a todo list for the current task
clarifyAsk the user a clarifying question before proceeding
ToolDescription
manage_cron_jobsCreate, list, enable, disable, and delete cron jobs
ToolDescription
delegate_taskSpawn a subagent to complete a parallel subtask
mixture_of_agentsRun a task through multiple models, synthesize consensus
ToolDescription
execute_codeExecute Python, Node.js, or Bash code in an isolated sandbox
ToolDescription
session_searchFull-text FTS5 search across all past session messages
ToolDescription
mcp_list_toolsList all tools exposed by connected MCP servers
mcp_call_toolCall a named tool on an MCP server
mcp_list_resourcesList resources from MCP servers
mcp_read_resourceRead a resource from an MCP server
mcp_list_promptsList prompts from MCP servers
mcp_get_promptRetrieve and expand an MCP prompt
ToolDescription
text_to_speechConvert text to audio (edge-tts, OpenAI, ElevenLabs)
vision_analyzeAnalyze an image file with the configured vision model
transcribe_audioTranscribe audio with Whisper (local) or Groq/OpenAI
generate_imageGenerate an image via DALL-E or compatible API
ToolDescription
checkpointCreate/list/restore/diff filesystem checkpoints

Some tools are always present in the toolset but silently unavailable if their runtime dependency is missing:

ToolGated by
browser_*Chrome/Chromium binary or CDP_URL env var
text_to_speechedge-tts binary, OpenAI key, or ElevenLabs key
transcribe_audiowhisper-rs or Groq/OpenAI key
generate_imageImage generation API key
ha_* (Home Assistant)HA_URL + HA_TOKEN env vars

When a gated tool is called without its dependency, EdgeCrab returns a structured error explaining what’s missing.


Set tools.tool_delay to add a pause between consecutive tool calls. Useful for rate-limited APIs:

tools:
tool_delay: 2.0 # 2 seconds between tool calls
parallel_execution: false # disable parallel calls for strict ordering

Terminal window
edgecrab tools list # all registered tools
edgecrab tools show file_read # schema + description for one tool
edgecrab tools toolsets # toolset aliases and their expansions

Inside a session:

/tools # show currently active tools

Use the minimal toolset for sensitive work. --toolset minimal gives the agent only file and terminal. No web access, no browser. Useful when you want full control over what the agent can reach.

Add --toolset coding for most development tasks. This is the sweet spot: file read/write, terminal, file search, and code execution — everything for typical dev work without browser or web tools.

Create project-specific toolset aliases. Add to config.yaml:

tools:
custom_groups:
backend-dev:
- read_file
- write_file
- patch
- terminal
- session_search
docs-review:
- read_file
- web_search
- vision_analyze

Then edgecrab --toolset backend-dev "add tests".


Q: I want the agent to use the terminal but NOT the web. Which toolset?

Terminal window
edgecrab --toolset file,terminal "run tests and fix failures"

Or define a custom group in config.yaml with exactly the tools you need.

Q: How do I know which tools the agent actually called?

Watch the tool call indicators in the TUI. For a complete log, use:

Terminal window
edgecrab sessions show <id>

This shows every tool call and result from the full session history.

Q: The browser tools aren’t working. What’s missing?

EdgeCrab needs Chrome or Chromium to be installed, or a CDP_URL pointing to an existing Chrome instance. Check with edgecrab doctor — it reports browser availability.

Q: Can I write custom tools in Rust?

Yes, via the tool registry. Implement the Tool trait in a custom crate and register with inventory::submit!. See Architecture and Contributing for details.

Q: The mcp_* tools show as available but don’t work.

Add MCP server configuration to config.yaml:

mcp_servers:
my-server:
command: ["npx", "-y", "@my-org/my-mcp-server"]
env:
MY_KEY: "${MY_KEY}"

Then restart EdgeCrab. Run edgecrab tools list to confirm the MCP tools are visible.