# Cherry Computer

Drive native apps via Computer Use: open, inspect, type, click, screenshot.

- Repository: https://github.com/CherryHQ/cherry-studio (53164 stars)
- Category: Engineering
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add CherryHQ/cherry-studio --skill cherry-computer -g -a claude-code -y`
Codex: `npx skills add CherryHQ/cherry-studio --skill cherry-computer -g -a codex -y`
Cursor: `npx skills add CherryHQ/cherry-studio --skill cherry-computer -g -a cursor -y`
Gemini CLI: `npx skills add CherryHQ/cherry-studio --skill cherry-computer -g -a gemini-cli -y`

## Description

Drive native apps via Computer Use: open, inspect, type, click, screenshot. Needs OS permissions; respect user stop.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Cherry Computer

Use the live Automation REPL (`automation_repl` in chat, `automation` server's `js`
in Agent sessions; runtime names may differ). Code Mode is not required. The REPL
provides standard JS and enabled Browser/Computer capabilities, not Node modules,
filesystem access, subprocesses, fetch or timers. A skill cannot grant permission.

Exact methods, inputs, outputs and platform limits are defined in [API reference](references/api.md).
The runtime emits this same reference on first binding and through `documentation()`.

## Bind, act, observe

1. For a known application, the first cell only binds it, for example
   `var app = await computer.getApp('Calculator')`. Read the emitted API documentation
   and initial AX state before acting. Use `computer.listApps()` for unknown or
   ambiguous targets, and print its result to choose an explicit identity.
2. Follow the live platform capabilities. macOS with the matching SDK can launch an
   installed app; other platforms may require it to be running. An unavailable window
   is not a ready input target. Report unsupported launch without a shell workaround.
3. Prefer observed AX refs. Request a screenshot when AX is insufficient. Coordinates
   require a fresh screenshot and its coordinate system; never guess refs or locations.
4. Batch only already-determined actions, then request the observation needed for the
   next decision. Actions invalidate element/coordinate refs; application-directed
   keyboard input can continue while the host validates the same target window.
5. Verify the final result through fresh AX state or a screenshot before reporting
   success. Observation methods emit automatically; do not print their result again.

The rest: https://github.com/CherryHQ/cherry-studio/blob/HEAD/resources/skills/cherry-computer/SKILL.md
