Capabilities

Tools & policy

Tools are registered through ToolContributor and executed through ToolExecutor. Providers only see ToolSpec schemas; the runtime owns policy checks, approval events, execution context, and result routing.

Built-in coding tools

  • read_file and list_files for scoped filesystem reads.
  • grep and glob for workspace discovery.
  • write_file, edit, and multi_edit for edit-oriented models.
  • apply_patch for patch-oriented models.
  • echo for deterministic tests and simple harness checks.

Process tools

  • exec_command starts an interactive command session and returns either output or a session id.
  • write_stdin sends input to an existing command session and polls recent output.
  • shell runs a single shell command and returns aggregated output.

Process tools honor the configured command shell and the current turn deadline. In eval-profile runs, long process timeouts are capped before the finalization reserve so the model can still write a final answer or scoreable output.

Tool allowlists

Distributions can narrow the advertised tool set with [tools].allowlist. The runtime filters tool specs before they are sent to the model, which is useful for headless task-specific builds that should not expose generic editing or shell tools.

[tools]
allowlist = ["zerolang_skills_get", "zerolang_check", "zerolang_edit"]

Extension tools

  • web_search from the web-search router extension.
  • task from the subagent extension, with optional per-agent namespaced tools.
  • zerolang_* graph-inspection and checked-edit tools from the Zerolang extension.
  • Provider or product-specific tools installed by custom extensions.

Policy modes

  • default - writes, process, and network are allowed subject to approval policy.
  • accept_edits - edit tools are auto-approved while other risky operations still pass through policy.
  • plan - blocks writes and process execution, requires user approval to exit.
  • bypass - auto-approves all tools and emits a bypass warning event.
cargo run -p roder-cli -- --mode plan
cargo run -p roder-cli -- --mode accept-edits
cargo run -p roder-cli -- --yolo
Edit-tool selection. Roder intentionally exposes either patch-style editing or direct edit tools for a model request, not both, to keep model behavior predictable.