OpenWalrusOpenWalrus

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.

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

On this page