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.
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.
npx skills add MemTensor/memmy-agent --skill computer-usegit clone --depth 1 https://github.com/MemTensor/memmy-agentWrote 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.
[](https://agentmods.dev/skills/memtensor/memmy-agent/computer-use)<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.
<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>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.
| Model | Per session | Once 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 |
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.
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
pathsandtarget; for downloads triggered in an existing in-app/managed tab, pass the exact new-filedownloadPath. 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_fetchretrieve 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 usebrowser_list_tabswithtargetBrowser: 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. ItsconnectionStatusdistinguishes installed/enabled/running/connected, and null is unknown. Suggest installation only whenextensionSetup.installRequiredconfirms 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_clickandbrowser_type, target elements using current DOM or accessibility references. Usebrowser_take_screenshotwhen 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_tabswithtargetBrowserset tochromeoredge. Resolve the requested tab by its title or URL; use the active tab only when the user means the current page. Callbrowser_snapshotwith that sametargetBrowserand the returned exacttabMention. After the first successful browser call, keeptargetBrowserand omittabMentionto 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(andtargetBrowserwhen changing browsers) to switch at any time; omit it to continue the tab used last. When a click opens a new Chrome/Edge tab, callbrowser_list_tabsand pass the new tab'stabMentionto continue there.browser_navigatewithnewTab: truekeeps the current page open; in Chrome/Edge the new tab opens in the background and the result returns itstabMention. 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, callbrowser_select_tab; it is more reliable than clicking the tab strip.browser_press_keyreaches 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_tabsto inspect open tabs, their count, and the selected tab; settargetBrowsertomemmyfor 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-appabout:blanktab has a null reference and cannot be addressed by browser actions. Do not infer a total from one page snapshot. - Use
browser_historyonly 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_requestfor 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 inprovided_valueskeyed by field id and a known method inselected_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;submittedalone proves no account or page outcome. browser_site_permissionconfigures a device grant for the selected page: pass its canonicalorigin,permission(cameraormicrophone), andallow, plustargetBrowser/tabMentionwhen 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.grantedorrevokedreports the configured permission, not a successful camera/microphone action. Forrequires_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_readfor supported reads on the currently selected Memmy in-app tab or a user-connected Chrome/Edge tab when a normal browser snapshot is insufficient. ItsRuntime.evaluateenforces CDP side-effect checks. Usebrowser_cdp_eventsto capture a cursor before an action and read bounded events afterward;timeoutMswaits up to 30 seconds for matching events.browser_cdp_sendcan 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 itssessionIdortargetIdfromTarget.attachedToTargetevents; 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 astabMentionon 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
tabDispositiontodeliverableon a browser call when the page is a user-facing result, orhandoffwhen 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_usetools. Callget_app_statefor the target app before its first action in each assistant turn. Use a freshelement_indexwhen the accessibility tree exposes the control, otherwise screenshot coordinates: clickxandyare 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 bywindow_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_texttypes keystrokes into the current focus;paste: trueenters 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 afterclick_count: 2. macOS app shortcuts usecmd, notctrl(for examplecmd+2). - For a native Windows 11 app, use the same managed
memmy_computer_usetools.list_appslists running apps with top-level windows; it does not include recent apps.get_app_stateneeds 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 asctrl+ntakeforeground: trueonclick,type_textorpress_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_clickandglobalare 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. Callstatusfirst to obtain current workbook IDs and the active workbook. Pass the exact target'sworkbookID 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 includesconnectionSetup, mention its reason once in a short sentence in the user's language and includeconnectionSetup.settingsLinkas a Markdown link, such as[开启 Excel 连接](memmy://settings/excel)or[检查 Excel 连接授权](memmy://settings/excel). Do not repeat internalenabled/configured/setupCompletedfields 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_appsto 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.
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.
- today First seen · 46 lines · 37 tokens per session scan A 70a6b3acde24
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.
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.
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"…
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.
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…
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…
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.