Agent Desktop
superagent-ai/grok-cli
Use the built-in Computer sub-agent with agent-desktop for macOS desktop automation.
Drive a macOS app through the computer tool — read its accessibility tree, act on elements, and use real input only when the tree cannot reach the target.
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kunpengtalk/PeakCode computer-use --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .claude/skills/computer-use && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .claude/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-useType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kunpengtalk/PeakCode computer-use --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .agents/skills/computer-use && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .agents/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kunpengtalk/PeakCode computer-use --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .cursor/skills/computer-use && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .cursor/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kunpengtalk/PeakCode.git --path plugins/computer-use/skills/computer-use--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kunpengtalk/PeakCode computer-use --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .gemini/skills/computer-use && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .gemini/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kunpengtalk/PeakCode computer-useInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .github/skills/computer-use && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .github/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunpengtalk/PeakCode --skill computer-use -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kunpengtalk/PeakCode computer-use --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunpengtalk/PeakCode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/computer-use/skills/computer-use .opencode/skills/computer-use && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "computer-use" agent skill from https://github.com/kunpengtalk/PeakCode/tree/main/plugins/computer-use/skills/computer-use into .opencode/skills/computer-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "computer-use", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
computer-useDrive a macOS app through the computer tool — read its accessibility tree, act on elements, and use real input only when the tree cannot reach the target.
Computer Use is an agent skill from kunpengtalk/PeakCode. Drive a macOS app through the computer tool — read its accessibility tree, act on elements, and use real input only when the tree cannot reach the target.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Desktop control and Accessibility. It works with macOS. The repository describes itself as: 一个基于PiAgent的简约AI 编程工具。支持任务看板,AI自驱开发、Goal目标、实时流式传输、内置 Git、本地优先、保护隐私。 The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d827a8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Computer Use loads about 2.5k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 1,533 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from kunpengtalk/PeakCode at commit d827a8f, republished under its MIT licence (© kunpengtalk). 1,533 words, ~2,457 tokens.
.claude/skills/computer-use/SKILL.md (or your agent's skills folder).The computer tool drives apps on this Mac through a native helper. It is how you do work
that lives in a GUI and nowhere else: a dialog with no CLI, a form in a native app, a
preference toggle, confirming what an app actually shows.
In order:
cp, not a Finder drag.browser tool, if the work is in a web page. It has element refs and a visible
pane the user can watch.computer.Skipping to step 4 for something 1–3 could do is slower, more brittle, and it moves the user's cursor around while they are trying to work.
Observe once, act once, observe again. Never chain GUI actions blind.
action: "list_apps" — what is running. Apps are matched by the name the user would say
or by bundle id, so ask for "Finder" even on a system that calls it 访达.action: "get_state" with that app — returns the accessibility tree of the window in
front, with a numbered ref for each element, its position and size, and the actions it
actually supports.action: "act" with a ref from that tree.Two other reads, for when the tree is not the right lens:
action: "list_windows" — every on-screen window with its id, app, title and bounds. Use it
to find a window that is not the front one (a sheet, a popover, a background window) and to
capture it with screenshot + window_id. Its bounds are already in screen points.action: "displays" — the displays and their scale factors. This is the coordinate space
itself: on a second monitor the same pixel is a different point, and this is where that is
written down.get_state also reports a state_id. Pass it back with the ref — a ref is only meaningful
for the observation it came from, and a ref from an older one is refused on purpose. The
element behind it may be a different control by now. Do not retry a refused ref; take a
fresh get_state.
state_id: s3
访达 (pid 2390) — 180 elements
[0] Window "Downloads" @(120,60) 1280x800
[1] Button "名称" @(213,140) 1313x28 [press]
[4] TextField "" @(20,80) 400x24 value="" [set_value]
[9] Checkbox "保持文件夹在顶部" @(220,300) 16x16 [press][press] and [set_value] are the actions that element supports — use act with
element_action: "press" or "set_value" accordingly. [disabled] means it cannot be acted
on right now.
The default scope is the focused window. scope: "all" reads every window of the app, which
is much larger — use it only when you need to find something you were not told the location
of. A tree can also come back marked partial: it stopped early because the app stopped
answering accessibility, or because it hit the element ceiling. Do not conclude that a
control is missing just because it is not listed.
An element action is almost always the right move. It is precise, it survives the window moving, and it does not disturb the user: no pointer movement, no focus change.
press — buttons, checkboxes, menu items, anything with [press].set_value — text fields and other value-carrying controls. This writes the value
directly, so the field does not need to be focused first. Prefer it over type for a
field you can address.focus / raise — give an element keyboard focus, or bring its window forward.action: "scroll" with a direction (down reveals what is further down) and an optional
amount, aimed with a point or an app name. Scroll before deciding something is not there:
a short list, a missing button and an empty panel are usually just content that has not been
brought into view, and a tree only ever describes what is visible.
A scroll at a point moves the pointer there first, because that is how the system routes wheel events. Aiming at an app's window (no point) is the gentler option; either way the user's pointer ends up somewhere they did not put it.
click, drag, scroll, type and key send real input. That means they move the
user's actual pointer and type into whatever currently holds their keyboard focus — anything
they were doing is interrupted. Use them only when the tree genuinely cannot express the
target: a canvas, a custom-drawn control, a slider or a reorder that has no accessibility
equivalent, a game.
Before using them, activate the app (open_app) so the input lands where you intend, and say
what you are doing. Keep it brief.
click — count: 2 double-clicks, button: "right" opens a context menu.drag — from one point to another in one gesture. The path matters: sliders, reorders,
selections and canvases all follow it, so do not fake a drag with two clicks. Add
modifiers: "cmd" for a modifier-held drag.type — strategy: "keys" (default) types each character; strategy: "paste" puts the text
on the clipboard and presses ⌘V. Use paste for long text and for Chinese, Japanese, Korean
or emoji: it is one gesture instead of hundreds of key events, and input methods cannot
reinterpret it. The clipboard is put back afterwards, so it does not cost the user anything —
but say that you are using it if the text is sensitive.key — one key or a chord, for example Enter, Escape, cmd+s, cmd+shift+n.Coordinates for click, drag and scroll are pixels read off your most recent screenshot
— pass the point you actually see, unchanged. That capture knows whether it was a window or the
whole display, where it started on screen, and what the display's scale is, so the conversion
to screen coordinates is already handled. A window capture's coordinates are therefore relative
to that window's image: after the window moves, take a new capture.
The clipboard is part of the desktop, so it is part of the tool:
action: "read_clipboard" — what the user (or the app they were just in) copied. This is
often the cheapest way to get text a GUI produced: a rendered table, a link, a path, an error
message. macOS may show its own paste notification the first time; that is the system's gate,
not something to work around.action: "write_clipboard" — put text there for an app that wants a paste. It replaces what
was there: say so, and prefer type when a paste is not what the app expects.The tool runs through a separate helper app, Peak Code Computer Use, and macOS files its grants against that helper rather than against Peak Code. It needs:
| What | Which permission | Where the user grants it |
|---|---|---|
| Reading and acting on controls | Accessibility | System Settings → Privacy & Security → Accessibility |
screenshot | Screen Recording | System Settings → Privacy & Security → Screen Recording |
action: "status" reports both. If something is missing, action: "request_access" asks
macOS to show its own prompt — but the prompt is only a shortcut, and the user still has to
switch it on themselves. Granting it once is enough and it survives later rebuilds of Peak
Code, because the grant is pinned to the helper's own identity rather than to the app.
When a call comes back saying a permission is missing: tell the user which one, and stop.
Do not retry it, do not look for another way to do the same thing, and never try to grant it
yourself — no tccutil, no editing a database, no sudo. That is the user's decision. The
same goes for a macOS permission dialog that appears mid-task: report it, do not click
through it for them.
act result is a receipt, not a conclusion.@(x,y) WxH is already screen points — click the middle of it rather than converting
anything.Say so plainly, and offer the alternative, when:
browser tool;Computer use is genuinely useful and genuinely limited. Being straight about which one you are looking at is more helpful than a confident attempt that leaves the desktop in a strange state.
© kunpengtalk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/computer-use/skills/computer-use of kunpengtalk/PeakCode.
Open the folder on GitHubat commit d827a8f
Computer Use next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Computer Use this skillkunpengtalk/PeakCode | 166 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Agent Desktopsuperagent-ai/grok-cli | 3.5k | — | ~720 | Automated safety check: Pass | MIT | |
| Cmux Cuamanaflow-ai/cmux | 28k | — | ~4.5k | Automated safety check: Pass | Custom licence | |
| Mac Computer UseTo3akaRin/mac-computer-use | 1.1k | — | ~495 | Automated safety check: Pass | MIT | |
| Verify Reelrselbach/reel | 118 | — | ~2k | Automated safety check: Pass | Unlicense | |
| Steerdisler/mac-mini-agent | 272 | — | ~2.1k | Automated safety check: Pass | None |
superagent-ai/grok-cli
Use the built-in Computer sub-agent with agent-desktop for macOS desktop automation.
manaflow-ai/cmux
Use only after the user explicitly asks for cmux Computer Use through the cmux-cua skill: drive real macOS apps from a cmux agent session via the bundled engine (accessibility tree + screenshots…
To3akaRin/mac-computer-use
操作 macOS 桌面应用,探测窗口和自动化接口、截图、读取或修改辅助功能元素、执行鼠标键盘动作,以及通过 CDP 操作内嵌 Chromium 页面。适用于桌面应用自动化与界面验收;普通网页任务优先使用已有浏览器工具。
rselbach/reel
Verify Reel, the macOS menu-bar screen recorder, by launching a disposable app bundle and driving its real UI with Computer Use.
disler/mac-mini-agent
macOS GUI automation CLI. An agent skill from disler/mac-mini-agent.
AFK-surf/OpenBridge
Debug and validate OpenBridge on a real macOS desktop through mini-machine plus full VNC computer-use.
kunpengtalk/PeakCode
The browser decision policy: one numbered element table, one operation-plus-target decision per cycle, and the rules that keep long runs short.
kunpengtalk/PeakCode
Drive the in-app browser — open a page, read it as an accessibility tree, click, type, fill forms, screenshot, and verify what the page really shows.
Works with
Categories
Drive a macOS app through the computer tool — read its accessibility tree, act on elements, and use real input only when the tree cannot reach the target. Computer Use is an agent skill from kunpengtalk/PeakCode. Drive a macOS app through the computer tool — read its accessibility tree, act on elements, and use real input only when the tree cannot reach the target.
Computer Use fits situations like: tasks that involve Desktop control; tasks that involve Accessibility.
Run `npx skills add kunpengtalk/PeakCode --skill computer-use -a claude-code`. Or copy the skill folder (plugins/computer-use/skills/computer-use in kunpengtalk/PeakCode) into .claude/skills/computer-use in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kunpengtalk/PeakCode --skill computer-use -a codex`. Or copy the skill folder (plugins/computer-use/skills/computer-use in kunpengtalk/PeakCode) into .agents/skills/computer-use in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kunpengtalk/PeakCode --skill computer-use -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/computer-use, .gemini/skills/computer-use, .github/skills/computer-use and .opencode/skills/computer-use in your project.
SKILL.md names no scripts, command-line tools or credentials: Computer Use is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Computer Use is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Computer Use: Agent Desktop (superagent-ai/grok-cli, 3.5k stars), Cmux Cua (manaflow-ai/cmux, 28k stars), Mac Computer Use (To3akaRin/mac-computer-use, 1.1k stars) and Verify Reel (rselbach/reel, 118 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kunpengtalk (a GitHub organization) maintains it in kunpengtalk/PeakCode, which has 166 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 22, 2026.
Source: kunpengtalk/PeakCode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.