Cua Driver supports local model inference through any agent harness that speaks Anthropic’s API format. The tested architecture uses Ollama or llama.cpp as the inference server, Claude Code as the agent harness, and a small MCP tool filter that reduces context cost before the model sees the tool catalog. This page covers both serving paths, context budget considerations, and notes on Apple Silicon and MLX models.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/trycua/cua/llms.txt
Use this file to discover all available pages before exploring further.
Architecture overview
Local computer use involves three components:tools/list response so the model sees only the tools your task needs.
This is a tested configuration for Meta’s Muse Glimmer 30B on macOS with Apple Silicon. It is not a compatibility claim for every local model or inference server.
Context budget considerations
Local models pay a context cost for every exposed tool schema, every screenshot, and every accessibility tree read. The 54 tools in Cua Driver’s full catalog add significant token overhead. Key rules for keeping context under control:- Expose only the tools the task needs. A Calculator task needs
launch_app,get_window_state,click,type_text, andpress_key— not the full catalog. - Bound accessibility reads. Use
max_elements=25andmax_depth=3for routine window-state reads. Increase them only when a specific task requires deeper inspection. - Request window state instead of desktop state when the target window is already known.
- Batch deterministic text entry. One
type_textaction can replace several inference turns when the input is known in advance. - Use a context window of at least 64K. Computer-use tasks with screenshots and accessibility trees consume context quickly. The tested configuration uses 128K.
Install the MCP schema filter
The filter interceptstools/list responses and returns only the tools you name. Install it:
muse-cua-mcp.json in your working directory:
--allow list to the minimum set of tools your task requires.
Path 1: Ollama on Apple Silicon
Ollama serves local models through an Anthropic-compatible API. Pull the official Muse Glimmer MLX model:muse-cua-mcp.json, launch Claude Code:
muse-glimmer:30b-mlx model has a 128K context window, supports images, and supports tool calling. --bare avoids loading unrelated project instructions. --tools "" removes Claude Code’s built-in tools, keeping only the filtered Cua Driver tools.
Path 2: llama.cpp with an Unsloth GGUF
llama.cpp gives you direct control over inference settings. This path uses Unsloth’s quantized GGUF variant of Muse Glimmer 30B and matches the configuration used for the recorded macOS runs. Start the llama.cpp server in a separate terminal:127.0.0.1.
Wait for the server to finish loading, then verify it is healthy:
muse-cua-mcp.json, start Claude Code pointed at the local server:
MLX models on Apple Silicon
Ollama’smuse-glimmer:30b-mlx variant uses Apple’s MLX framework for native Silicon acceleration. If you want to serve a custom MLX model through a different harness, any server that exposes an Anthropic-compatible /v1/messages endpoint and supports multimodal inputs and tool calls will work with the same filter and Claude Code configuration.
Run a bounded smoke task
Start with a short task that has an observable outcome:Troubleshooting
Claude Code sees the full Cua Driver tool catalog
Claude Code sees the full Cua Driver tool catalog
Confirm the session uses both
--strict-mcp-config and the filtered muse-cua-mcp.json. A global Cua Driver registration can load alongside the filtered server if --strict-mcp-config is missing.The model stops after a few actions
The model stops after a few actions
Reduce
max_elements and max_depth, remove unused tools, and shorten the task. With Ollama, confirm the selected model has at least a 64K context window. If llama.cpp reports a smaller usable context than expected, restart with a --ctx-size value the machine can hold reliably.Screenshots do not reach the model
Screenshots do not reach the model
Use a real MCP connection. Shell wrappers that flatten MCP image blocks into text remove the visual input that a multimodal model needs for pixel grounding.
macOS reports missing permissions
macOS reports missing permissions
Run
cua-driver permissions status on the machine being operated. Grant Accessibility and Screen Recording to the Cua Driver identity using cua-driver permissions grant.