Computer use in opencode, Gemini CLI and other MCP clients on the Mac

opencode and Gemini CLI have no built-in tool for desktop apps. What each client includes, how its MCP support works, what to check before adding computer use, and how agents get Mac apps.

By Paul Kasten · Updated

Short answer: opencode has no built-in computer use: its tools cover files, the shell and the web. Gemini CLI has a browser agent for Chrome, off by default, but nothing for desktop apps. Both support local MCP servers, as do Zed and the GitHub Copilot CLI, so a computer use MCP server gives any of them tools to see a Mac app window, click, type and choose menu items. ShadowCursor is such a server; in these clients you add it once as a local server, using the command its setup shows.

What each client has built in

Every client below can run local MCP servers over stdio, which is what a computer use server on your Mac needs. They differ in what they ship themselves and in how they treat tool calls. As documented in October 2026:

ClientBuilt-in GUI or browser toolsWhere MCP servers are configuredApproval of MCP tool calls
opencodeNone: bash, edit, read, grep, glob, LSP, web fetch and searchmcp in opencode.jsonPermission rules per tool: allow, ask or deny; most default to allow
Gemini CLIA browser agent for Chrome, disabled by defaultmcpServers in settings.json, or gemini mcp addConfirmation dialog unless the server is marked trusted
ZedNone documented for desktop appsSettings > AI > MCP Servers, stored under context_serversConfirms every tool action by default
GitHub Copilot CLINone documented for desktop apps/mcp add, stored in ~/.copilot/mcp-config.jsonNot described on its MCP page

Sources: opencode tools, opencode MCP servers, opencode permissions, Gemini CLI MCP servers, Gemini CLI subagents, Zed MCP, Copilot CLI MCP servers.

opencode

opencode adds MCP tools "alongside built-in tools" as soon as a server is configured, and you can refer to a server by name in your prompt. Points worth knowing for a computer use server:

  • Tool names carry the server name as a prefix, so you can enable or disable one server's tools with a single glob, globally or per agent. Turning a server on only for one agent keeps it out of the others' context.
  • Context cost. opencode warns that every MCP server adds to the context. ShadowCursor alone adds 14 tools; keep other large servers off when you do not need them.
  • Startup timeout. opencode waits 5 seconds by default for a server to list its tools, configurable per server.
  • Approvals. opencode's permissions resolve to allow, ask or deny, and most default to allow. Its permissions page documents rules for the built-in tools but does not describe ask rules for MCP tools, so check in your version whether you can make opencode ask before each click. opencode --auto approves every request that is not explicitly denied.
  • Images. The MCP page does not say whether screenshots returned by a tool reach the model. Test it with your model before relying on it.

Gemini CLI

Gemini CLI's own browser agent automates Chrome (version 144 or later) through a bundled Chrome DevTools MCP server. It is off until you enable it, asks for consent on first use and stays inside the browser. For anything outside Chrome, add an MCP server:

  • Adding a server. gemini mcp add <name> <command> writes to .gemini/settings.json in the project by default; use --scope user for ~/.gemini/settings.json. /mcp shows connected servers and their tools.
  • Images work. Gemini CLI documents that MCP tools can return text, images and other content in one result, and passes it to the model. That is what a computer use server needs.
  • Confirmations. Tool calls ask for confirmation unless you mark the server as trusted with --trust, which bypasses all of its confirmations. For a server that clicks in your apps, keep confirmations on at first.
  • Allow and exclude lists. mcp.allowed and mcp.excluded in settings.json control which servers may connect at all; includeTools and excludeTools narrow one server's tools.
  • Timeouts. The default request timeout is 10 minutes.
  • Sandboxing. If you run Gemini CLI in a sandbox, a local server's executable has to be reachable from inside it; Gemini CLI's troubleshooting section covers this.

Zed and the GitHub Copilot CLI

