shell
Execute shell commands within the sandboxed workspace environment.The shell command to execute. Runs with
sh -c on Unix or cmd /C on Windows.Optional working directory where the command should run. Must be within the workspace boundary.
Maximum time to wait for the command to complete (1-300 seconds)
Whether the command succeeded (exit code 0)
The command exit code
Standard output from the command
Standard error from the command
Formatted summary of the command output
Example
file
Read, write, or list files within the workspace directory. All paths are restricted to the workspace boundary.The file operation:
"read", "write", or "list"The file or directory path. Relative paths are resolved from the workspace root. Absolute paths are accepted only if they fall within the workspace.
Content to write to the file (required for write operation)
For write operations: create parent directories if they don’t exist
Whether the operation succeeded
The operation performed
The file/directory path
File content (for read operations)
Directory entries (for list operations). Each entry has name, entry_type (“file”, “directory”, or “other”), and size in bytes.
Error message if the operation failed
Example: Read a file
Example: Write a file
Example: List directory
Identity files (SOUL.md, IDENTITY.md, USER.md) are readable but cannot be modified through file operations. Symlinks within the workspace are blocked for security.
exec
Run subprocesses with full control over arguments and environment variables. Sandboxed to the workspace directory.The program or binary to execute (e.g., “cargo”, “python”, “node”)
Arguments to pass to the program (array of strings)
Optional working directory for the execution. Must be within the workspace.
Environment variables to set. Each entry has
key and value fields.Blocked variables (for security): LD_PRELOAD, LD_LIBRARY_PATH, DYLD_INSERT_LIBRARIES, DYLD_LIBRARY_PATH, PYTHONPATH, PYTHONSTARTUP, NODE_OPTIONS, RUBYOPT, PERL5OPT, PERL5LIB, BASH_ENV, ENVMaximum time to wait (1-300 seconds)
Whether the execution succeeded
The exit code
Standard output
Standard error
Formatted summary of the output
Example
browser
Browser automation via headless Chrome. Supports navigation, element interaction, screenshots, and page observation using an accessibility-tree based reference system.The browser action to perform:
"launch": Start the browser (required before other actions)"navigate": Navigate to a URL"open": Open a new tab"tabs": List all open tabs"focus": Switch to a tab by target ID"close_tab": Close a tab"snapshot": Get accessibility tree with element references"act": Interact with an element"screenshot": Capture a screenshot"evaluate": Run JavaScript (if enabled)"content": Get page HTML"close": Shut down the browser
URL for navigate/open actions. Must be http or https. Private/loopback IPs and cloud metadata endpoints are blocked for security.
Tab target ID for focus/close_tab actions
Element reference from snapshot (e.g., “e3”) for act/screenshot actions
Kind of interaction for the act action:
"click": Click an element"type": Type text into an element"press_key": Press a keyboard key (e.g., “Enter”, “Tab”)"hover": Hover over an element"scroll_into_view": Scroll element into viewport"focus": Focus an element
Text to type for act:type
Key to press for act:press_key (e.g., “Enter”, “Tab”, “Escape”)
Take full-page screenshot instead of viewport only
JavaScript expression to evaluate (requires evaluate_enabled in config)
Whether the action succeeded
Human-readable result message
Page title (when available)
Current URL (when available)
Snapshot data from accessibility tree. Each element has ref_id, role, name, description, and value.
List of open tabs with target_id, title, url, and active status
Path to saved screenshot file
JavaScript evaluation result
Page HTML content (truncated if >100KB)
Example: Navigate and interact
set_status
Update your worker status to give the channel visibility into your progress. Status appears in the channel’s status block.A concise status message describing your current progress (1-2 sentences). Maximum 256 characters.
Whether the status was set
Your worker ID
The status that was set (may be truncated)
Example
Use
set_status periodically during long-running tasks so the user knows you’re making progress.read_skill
Read the full content of an installed skill. Useful for accessing skill instructions, examples, and bundled resources.Name of the skill to read
The full skill content with variables resolved
The skill’s base directory path
Example
web_search
Search the web using Brave Search API. Returns relevant results with titles, URLs, and descriptions.The search query
Number of results to return (1-20)
Time filter:
"day", "week", "month", "year"Country code for localized results (e.g., “us”, “uk”, “de”)
Array of search results with title, url, description, and published_time
Requires
brave_search_key configured in your agent’s config. Get a free API key at https://brave.com/search/api/Example
email_search
Search email messages via IMAP. Returns matching messages with headers and content.Search query (IMAP SEARCH syntax)
Email folder to search
Maximum number of results to return
Array of email messages with subject, from, date, and body
Requires email configuration (IMAP host, credentials) in messaging.email config section.
Example
Related Tools
- Channel Tools - reply, branch, spawn_worker, route, send_file
- Memory Tools - memory_save, memory_recall (branch only)
- System Tools - task management, worker inspection