Skip to content

Releases: munimtechnologies/munim-computer-use

v0.4.3

Choose a tag to compare

@sheehanmunim sheehanmunim released this 22 Sep 19:19

Parallel browser tasks

Separate tasks — separate agent threads, separate MCP processes — can now use the browser at the same time through one Chrome extension without touching each other's tabs. (#6)

  • Every MCP process shares the extension, on every platform. The first server owns it and later servers go through it, each with its own tab group. When the owner exits another takes over, and nobody's tabs close.
  • session_id on every browser_* tool (optional). Several tasks inside one MCP process each get their own tabs, tab group and cleanup. Pass a stable id per task; omit it for the process's default session.
  • Cleanup is scoped. browser_close_all_tabs closes only the calling task's tabs; a process exiting closes only its own sessions.

Fixed

  • Third MCP process hung (macOS). The bridge owner served peer processes one at a time on its accept loop, so a third server waited forever behind the second.
  • Owner exit closed everyone's tabs. The extension closed every client's tabs whenever the native host dropped. It now keeps them and reconnects with backoff.
  • Two agents could adopt the same tab. browser_use_tab checked ownership before an await; simultaneous claims could both succeed.
  • One browser user at a time (Windows/Linux). The Rust host now implements the same owner + peer protocol as the macOS host.

Notes

  • 30 tools; 12 browser tools gained session_id. Chrome extension 0.4.3 — reload it in chrome://extensions (or load it unpacked again from chrome-extension/).
  • Tasks still share Chrome's cookies and logins; desktop apps and the clipboard are not per-task.

v0.4.2

Choose a tag to compare

@sheehanmunim sheehanmunim released this 22 Sep 03:08

Fixed

  • Browser bridge re-election (macOS). A server that started while another instance owned bridge.sock attached to it as an RPC client and stayed an orphan after that owner exited: nothing re-bound the socket, Chrome's native host could not connect, and every browser_* tool reported the extension as disconnected until the server was restarted. The bridge now re-runs the owner election when the RPC link drops and before each call while unowned. (#5)
  • Bridge retry (Linux/Windows). The Rust host gave up on the browser bridge for good when another server owned it at startup; it now retries every two seconds in the background and takes over once that owner exits.

Notes

  • No tool changes (30 tools). Chrome extension unchanged (0.4.0).
  • If the "MT Code Desktop Control" extension is missing from chrome://extensions after an app update, load it unpacked again from chrome-extension/; the manifest key keeps the extension id stable from any path.

v0.4.1 — remote control

Choose a tag to compare

@sheehanmunim sheehanmunim released this 20 Sep 01:36

Remote control

COMPUTER_USE_REMOTE_CONTROL=1 turns one process into a remote-desktop
driver: click, right_click, drag, hover and scroll move the machine's
real cursor, and type_text / press_key go to whatever is focused — the way
Chrome Remote Desktop or Screen Sharing behave.

Everything else is unchanged. Without the flag this server still keeps its
hands off the pointer: coordinate clicks are routed to one window, keystrokes
are posted to one process, and an untargetable action is refused rather than
taking over the machine, so an agent can work while you keep using your
computer. A host that runs both an agent and a viewer runs them as two
processes.

  • scroll now takes optional x/y, so the wheel acts over the point the
    viewer scrolled at (remote control only; ignored otherwise).
  • The agent-cursor overlay stays hidden in remote control — there is one
    pointer now, and it is the real one.

v0.4.0

Choose a tag to compare

@sheehanmunim sheehanmunim released this 19 Sep 07:28

Works alongside you

On macOS the server no longer moves your real pointer or posts to the global event stream. Clicks, typing, scrolling, dragging and hovering go through accessibility actions or events sent to the target app, so you can keep using your Mac while the agent works through its own cursor overlay. Windows keeps the real pointer out of the way where UI Automation or window messages allow it, and says so in the result when it cannot. Linux still uses the real pointer.

New

  • clipboard_read and clipboard_write on every platform (30 tools).
  • MCP protocol negotiation up to 2025-11-25, with server instructions, tool titles, and serverInfo.title / websiteUrl.
  • Embedding: apps that ship the binary can run it under their own identity (--profile / COMPUTER_USE_PROFILE, or per-field env overrides) for the bridge socket, support dir, agent cursor, history dir and native-messaging hosts; new identity and install-native-host subcommands. The Chrome extension can be built for another host name with scripts/build-extension.mjs, and picks up per-client group colours and a favicon badge.
  • Release assets now include Linux x64/arm64 binaries and the packaged Chrome extension.

Fixes

  • npm launcher: COMPUTER_USE_BINARY works on platforms without a prebuilt binary (Linux), downloads time out, and installs are atomic.
  • Windows press_key sends real virtual keys: pageup, f1–f12 and friends are no longer typed as text. macOS keys follow the active keyboard layout; punctuation, numpad and F13+ names were added everywhere.
  • macOS clamps scroll amounts and get_app_state limits like the Rust server, and answers malformed JSON with a -32700 error instead of silence.
  • The Swift and Rust servers now list tools in the same order, and CI checks their definitions stay identical.

