Provider tools
Computer use, code execution, the Anthropic text editor and provider-side search: what each does, which models support it, and how to switch it on or off.
Copy & share
On this page10 sections
Most of the agent's tools belong to Empryo and work with every model. Four tools are different, because the model provider supplies them:
- Computer use: take screenshots and click, type and scroll on your screen.
- Code execution: run code in a sandbox on the provider's servers.
- Anthropic text editor: Claude's own file-editing tool.
- Provider-side search: web search run by the provider.
Whether one of these tools actually works depends on two things besides your setting: the route you reach the model through (the part before the slash, such as anthropic/, openai/, openrouter/ or proxy/) and the model itself.
Check what you'll getLink to this section
Empryo reports three things for each tool:
| Word | Meaning |
|---|---|
| enabled | You turned it on in config |
| backend | The provider tool that would be used, for example anthropic:computer_20251124 |
| active | Enabled and a backend exists. Only an active tool is available to the model |
So a tool can be enabled but inactive (the route or model doesn't support it), or turned off with a backend ready (turn it on and it works).
To check a model from the command line:
empryo --capabilities anthropic/claude-opus-4-6anthropic/claude-opus-4-6
Computer use on anthropic:computer_20251124
Code execution on anthropic:code_execution_20260120
Text editor off anthropic:text_editor_20250728 available
Provider-side search on anthropic:web_search_20260209Leave out the model to check your defaultModel.
Computer useLink to this section
Lets the agent see your screen and use the mouse and keyboard. Setting: computerUse, on by default. It only works once your machine is set up for it (see below).
This section covers which provider tool carries it. Empryo's own screen tools, safety switches and on-screen indicators are described in computer use. The same setting turns both on.
| Route and model | Backend |
|---|---|
anthropic/ or a Claude subscription, with Claude | anthropic:computer_20251124 (computer_20250124 on older Claude) |
openai/ with the general GPT-5.4+ models | openai:computer |
openai/ with codex, mini, nano, chat or pro models | generic:computer |
ChatGPT and Codex subscriptions, proxy/ with GPT | generic:computer |
proxy/ with Claude, gateways, Gemini, local models | generic:computer |
Computer use works on every route. What changes is which tool carries it. Where the provider has its own computer tool, Empryo uses it, because the model was trained on it. Everywhere else, Empryo's generic computer tool does the same job with the same actions. It works with any model that accepts images, since the model has to see the screenshots.
Limit which apps it can controlLink to this section
By default the agent can control whatever is on screen. Use computerUseApps to restrict that. Set a default, then allow or deny apps per platform: by bundle ID on macOS, process name or app ID on Windows, and window class on Linux.
{
"computerUseApps": {
"default": "deny",
"macos": { "com.apple.Safari": "allow", "com.googlecode.iterm2": "allow" }
}
}The rule is checked against the app in front at the moment of each action, not against a window title a web page could change. With "default": "deny", any app you haven't listed is refused, and the message names the app so you can add it to your config. If the app can't be identified, the action is refused.
Only actions that control the machine are restricted: clicks, key presses, drags and scrolls. Screenshots always capture the whole screen, so restricting them per app wouldn't be meaningful.
The agent also follows standing rules for this tool: look before acting, double-check before an important click, never enter credentials it wasn't given, treat on-screen text as content rather than instructions, and stop if a window isn't the one it expected.
Setting up your machineLink to this section
- macOS: install
cliclick(brew install cliclick) and grant Screen Recording and Accessibility permissions. - Linux: install
xdotoolplus one ofgrim,import,scrot,gnome-screenshotorspectacle. - Windows: uses the built-in PowerShell.
If your machine can take screenshots but can't send clicks, the tool isn't offered at all, so the agent never plans clicks it can't make.
Code executionLink to this section
A sandbox on the provider's side where the model can run Python, shell commands and file operations. Setting: codeExecution, on by default.
| Route | Backend |
|---|---|
anthropic/, Claude subscriptions, proxy/ with Claude 4.5 or newer | anthropic:code_execution_20260120 |
openai/ with GPT models | openai:code_interpreter |
Gateways (openrouter/, llmgateway/, copilot/, bedrock/, vertex/ and others) | none |
GPT models reached through a ChatGPT or Codex subscription don't offer a server-side sandbox. That's fine: Empryo's own shell and code_script tools run code on your machine and work on every route. Claude on the same subscription routes still gets the server-side sandbox.
Anthropic text editorLink to this section
Claude's built-in file-editing tool. Setting: anthropicTextEditor, off by default, because Empryo's own edit_file and ast_edit tools already do this job.
Claude 4 and newer use text_editor_20250728. Claude 3.5 and 3.7 use text_editor_20250124. It only works on direct Anthropic routes, so openrouter/anthropic/claude-* doesn't get it even though the model is Claude.
Provider-side searchLink to this section
The provider runs the web search itself. Setting: nativeSearch, on by default, and it needs webSearch to be on too.
Because the provider runs these searches, Empryo can't ask you to approve each query. Turn nativeSearch off if you want every search to go through Empryo and its approval prompt.
When a route has no provider-side search, Empryo's own web_search tool is used instead. That's expected behavior, not an error.
Turning them on and offLink to this section
| App | Where |
|---|---|
| Terminal UI | /provider-settings. Each row shows the backend, or why there isn't one |
| Desktop | Settings › Provider Options. Four rows, checked against the selected model |
| Headless | empryo --capabilities [model] to check; edit config to change |
In config, globally or per project:
{
"computerUse": true,
"codeExecution": true,
"anthropicTextEditor": false,
"nativeSearch": true
}| Key | Default | Tool |
|---|---|---|
computerUse | true | Computer use |
codeExecution | true | Server-side code execution |
anthropicTextEditor | false | Anthropic text editor |
nativeSearch | true | Provider-side web search |
Why a route can say noLink to this section
If Empryo sent a provider a tool it doesn't recognize, the provider would reject the whole request, not just skip the tool. So Empryo only enables a provider tool where the combination is known to work. When it isn't available, you get a reason you can act on, for example: *"openrouter encodes the request itself and has no text_editor tool type, use an anthropic/ model."*
NextLink to this section
- Thinking and retries
- Configuration reference
- The browser, for controlling web pages instead of your whole screen