An Omni.Tool for executing Elixir code in a sandboxed peer node.
Each invocation runs in a fresh Erlang peer node with a clean slate. IO output is captured and returned alongside the expression result.
tool = Omni.Tools.Repl.new()
tool = Omni.Tools.Repl.new(timeout: 30_000, max_output: 10_000)Extensions
Extensions inject code and/or documentation into the sandbox. Pass
module-based extensions as {module, opts} tuples, or use inline
extensions via Omni.Tools.Repl.Extension.new/1.
alias Omni.Tools.Repl.Extension
tool = Omni.Tools.Repl.new(
extensions: [
{MyApp.ReplExtension, api_key: "sk-..."},
Extension.new(description: "Req and Jason are available.")
]
)See Omni.Tools.Repl.Extension for the full extension API.
Options
:timeout— execution timeout in milliseconds. Default60_000.:max_output— output truncation limit in bytes. Default50_000.:extensions— list of extensions (module tuples or%Extension{}).
Summary
Functions
Builds a %Omni.Tool{} struct with a bound handler.