Open Computer Use
iFurySt/open-codex-computer-use
Platform-neutral guidance for using Open Computer Use, the open-source Computer Use MCP server and CLI for macOS, Linux, and Windows.
Controls the macOS desktop visually through the TuriX computer-use agent, for opening apps, clicking buttons and navigating interfaces that have no CLI or API.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add TurixAI/TuriX-CUA --skill turix-mac -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TurixAI/TuriX-CUA turix-mac --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/TurixAI/TuriX-CUA.git skills-src && mkdir -p .claude/skills && cp -r skills-src/OpenCLaw_TuriX_skill .claude/skills/turix-mac && 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 "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .claude/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skillType 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 TurixAI/TuriX-CUA --skill turix-mac -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TurixAI/TuriX-CUA turix-mac --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TurixAI/TuriX-CUA.git skills-src && mkdir -p .agents/skills && cp -r skills-src/OpenCLaw_TuriX_skill .agents/skills/turix-mac && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .agents/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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 TurixAI/TuriX-CUA --skill turix-mac -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TurixAI/TuriX-CUA turix-mac --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TurixAI/TuriX-CUA.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/OpenCLaw_TuriX_skill .cursor/skills/turix-mac && 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 "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .cursor/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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/TurixAI/TuriX-CUA.git --path OpenCLaw_TuriX_skill--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 TurixAI/TuriX-CUA --skill turix-mac -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TurixAI/TuriX-CUA turix-mac --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TurixAI/TuriX-CUA.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/OpenCLaw_TuriX_skill .gemini/skills/turix-mac && 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 "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .gemini/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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 TurixAI/TuriX-CUA turix-macInstalls 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 TurixAI/TuriX-CUA --skill turix-mac -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TurixAI/TuriX-CUA.git skills-src && mkdir -p .github/skills && cp -r skills-src/OpenCLaw_TuriX_skill .github/skills/turix-mac && 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 "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .github/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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 TurixAI/TuriX-CUA --skill turix-mac -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TurixAI/TuriX-CUA turix-mac --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TurixAI/TuriX-CUA.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/OpenCLaw_TuriX_skill .opencode/skills/turix-mac && 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 "turix-mac" agent skill from https://github.com/TurixAI/TuriX-CUA/tree/main/OpenCLaw_TuriX_skill into .opencode/skills/turix-mac/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "turix-mac", 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.
turix-macControls the macOS desktop visually through the TuriX computer-use agent, for opening apps, clicking buttons and navigating interfaces that have no CLI or API.
TuriX works from what is on screen rather than through APIs, which suits tasks like opening an app and playing something, or finding an invoice in email and uploading it to a portal. Internally it splits the work between a brain that plans steps, an actor that performs precise UI actions, an optional planner for high-level breakdown (`use_plan`) and a memory that keeps context across steps. Markdown playbooks called skills, such as GitHub navigation and general browser tasks, guide specific domains, and you can add your own.
Tasks start through `scripts/run_turix.sh` with a plain-language instruction, which updates `examples/config.json` for you, and an interrupted task can be resumed with `--resume` and a stable agent ID. Good instructions name the target app and break the job into clear steps without screen coordinates; vague or impossible requests are discouraged. `Cmd+Shift+2` force-stops the agent, and logs are written to `.turix_tmp/logging.log`.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 88c777b. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
condapythonosascriptpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
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.
TuriX macOS Desktop Agent loads about 3.2k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,154 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 patterns that need a careful read before installing.
- Do not download files without user permissionAutomated 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); the scripts in this folder are not scanned.
The full file from TurixAI/TuriX-CUA at commit 88c777b, republished under its MIT licence (© TurixAI). 1,154 words, ~3,188 tokens.
.claude/skills/turix-mac/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill allows Clawdbot to control the macOS desktop visually using the TuriX Computer Use Agent.
TuriX uses a sophisticated multi-model system:
use_plan: true)Skills are markdown playbooks that guide the agent for specific domains:
github-web-actions: GitHub navigation, repo search, starringbrowser-tasks: General web browser operationsskills/ directoryThe agent can resume interrupted tasks by setting a stable agent_id.
skills/local/turix-mac/scripts/run_turix.sh "Open Chrome and go to github.com"skills/local/turix-mac/scripts/run_turix.sh --resume my-task-001✅ Note:
run_turix.shupdatesexamples/config.jsonfor you (task, resume,use_plan,use_skills). If you want to keep a hand-edited config, skip passing a task and editexamples/config.jsondirectly.
✅ Good Examples:
❌ Avoid:
💡 Best Practices:
Cmd+Shift+2 - Immediately stops the agentLogs are saved to .turix_tmp/logging.log in the project directory. Check this for:
exec with pty:true modeAlways set PATH first:
export PATH="/usr/sbin:$PATH"
cd your_dir/TuriX-CUA
/opt/anaconda3/envs/turix_env/bin/python examples/main.pyWhy? The screencapture tool is located at /usr/sbin/screencapture, which is not in the default PATH.
# Check process
ps aux | grep "python.*main" | grep -v grep
# Should show something like:
# user 57425 0.0 2.4 412396704 600496 s143 Ss+ 5:56PM 0:04.76 /opt/anaconda3/envs/turix_env/bin/python examples/main.pyNote: The .turix_tmp directory may not be created until TuriX starts executing steps.
| Error | Solution |
|---|---|
NoneType has no attribute 'save' | Screen recording permission missing. Grant in System Settings and restart Terminal. |
Screen recording access denied | Run: osascript -e 'tell application "Safari" to do JavaScript "alert(1)"' and click Allow |
Conda environment not found | Ensure turix_env exists: conda create -n turix_env python=3.12 |
| Module import errors | Activate environment: conda activate turix_env then pip install -r requirements.txt |
| Permission errors for keyboard listener | Add Terminal/IDE to Accessibility permissions |
Logs include DEBUG level by default. Check:
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.logUser Request
↓
[Clawdbot] → [TuriX Skill] → [run_turix.sh] → [TuriX Agent]
↓
┌─────────────────────────┼─────────────────────────┐
↓ ↓ ↓
[Planner] [Brain] [Memory]
↓ ↓ ↓
[Actor] ───→ [Controller] ───→ [macOS UI]Skills are markdown files with YAML frontmatter in the skills/ directory:
---
name: skill-name
description: When to use this skill
---
# Skill Instructions
High-level workflow like: Open Safari,then go to Google.The Planner selects relevant skills based on name/description; the Brain uses full content for step guidance.
| Option | Description |
|---|---|
use_plan: true | Enable planning for complex tasks |
use_skills: true | Enable skill selection |
resume: true | Resume from previous interruption |
max_steps: N | Limit total steps (default: 100) |
max_actions_per_step: N | Actions per step (default: 5) |
force_stop_hotkey | Custom hotkey to stop agent |
TuriX supports Skills: markdown playbooks that help the agent behave more reliably in specific domains.
| Skill | Use |
|---|---|
github-web-actions | GitHub web actions (search repos, star, etc.) |
Create a .md file in the TuriX project's skills/ directory:
---
name: my-custom-skill
description: When performing X specific task
---
# Custom Skill
## Guidelines
- Step 1: Do this first
- Step 2: Then do that
- Step 3: Verify the resultField definitions:
name: Skill identifier (used by the Planner to select)description: When to use this skill (Planner matches on this)In examples/config.json:
{
"agent": {
"use_plan": true,
"use_skills": true,
"skills_dir": "skills",
"skills_max_chars": 4000
}
}skills/local/turix-mac/scripts/run_turix.sh "Search for turix-cua on GitHub and star it"The agent will automatically:
Background: Passing Chinese text through shell interpolation can mangle UTF-8, and interpolating untrusted text into a heredoc is unsafe.
Solution:
The run_turix.sh script uses Python to handle UTF-8 correctly and reads task text from environment variables:
import json
# Read with UTF-8
with open(config_path, 'r', encoding='utf-8') as f:
data = json.load(f)
# Write without escaping non-ASCII text
with open(config_path, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)Key points:
encoding='utf-8' when reading/writing filesensure_ascii=False to preserve non-ASCII textChallenges:
Recommended approach: create the document yourself and let TuriX only send it
from docx import Document
doc = Document()
doc.add_heading('Title')
doc.save('/path/to/file.docx')Suggested workflow:
web_fetch to gather informationCreate skills/browser-tasks.md:
---
name: browser-tasks
description: When performing tasks in a web browser (search, navigate, fill forms).
---
# Browser Tasks
## Navigation
- Use the address bar or search box to navigate
- Open new tabs for each distinct task
- Wait for page to fully load before proceeding
## Forms
- Click on input fields to focus
- Type content clearly
- Look for submit/button to complete actions
## Safety
- Confirm before submitting forms
- Do not download files without user permission# Run in background (recommended)
cd your_dir/clawd/skills/local/turix-mac/scripts
./run_turix.sh "Your task description" --background
# Or use timeout to set a max runtime
./run_turix.sh "Task" &Method 1: Session logs
# List running sessions
clawdbot sessions_list
# View history
clawdbot sessions_history <session_key>Method 2: TuriX logs
# Tail logs in real time
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log
# Or inspect completed step files
ls -lt your_dir/TuriX-CUA/examples/.turix_tmp/brain_llm_interactions.log_brain_*.txtMethod 3: Check processes
ps aux | grep "python.*main.py" | grep -v grepMethod 4: Check generated files
# List files created by the agent
ls -la your_dir/TuriX-CUA/examples/.turix_tmp/*.txt| File | Description |
|---|---|
logging.log | Main log file |
brain_llm_interactions.log_brain_N.txt | Brain model conversations (one per step) |
actor_llm_interactions.log_actor_N.txt | Actor model conversations (one per step) |
Key log markers:
📍 Step N - New step started✅ Eval: Success/Failed - Current step evaluation🎯 Goal to achieve this step - Current goal🛠️ Action - Executed action✅ Task completed successfully - Task completed| Issue | Check |
|---|---|
| Process unresponsive | `ps aux |
| Stuck on step 1 | Check whether .turix_tmp/ was created |
| Model loading is slow | First run can take 1-2 minutes to load models |
| No log output | Check config.json logging_level |
Hotkey: Cmd+Shift+2 - stop the agent immediately
Command:
pkill -f "python examples/main.py"After completion, the agent will:
.turix_tmp/record_info is used)Example: view a summary file
cat your_dir/TuriX-CUA/examples/.turix_tmp/latest_ai_news_summary_jan2026.txtbrain_llm_interactions.log_brain_*.txt for analysis and next_goalactor_llm_interactions.log_actor_*.txt for actionsrecord_info to save key info to .txt files# 1. Run a task
./run_turix.sh "Search AI news and summarize" &
# 2. Wait a few seconds and check the process
sleep 10 && ps aux | grep main.py
# 3. Check if logs are being created
ls -la your_dir/TuriX-CUA/examples/.turix_tmp/
# 4. Tail progress in real time
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log
# 5. Check current step count
ls your_dir/TuriX-CUA/examples/.turix_tmp/brain_llm_interactions.log_brain_*.txt | wc -l© TurixAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in OpenCLaw_TuriX_skill of TurixAI/TuriX-CUA.
Open the folder on GitHubat commit 88c777b
TuriX macOS Desktop Agent 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 |
|---|---|---|---|---|---|---|
| TuriX macOS Desktop Agent this skillTurixAI/TuriX-CUA | 3.2k | — | ~3.2k | Automated safety check: Warn | MIT | |
| Open Computer UseiFurySt/open-codex-computer-use | 2.4k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Mac Computer UseTo3akaRin/mac-computer-use | 1.1k | — | ~495 | Automated safety check: Pass | MIT | |
| Waku Computer Useegoist/waku | 1.6k | — | ~3.6k | Automated safety check: Pass | GPL-3.0 | |
| Native Mac App Controlleralchaincyf/huashu-mac-use | 300 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Interceptor BrowserHacker-Valley-Media/Interceptor | 522 | — | ~4.8k | Automated safety check: Pass | Custom licence |
iFurySt/open-codex-computer-use
Platform-neutral guidance for using Open Computer Use, the open-source Computer Use MCP server and CLI for macOS, Linux, and Windows.
To3akaRin/mac-computer-use
操作 macOS 桌面应用,探测窗口和自动化接口、截图、读取或修改辅助功能元素、执行鼠标键盘动作,以及通过 CDP 操作内嵌 Chromium 页面。适用于桌面应用自动化与界面验收;普通网页任务优先使用已有浏览器工具。
egoist/waku
Control local macOS, Windows, and Linux apps through Waku Computer Use.
alchaincyf/huashu-mac-use
Controls macOS native apps that have no API, taking window-level screenshots as reproducible evidence without stealing focus and probing whether an app can be automated.
Hacker-Valley-Media/Interceptor
Drive a signed-in Chrome / Brave / Safari session via the interceptor CLI: open/read pages, click, type, inspect DOM/text/network, automate rich browser editors and scene graphs, capture…
kerpopule/hermes-jev-skills
Drives desktop GUI apps and OS dialogs by letting Jev pick the next action from a menu of safe actions the agent built, with a Mac Co-Agent shortcut.
Works with
Categories
Controls the macOS desktop visually through the TuriX computer-use agent, for opening apps, clicking buttons and navigating interfaces that have no CLI or API. TuriX works from what is on screen rather than through APIs, which suits tasks like opening an app and playing something, or finding an invoice in email and uploading it to a portal. Internally it splits the work between a brain that plans steps, an actor that performs precise UI actions, an optional planner for high-level breakdown (`use_plan`) and a memory that keeps context across steps.
TuriX macOS Desktop Agent fits situations like: operating a Mac app that offers no command line or API; running a multi-step visual workflow across several apps; resuming a desktop automation task that was interrupted.
Run `npx skills add TurixAI/TuriX-CUA --skill turix-mac -a claude-code`. Or copy the skill folder (OpenCLaw_TuriX_skill in TurixAI/TuriX-CUA) into .claude/skills/turix-mac in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TurixAI/TuriX-CUA --skill turix-mac -a codex`. Or copy the skill folder (OpenCLaw_TuriX_skill in TurixAI/TuriX-CUA) into .agents/skills/turix-mac 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 TurixAI/TuriX-CUA --skill turix-mac -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/turix-mac, .gemini/skills/turix-mac, .github/skills/turix-mac and .opencode/skills/turix-mac in your project.
Going by SKILL.md and its folder, TuriX macOS Desktop Agent needs a shell for the scripts in its folder and the command-line tools its instructions call (conda, python, osascript and pip). Our summary lists: A Mac running macOS; The TuriX agent, launched through `scripts/run_turix.sh`.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
TuriX macOS Desktop Agent is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 TuriX macOS Desktop Agent: Open Computer Use (iFurySt/open-codex-computer-use, 2.4k stars), Mac Computer Use (To3akaRin/mac-computer-use, 1.1k stars), Waku Computer Use (egoist/waku, 1.6k stars) and Native Mac App Controller (alchaincyf/huashu-mac-use, 300 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TurixAI (a GitHub organization) maintains it in TurixAI/TuriX-CUA, which has 3,171 GitHub stars. The repository was last updated on September 14, 2026.
Source: TurixAI/TuriX-CUA on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.