Request and response plugins that transform, enrich, or repair data as it flows through the gateway.
Plugins are gateway-level middleware that augment a request as it flows through OpenDunes.
Available now: Web Search. On the API, add the web plugin to a request or the :online suffix to a model — it travels to the model as you send it. In the chat, turn it on for a conversation from the composer's Tools menu; it stays with that conversation. When on, fresh real-time web results are appended to your prompt before the model answers.
Server tools give the model new capabilities it can invoke autonomously. Plugins are transparent to the model — they transform data before it arrives or after it leaves, without the model knowing they ran.
| Server tools | Plugins | |
|---|---|---|
| Model aware | Yes (tool calls) | No (transparent) |
| Runs when | Model decides | Every request |
| Typical use | Capability extension | Data transformation, safety, reliability |
Plugins are enabled per-request via the plugins array:
{
"model": "meta-llama/llama-4-maverick",
"messages": [{ "role": "user", "content": "..." }],
"plugins": [
{ "type": "opendunes.web_search" },
{ "type": "opendunes.response_healing" }
]
}Multiple plugins run in the order listed. Request plugins run before the model; response plugins run after.
| Plugin | Phase | Description |
|---|---|---|
| Web Search | Request | Inject search results into the prompt automatically |
| Response Healing | Response | Detect and repair malformed or truncated outputs |
When multiple plugins apply to the same phase, they run in array order. A request plugin that modifies the prompt will affect all subsequent request plugins and the model itself.
Each plugin that performs a billable operation (e.g., a search call, an additional model invocation) adds to the per-request cost. Plugins that only transform data in memory (e.g., format validation) have no additional charge. Plugin costs are itemized in your usage breakdown alongside token costs.