An Omni.Tool for file operations scoped to a base directory.
Provides read, write, patch, list, and delete commands over a configurable directory. Configuration controls whether writes are allowed and whether subdirectories are supported.
# Full read-write access with nested subdirectories
tool = Omni.Tools.Files.new(base_dir: "/data/workspace")
# Read-only access, flat (no subdirectories)
tool = Omni.Tools.Files.new(base_dir: "/data/docs", read_only: true, nested: false)The tool delegates all operations to Omni.Tools.Files.FS, which
can also be used independently of the tool machinery.
REPL integration
When using both Files and REPL tools together, the
Omni.Tools.Repl.Extensions.Files extension lets agent code in
the sandbox read and write files directly — without a separate tool
use round-trip. See that module's docs for setup.
Options
:base_dir(required) — absolute path to an existing directory.:read_only— restricts toreadandlistonly. Defaultfalse.:nested— allows subdirectory paths in ids. Defaulttrue.
Summary
Functions
Builds a %Omni.Tool{} struct with a bound handler.