Other

  • CI builds and tests on Linux, Windows and macOS; mcp-publisher is pinned and checksummed.
  • interprocess 2.4.4, uiautomation 0.25.1.

v0.3.1

Choose a tag to compare

@sheehanmunim sheehanmunim released this 16 Sep 01:39

Tool definitions written for agents

Glama's Tool Definition Quality review of 0.3.0 made the same three points about nearly every tool: descriptions did not say when to pick this tool over a similar one, did not disclose side effects, and the input schemas had no per-parameter descriptions. 0.3.1 fixes all three across the 28 tools, on both native hosts.

  • Every description now states the tool's purpose, when to use it and which tool to use instead (click vs browser_click, type_text vs set_value, screenshot vs get_app_state vs zoom, ...), and what it changes — focus, unsaved page state, which tab the user's Chrome window shows.
  • Every parameter carries a description with its default and the mutual-exclusion rules (element_id vs x/y, index vs x/y, app vs display).
  • Every tool declares MCP annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
  • browser_select_tab now says plainly that it changes which tab the user's window shows, because the agent's tab group lives in that window.

No behaviour changes; the tool names and argument shapes are unchanged from 0.3.0. Glama's review moved from B (3.3/5) to A (4.5/5).

Also in this release: the Rust server now builds on Linux (two compile errors in the AT-SPI/X11 backend had never been exercised), and a Dockerfile builds it headless so registries can introspect the tool list.

Install

npx -y munim-computer-use@0.3.1

The macOS binary is a signed universal build (arm64 + x86_64, Developer ID, hardened runtime). Verify downloads against SHA256SUMS.txt.

v0.3.0 — munim-computer-use

Choose a tag to compare

@sheehanmunim sheehanmunim released this 12 Sep 22:04

Drive a tab the user already has open

The extension could only work in tabs it created. That is the right default — the user keeps browsing while a task runs — but it is the wrong answer when the page is already signed in or mid-flow: a checkout, a draft, a dashboard behind SSO. Re-opening the URL throws that state away.

New tools

  • browser_use_tab — adopt a tab the user already has open. Adoption is in place: the tab is not moved into the agent's group, not activated and not reloaded, so a user looking straight at it sees nothing move. Background interaction over the DevTools protocol is what makes this useful at all.
  • browser_release_tab — hand the tab back early, detaching the debugger and restoring the favicon.
  • browser_list_tabs gains all=true, listing every tab in the browser with its ownership.

An adopted tab stays the user's: cleanup releases it rather than closing it, and browser_close_tab releases it too. Chrome's own pages are refused up front, since the debugger cannot attach to them.

Tool count moves 26 → 28 on both native hosts.

Install

npx -y munim-computer-use@0.3.0

The macOS binary is a signed universal build (arm64 + x86_64, Developer ID, hardened runtime). Verify downloads against SHA256SUMS.txt.

v0.2.0 — munim-computer-use

Choose a tag to compare

@sheehanmunim sheehanmunim released this 10 Sep 22:54

The server is now called munim-computer-use everywhere: the repo, the binary, the release assets and the npm bin all use the same name. Behaviour is unchanged from v0.1.0 — this release exists so the artifacts match the name.

Renamed

  • munim-computer-use-macos-universal.zip — macOS 14+, Apple silicon and Intel, Developer ID signed. Unzip, chmod +x munim-computer-use, move it onto your PATH, then run munim-computer-use request-permissions once.
  • munim-computer-use-windows-x64.zip — Windows 10/11 x64. Unzip and put munim-computer-use.exe on your PATH.
  • Linux: build from source (cd windows-linux && cargo build --release → target/release/munim-computer-use).

Register

claude mcp add munim-computer-use -- /usr/local/bin/munim-computer-use

See the README for Codex and Cursor.

Upgrading from v0.1.0
The old computer-use binary keeps working; nothing in the protocol changed. To switch, drop the new binary on your PATH and update your MCP client entry to the new path. macOS Accessibility and Screen Recording approvals are keyed to the binary, so the new one has to be approved once. The agent pointer's bundle id and the Chrome native-messaging host were deliberately left alone, so the Chrome extension needs no reinstall.

Checksums in SHA256SUMS.txt.

Computer Use 0.1.0

Choose a tag to compare

@sheehanmunim sheehanmunim released this 05 Sep 12:40

First public release of the Computer Use MCP server.

Downloads

  • computer-use-macos-universal.zip — macOS 14+, Apple silicon and Intel, Developer ID signed. Unzip, chmod +x computer-use, move it onto your PATH, then run computer-use request-permissions once.
  • computer-use-windows-x64.zip — Windows 10/11 x64. Unzip and put computer-use.exe on your PATH.
  • Linux: build from source (cd windows-linux && cargo build --release).

What is in it

  • 26 tools with identical schemas on every platform: accessibility-tree perception with element ids, background input that leaves your mouse alone, agent pointer overlay, zoom, hover, wait, get_app_state label queries, screenshots that carry their screen-coordinate mapping, and browser_* tools for your signed-in Chrome via the extension.

Register

claude mcp add computer-use -- /usr/local/bin/computer-use

See the README for Codex and Cursor.

Checksums in SHA256SUMS.txt.