Zed's own agent uses MCP servers configured in Zed and supports MCP tools and prompts. You add a local server under Settings > AI > MCP Servers. By default Zed asks before running any tool action, including MCP tool calls, and you can set rules per tool with keys of the form mcp:<server>:<tool_name>. Zed's MCP page does not say whether image results reach the model.

GitHub Copilot CLI adds servers with /mcp add and makes them available without a restart. Organizations can limit which servers run through an allowlist. If you also use Copilot in VS Code, see VS Code and GitHub Copilot computer use.

What to check before adding computer use to a client

A computer use server works differently from most MCP servers: every step returns a screenshot, and the agent acts on what it sees.

  1. The model must accept images. Pick a model with image input in your client, or the agent works blind and has only accessibility elements.
  2. The client must pass images on. Gemini CLI documents it; for other clients, test with one screenshot first.
  3. Decide on approvals. Asking before every click is safe but slow; trusting all tools is fast but means the agent acts unchecked. A sensible start is confirmations on, loosened later for a narrow, repeated task.
  4. Keep the tool list lean. Disable servers you do not need for the task.

For what separates good computer use servers from weak ones, see computer use MCP servers for the Mac.

ShadowCursor in these clients

ShadowCursor is a Mac app and MCP server that gives each connected agent a full set of its own:

  • Its own cursor, drawn on screen in the agent's color with a name tag.
  • Its own keyboard. Keys arrive only in the agent's window, in one app.
  • Its own clipboard. Copy and paste never touch your clipboard or another agent's.
  • Its own windows. The agent works in background windows, even when yours cover them, and screenshots capture only the window it works in.

Every action returns the window's new state, a screenshot plus accessibility elements, so the agent sees the result of each step and can target buttons and fields by index. Several agents can work at once, each with its own cursor: opencode, Gemini CLI and Claude Code can each operate a different app side by side. Input moves like a person, with curved pointer paths and typing at about 200 words per minute. It runs locally and needs macOS 15 Sequoia or later.

Setup

ShadowCursor connects Claude, Codex, Cursor and VS Code with one click. opencode, Gemini CLI, Zed and the Copilot CLI are not among them, so for these you add it once yourself:

  1. Open ShadowCursor and allow Accessibility and Screen Recording when your Mac asks.
  2. Open Set up manually in ShadowCursor's setup. It shows the command that starts ShadowCursor's MCP server.
  3. Add that command as a local (stdio) MCP server in your client, through its MCP settings or its mcp add command, under a name such as shadowcursor.
  4. Start a new session and check that the tools are listed, for example with /mcp in Gemini CLI or the Copilot CLI.
  5. Ask for a task in an app and name the app.

Limits to know

  • Minimized and hidden windows cannot be seen or operated. Covered windows can.
  • System drag and drop of files, tabs or text follows the real mouse, so ShadowCursor cancels such drags instead of dropping.
  • Hover without a pressed button works in Safari, not in Chrome or Electron apps.
  • An agent cannot use a background tab of your browser window; it opens its own window.
  • LibreOffice ignores posted clicks; its menus and keyboard work.
  • ShadowCursor is a paid app: a 7-day free trial without a card, then $12.99 per month or $69.99 per year, with unlimited agents on up to three devices.

FAQ

Does opencode have computer use?

No. opencode's built-in tools work on files, the shell and the web. It supports MCP servers, so a computer use MCP server adds tools to operate Mac apps.

Does Gemini CLI have computer use?

It has a browser agent that automates Chrome, disabled by default. It has no tool for desktop apps. A computer use MCP server adds that, and Gemini CLI passes returned screenshots to the model.

Which models work for computer use in opencode?

Pick a model that accepts images, because the agent reads screenshots. Along with each screenshot, ShadowCursor returns the window's accessibility elements.

Can opencode and Claude Code operate apps at the same time?

Yes, with ShadowCursor. Each agent connects on its own and gets its own cursor, keyboard and clipboard. See running several AI agents at once.

Is there a free option?

Open-source computer use MCP servers exist. Many drive the real pointer, and some work in the background; check each one's README. ShadowCursor has a 7-day free trial and no free tier.