with one click
cua-driver
// Drive native macOS apps through DeepChat's plugin-provided Computer Use MCP tools. Use when the user asks to operate, inspect, automate, or perform a GUI task in a real macOS application.
// Drive native macOS apps through DeepChat's plugin-provided Computer Use MCP tools. Use when the user asks to operate, inspect, automate, or perform a GUI task in a real macOS application.
Help developers build third-party tools that import, inspect, migrate, or analyze DeepChat data. Use when Codex needs to work with DeepChat provider configuration, model configuration, MCP/app settings, sessions, messages, legacy chat data, `agent.db`, `chat.db`, SQLCipher encrypted SQLite, Electron safeStorage wrapped passwords, Tauri importers, or native macOS/Windows/Linux data access.
Use the Feishu/Lark plugin MCP tools for Feishu documents, spreadsheets, knowledge content, and other matching workspace operations.
Drive a native macOS app via the cua-driver MCP server or CLI — snapshot its AX tree, click/type/scroll by element_index, verify via re-snapshot. Use when the user asks you to operate, drive, automate, or perform a GUI task in a real macOS application on the host (e.g. "open a file in TextEdit", "navigate to /Applications in Finder", "click the Save button in Numbers").
Use for any DeepChat code, configuration, documentation, feature, issue fix, refactor, or architecture change before implementation. This skill enforces the project SDD workflow: classify the goal, create or update spec.md, plan.md, and tasks.md under docs/features, docs/issues, or docs/architecture, resolve NEEDS CLARIFICATION items, then implement and validate.
DeepChat app settings modification (DeepChat 设置/偏好) skill. Activate ONLY when the user explicitly asks to change DeepChat's own settings/preferences (e.g., theme, language, font size...). Do NOT activate for OS/system settings, editor settings, or other apps.
Prepare and publish DeepChat releases in this repository. Use when Codex needs to bump the app version, update CHANGELOG.md, keep release notes bilingual from v1.0.1 onward with English bullets first and Chinese bullets second, run release checks, create or update versioned release branches such as release/v1.0.1, continue a half-finished release, fast-forward main with the documented release flow, create or push version tags, or clean up release branches after publishing.
| name | cua-driver |
| description | Drive native macOS apps through DeepChat's plugin-provided Computer Use MCP tools. Use when the user asks to operate, inspect, automate, or perform a GUI task in a real macOS application. |
| platforms | ["darwin"] |
| metadata | {"deepchatFeature":"computer-use"} |
Use DeepChat's CUA plugin MCP tools for macOS app automation. Treat the tools exposed by the cua-driver MCP server as the only action surface for this skill.
${OWNER_PLUGIN_ID}.${PLUGIN_ROOT}.${PLUGIN_ROOT}/runtime/darwin/${PROCESS_ARCH}/DeepChat Computer Use.app.${PLUGIN_ROOT}/runtime/darwin/${PROCESS_ARCH}/DeepChat Computer Use.app/Contents/MacOS/cua-driver.list_apps. Match user language, localized names, English names, romanized names, bundle identifiers, and common abbreviations. Prefer bundle_id as the identity signal.launch_app({ bundle_id }). Use the returned pid when available.list_windows({ pid }) when the launch result lacks a usable window.get_window_state({ pid, window_id }).click, right_click, double_click, drag, scroll, type_text, press_key, hotkey, set_value, page, or launch_app with urls. For web inputs that reject AX text insertion, call type_text({ pid, text, delay_ms }) and let the driver use its CGEvent fallback.Element indices come from the latest get_window_state result for the same pid and window_id. Re-snapshot when an index is missing, stale, or from another window.
Use check_permissions for permission status and prompting. If Accessibility or Screen Recording is missing, tell the user to grant it to DeepChat Computer Use.app from the helper app bundle path in this skill's runtime context.
Many media and Electron apps expose a shallow accessibility tree while still showing actionable pixels. get_window_state automatically attempts Electron AX enablement through AXManualAccessibility, AXEnhancedUserInterface, and an AXObserver before returning a sparse-tree warning.
Use this fallback order:
get_window_state({ pid, window_id }) when the first tree is sparse.page or relaunch with launch_app({ bundle_id, electron_debugging_port: 9222 }) when DOM access would identify the target more reliably than pixels.screenshot({ window_id }) for broad visual confirmation when the window contents or active overlay are unclear.zoom({ pid, window_id, x1, y1, x2, y2 }) for small text or dense icons. Repeated zoom calls are a failure signal; return to the full-window screenshot or ask for clarification.get_window_state screenshot with click({ pid, window_id, x, y }), or from the single zoom image with click({ pid, window_id, x, y, from_zoom: true }).Ask the user only when visible candidates are ambiguous, the requested action is destructive, or the target is outside the current visible window.
launch_app({ bundle_id }).launch_app({ bundle_id, urls: [...] }).launch_app({ bundle_id, urls: [...] }) so each URL has a stable window_id.Use get_agent_cursor_state to inspect the cursor overlay. Use set_agent_cursor_enabled, set_agent_cursor_motion, or set_agent_cursor_style only when the user asks to show, hide, animate, or restyle the agent cursor.
README.md: compact MCP workflow reference.WEB_APPS.md: browser and webview patterns.RECORDING.md: recording and replay tool notes.TESTS.md: manual verification scenarios.