Built-in Tools
Filesystem, shell, and web tools — read, write, edit, bash, web_search, and web_fetch available to every agent.
OpenWalrus gives agents access to your filesystem, shell, and the web through six built-in tools. Access can be controlled via the permission layer.
Tools
read
Read the contents of a file:
{
"name": "read",
"parameters": {
"path": "src/main.rs"
}
}Returns the file content as a string. Paths are relative to the work directory.
write
Write content to a file:
{
"name": "write",
"parameters": {
"path": "output.txt",
"content": "Hello from OpenWalrus"
}
}Creates the file if it doesn't exist, or overwrites it. Creates parent directories automatically.
edit
Replace a unique string occurrence in a file:
{
"name": "edit",
"parameters": {
"path": "src/main.rs",
"old_string": "let x = 1;",
"new_string": "let x = 2;"
}
}Fails if old_string is not found or appears more than once. Use this for surgical edits instead of rewriting entire files with write.
bash
Execute a shell command:
{
"name": "bash",
"parameters": {
"command": "ls",
"args": ["-la"]
}
}Commands run with a 30-second timeout.
web_search
Search the web using multiple engines with consensus-based ranking:
{
"name": "web_search",
"parameters": {
"query": "rust error handling best practices",
"max_results": 5
}
}Queries DuckDuckGo and Wikipedia in parallel, deduplicates by URL, and ranks results by cross-engine agreement. max_results is optional (default: 10). No API keys required.
web_fetch
Fetch a web page and return its clean text content:
{
"name": "web_fetch",
"parameters": {
"url": "https://doc.rust-lang.org/book/ch09-00-error-handling.html"
}
}Strips scripts, styles, navigation, and other noise. Returns the page title, final URL, content length, and extracted text. Useful for reading pages found via web_search.
Registration
Filesystem and shell tools (read, write, edit, bash) are registered by OsHook through the hook system. Web tools (web_search, web_fetch) are registered by the search module. All six are available to every agent by default, unless restricted by permissions.
What's next
- Permissions — control tool access with allow/ask/deny
- Skills — extend agents with community-contributed skills
- Hooks — how tools are registered and dispatched
- Built-in web search — design post on the meta search engine