computer-use

computer-use is a skill for Claude Code, Codex from MemTensor/memmy-agent. It costs 37 tokens per session (3,805 once invoked), scanned A, original, MIT.

A guide for choosing and carrying out live tasks on macOS or Windows 11 using a browser, desktop controls, or a structured connector.

In plain words
What is it for?
It is for tasks such as using a live website or desktop app, handling downloads, and inspecting the result after an action.
Why use it?
It keeps information retrieval separate from screen actions and helps the agent choose the right way to interact with the target application.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It is for tasks such as using a live website or desktop app, handling downloads, and inspecting the result after an action.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/memtensor/memmy-agent/computer-use
About the project

Memmy is a local memory hub that gives multiple AI agents one shared, persistent context about their user. It helps people continue work across agents such as Claude Code, Codex, OpenClaw, and Hermes Agent. The catalogue entries are skills for using Memmy with supported agents.

MemTensor/memmy-agent · 2,117 stars · on GitHub · memmy.bot

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add MemTensor/memmy-agent --skill computer-use
Clone the repo
git clone --depth 1 https://github.com/MemTensor/memmy-agent

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for computer-use

README.md
[![agentmods](https://agentmods.dev/badge/skills/memtensor/memmy-agent/computer-use/github.svg)](https://agentmods.dev/skills/memtensor/memmy-agent/computer-use)
Your own site
<a href="https://agentmods.dev/skills/memtensor/memmy-agent/computer-use"><img src="https://agentmods.dev/badge/skills/memtensor/memmy-agent/computer-use/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for computer-use

Your own site · 80×15
<a href="https://agentmods.dev/skills/memtensor/memmy-agent/computer-use"><img src="https://agentmods.dev/badge/skills/memtensor/memmy-agent/computer-use.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 37 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,805 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00037 $0.03805
Opus 5.5 $0.00015 $0.01522
Sonnet 5.5 $0.00007 $0.00761
Haiku 4.5 $0.00004 $0.00380

Measured today against content hash 70a6b3acde24, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

computer-use scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

App/memmy-agent/src/skills/computer-use/SKILL.md · 46 lines

How it starts

The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Computer Use

Use the user's requested outcome to choose and complete the necessary steps. Retrieve required information through the relevant authorized sources, use the available tools, and inspect the result before reporting completion. Ask only for a required value or choice that remains missing after discovery, an access grant the tools actually lack, or help with an observed obstacle that supported recovery cannot resolve. Use the live target application when its UI matters. A screenshot shows state; browser and desktop tools execute actions. Installed Chrome/Edge extensions connect ordinary web tabs automatically; the user names the browser, page, or task and does not need to name an extension or provide an internal tab reference.

Choose the surface

  • Execute directly when the task already provides the required file, save location, credentials, verification code or choice. Use known upload paths and target; for downloads triggered in an existing in-app/managed tab, pass the exact new-file downloadPath. For Chrome/Edge, use Computer Use to fill its normal Save As automatically with the known path, or move a reliably identified completed download. Do not ask the user to repeat known information, change browser-wide settings, or guess the completed file. Ask only for missing required information or a step you cannot actually complete.
  • Choose and combine interfaces according to the task, current connections, target state, expected reliability and cost. Connected browser tools expose page structure and precise element targeting in the existing account; Computer Use works with rendered controls, browser chrome and system dialogs; APIs/connectors provide structured service access; web_search/web_fetch retrieve public information. These capabilities inform the choice at each step; reassess from observed results as the task proceeds. Preserve the browser, account and page the task refers to. For a named Chrome/Edge, first use browser_list_tabs with targetBrowser: it can wake the explicitly requested running browser and await a live extension handshake without navigation, including when protected installation metadata cannot be read. Confirmed missing or disabled extensions block automatic recovery; unknown metadata does not grant installation or enablement. Its connectionStatus distinguishes installed/enabled/running/connected, and null is unknown. Suggest installation only when extensionSetup.installRequired confirms absence; disconnection alone does not establish missing or disabled installation. If recovery does not connect, continue with an available method that preserves the target. Resolve needed inputs from authorized sources or the secure input form instead of asking the user to choose an execution method.
  • When using browser tools such as browser_navigate, browser_snapshot, browser_find, browser_click and browser_type, target elements using current DOM or accessibility references. Use browser_take_screenshot when rendered appearance matters or the DOM is incomplete. Website access approval is scoped to an origin: Allow once lasts for the current browser session, while a saved decision persists for that origin. The Computer Use allow-all or Website permissions allow-all setting permits site operations across origins. These grants determine reachable targets; the user's task determines the actions to perform.
  • When using browser tools for a webpage in Chrome or Edge, first call browser_list_tabs with targetBrowser set to chrome or edge. Resolve the requested tab by its title or URL; use the active tab only when the user means the current page. Call browser_snapshot with that same targetBrowser and the returned exact tabMention. After the first successful browser call, keep targetBrowser and omit tabMention to continue the same tab, including after navigation changes its title or URL. Resolve references internally; never ask the user to copy an internal reference. Ask which page only when multiple tabs match the request. A connected browser can have no controllable tabs: inspect the returned tab statuses and report the specific connection, attachment, or protected-page limitation. Do not treat a connected socket as proof a tab is controllable. If a tab status says the user stopped Memmy by closing the browser's debugging bar, report that and stop working in that browser for this turn. Do not substitute a managed browser for the user's Chrome or Edge; it lacks their signed-in session.
  • One chat can work with several Memmy, Chrome and Edge tabs at once, for example to compare pages. Pass a tab's tabMention (and targetBrowser when changing browsers) to switch at any time; omit it to continue the tab used last. When a click opens a new Chrome/Edge tab, call browser_list_tabs and pass the new tab's tabMention to continue there. browser_navigate with newTab: true keeps the current page open; in Chrome/Edge the new tab opens in the background and the result returns its tabMention. A tab is unavailable only while another chat is still working in it. To show a tab to the user, such as returning to search results, call browser_select_tab; it is more reliable than clicking the tab strip. browser_press_key reaches only the page and cannot switch tabs or go Back.
  • Choose the execution path yourself from the current tools and observations. Browser tools provide DOM/page targeting; native Computer Use operates the browser window and its visible controls. Either may complete a page step, and one task may combine or switch between them while preserving the target and permissions. When the user explicitly names a method, use it where it supports the step and mention any necessary change of method.
  • Use browser_list_tabs to inspect open tabs, their count, and the selected tab; set targetBrowser to memmy for Memmy in-app tabs or the requested Chrome/Edge browser. It reads the live tab list without opening or navigating a page. Controllable web tabs have exact references; an in-app about:blank tab has a null reference and cannot be addressed by browser actions. Do not infer a total from one page snapshot.
  • Use browser_history only to find a previously visited Memmy in-app page when the current request needs it. Supply a keyword and an ISO 8601 time range of at most 30 days; keep each query bounded to the requested lookup. The desktop checks the effective Computer Use or website allow-all setting and otherwise asks for the history read. A denial ends the history lookup. This tool does not read Chrome, Edge, other browser profiles, or Computer History.
  • Use browser_auth_request for supported credential or verification fields on the selected page. Inspect the current origin, visible enabled field metadata, exact selectors, optional iframe chain and submit control. Pass known values in provided_values keyed by field id and a known method in selected_option; only missing required values or an unresolved choice need the secure form. Obtain required values through task-relevant sources and tools the user has authorized; use the information available before requesting it again. Keep retrieval scoped to that task and account. Do not request secrets in chat, inspect existing secret field values, echo them in messages or artifacts, or enter them through ordinary typing/CDP calls. The specialized tool redacts supplied values from history and returns status only. After submission, explicitly navigate to the retained origin and inspect the new document for the expected result; submitted alone proves no account or page outcome.
  • browser_site_permission configures a device grant for the selected page: pass its canonical origin, permission (camera or microphone), and allow, plus targetBrowser/tabMention when needed. Use the site and device required by the current task. In Memmy and managed Chromium a grant (lasts: "task") covers only this task's tab or context and that origin and never changes the user's saved site settings; it ends with the task, or when an in-app tab leaves that origin, so grant it again if it is needed later. Computer Use and website allow-all never turn on a device. granted or revoked reports the configured permission, not a successful camera/microphone action. For requires_browser_ui, use Computer Use on that same browser to complete its ordinary site permission prompt or setting with the task's required choice, then inspect the page result. Request help only when required access or a usable device is actually unavailable or supported recovery cannot complete the step.
  • Use browser_cdp_read for supported reads on the currently selected Memmy in-app tab or a user-connected Chrome/Edge tab when a normal browser snapshot is insufficient. Its Runtime.evaluate enforces CDP side-effect checks. Use browser_cdp_events to capture a cursor before an action and read bounded events afterward; timeoutMs waits up to 30 seconds for matching events. browser_cdp_send can change the page or browser state and requires the Debug / CDP site's high-risk permission. It rejects protected methods; explicit destination URLs need separate site access. Computer Use or website allow-all satisfies the site and Debug / CDP gates across origins; otherwise the saved site rule applies, with a desktop prompt when it requires approval. A declined or unavailable grant is a real access limit; report the affected operation without bypassing it through another executor. For an attached iframe, use its sessionId or targetId from Target.attachedToTarget events; child targets must belong to the selected tab. These tools do not control a global browser or target the separate managed Playwright session. Tell the user about lasting changes made through CDP.
  • If the user includes a plugin://browser@memmy?mention=tab-v1... link copied from an in-app tab, pass the complete link as tabMention on the first browser tool call. Memmy checks the browser session, tab ID, title, and URL against the currently open page. If the reference is stale, tell the user the tab is unavailable; do not pick another tab or open a replacement.
  • Agent-created in-app tabs close at the end of the turn. Set tabDisposition to deliverable on a browser call when the page is a user-facing result, or handoff when work should continue there in a later turn. An unmarked tab is temporary. Tabs opened by the user remain open.
  • For a native macOS app, use the managed memmy_computer_use tools. Call get_app_state for the target app before its first action in each assistant turn. Use a fresh element_index when the accessibility tree exposes the control, otherwise screenshot coordinates: click x and y are pixels of the screenshot in the tool result (Screenshot: WIDTHxHEIGHT), not window points. Action results include refreshed state and say what happened, such as an unchanged window, a change only in the screenshot (a menu or popup the tree does not show), a newly opened window to observe by window_id, or a dialog that closed after its command. A background window draws no text cursor or focus ring, so a click that only places the cursor shows no change. type_text types keystrokes into the current focus; paste: true enters the text through the app's paste command, which reaches canvases that drop background keystrokes, such as a PowerPoint slide. Some apps redraw a background window late, so observe again before retyping text that seems missing. A slide placeholder takes text after click_count: 2. macOS app shortcuts use cmd, not ctrl (for example cmd+2).
  • For a native Windows 11 app, use the same managed memmy_computer_use tools. list_apps lists running apps with top-level windows; it does not include recent apps. get_app_state needs a signed-in, unlocked desktop; it accepts an installed app name and opens the app from its Start menu entry when it is not running or has no window. Call it before the first action on that app in every assistant turn. Background input uses UI Automation first, then window messages. Window messages do not reach Chromium pages, carry text only into native edit controls, and carry no modifier shortcuts, so documents such as Word's, web page fields and shortcuts such as ctrl+n take foreground: true on click, type_text or press_key: that input is sent for real while the window is briefly in front, then the user's window comes back (a click also moves the pointer and back). sky_click and global are unsupported. Inspect the refreshed post-action state before continuing or claiming success.
  • For cells of any workbook already open in Microsoft Excel, prefer excel_live. Memmy asks the user for Excel access in the app when needed, and one grant applies to all workbooks without a task pane, add-in store login, or per-file activation. Call status first to obtain current workbook IDs and the active workbook. Pass the exact target's workbook ID for reads and writes; writes require it. Multiple workbooks can remain open. Do not guess a workbook from its filename, activate another workbook, or open a file implicitly. If they attached a file and did not mean an open workbook, edit the attached file and return it. When a result includes connectionSetup, mention its reason once in a short sentence in the user's language and include connectionSetup.settingsLink as a Markdown link, such as [开启 Excel 连接](memmy://settings/excel) or [检查 Excel 连接授权](memmy://settings/excel). Do not repeat internal enabled / configured / setupCompleted fields or give a menu walkthrough. Excel being closed or having no workbook does not mean its connection needs enabling. If the user declines access, do not ask again or suggest changing the decision in the same turn. If system permission is denied, include the authorization link and end this turn; do not use shell, GUI, or another executor as a permission fallback. A write that is cancelled, times out or fails may still have been applied; read the range before writing it again.
  • Use list_apps to discover an app only when its name or identifier cannot be resolved directly. It does not report the current state of a window. If multiple Windows processes match a name, choose only after their stable identity is clear; do not guess from a window title.

Read the full file on GitHub · 46 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 46 lines · 37 tokens per session scan A 70a6b3acde24

Subscribe to this mod's changes

computer-use is a skill published in the GitHub repository MemTensor/memmy-agent (2,117 stars, last pushed yesterday), licensed MIT. It adds 37 tokens to every session and 3,805 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-20.

Related

Other skills, from other repositories

browserwing-executor

Control browser automation through HTTP API. Supports page navigation, element interaction (click, type, select), data extraction, accessibility snapshot analysis, screenshot, JavaScript execution, and batch operations.

MemTensor/MemOS · 42 tokens

dev-browser

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website"…

MemTensor/MemOS · 84 tokens

computer-use

Read and drive native desktop apps through the accessibility layer — list apps, snapshot a window as a numbered element tree, then click/type/scroll/drag by element index or screen coordinates. Use for a desktop app, not a web page. macOS + Windows; off unless enabled in Settings.

kirodotdev/KiroCrew · 62 tokens

agent-initialization

Initialize or extend an Agent from a user requirement - write AGENTS.md, set identity metadata, and create, install or import Skills and hook packages (scripts the harness runs on every prompt, before tool calls, or after a task). For an Agent with an in-app workbench, pair with penguin-plugin; for a standalone…

Prism-Shadow/penguin-harness · 79 tokens

browser-automation

Drive the PenguinHarness agent browser — the desktop app's built-in browser or the user's own Chrome — from the shell with penguin browser: open pages, read them as simplified HTML or text, act with JavaScript and trusted clicks and typing, and pull structured data out of them (orders, search results, tables), signed…

Prism-Shadow/penguin-harness · 0 tokens

browserwing-admin

Manage and operate BrowserWing — an intelligent browser automation platform. Install dependencies, configure LLM, create/manage/execute automation scripts, use AI-driven exploration to generate scripts, browse the script marketplace, and troubleshoot issues.

MemTensor/MemOS · 47 tokens