Agent skill

TuriX macOS Desktop Agent

by TurixAI in TurixAI/TuriX-CUA

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.

MITAuto-check: warningsProductivity & Automation

Install TuriX macOS Desktop Agent

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add TurixAI/TuriX-CUA --skill turix-mac -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TurixAI/TuriX-CUA turix-mac --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
turix-mac
GitHub stars
3.2k
Token cost
~3.2k tokens
SKILL.md length
1,154 words
Files
3 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 12 steps: Built-in Skills → Create a Custom Skill → Enable Skills → …
  • Operating a Mac app that offers no command line or API
  • SKILL.md covers When to Use, Key Features, Running TuriX and Hotkeys, plus 7 more sections
  • Runs Shell scripts from its folder; calls conda, python and osascript

What it does

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`.

When your agent uses it

  • 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

Example prompts

  • “Open Safari, search for TuriX AI and click the first result.”
  • “Open System Settings and switch to Dark Mode, then return to the main settings page.”
  • “Create a new folder named Project X in Documents using Finder.”

Requirements

  • A Mac running macOS
  • The TuriX agent, launched through `scripts/run_turix.sh`

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Built-in Skills
  2. Create a Custom Skill
  3. Enable Skills
  4. Run a Task with Skills
  5. Chinese Text Support
  6. Document Creation Best Practices
  7. Example: Add a New Skill
  8. Skill Development Tips
  9. Run a Task
  10. Monitor Progress
  11. Log File Reference
  12. Common Monitoring Issues

What it can do on your machine

Read from SKILL.md and the folder at commit 88c777b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • conda
    • python
    • osascript
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

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.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains instruction-override wording (e.g. “without asking the user”)SKILL.md:295
    - Do not download files without user permission

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); the scripts in this folder are not scanned.

SKILL.md

The full file from TurixAI/TuriX-CUA at commit 88c777b, republished under its MIT licence (© TurixAI). 1,154 words, ~3,188 tokens.

Download SKILL.mdSave it as .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.
name
turix-mac
description
Computer Use Agent (CUA) for macOS automation using TuriX. Use when you need to perform visual tasks on the desktop, such as opening apps, clicking buttons, or navigating UIs that don't have a CLI or API.

TuriX-Mac Skill

This skill allows Clawdbot to control the macOS desktop visually using the TuriX Computer Use Agent.

When to Use

  • When asked to perform actions on the Mac desktop (e.g., "Open Spotify and play my liked songs").
  • When navigating applications that lack command-line interfaces.
  • For multi-step visual workflows (e.g., "Find the latest invoice in my email and upload it to the company portal").
  • When you need the agent to plan, reason, and execute complex tasks autonomously.

Key Features

🤖 Multi-Model Architecture

TuriX uses a sophisticated multi-model system:

  • Brain: Understands the task and generates step-by-step plans
  • Actor: Executes precise UI actions based on visual understanding
  • Planner: Coordinates high-level task decomposition (when use_plan: true)
  • Memory: Maintains context across task steps
📋 Skills System

Skills are markdown playbooks that guide the agent for specific domains:

  • github-web-actions: GitHub navigation, repo search, starring
  • browser-tasks: General web browser operations
  • Custom skills can be added to the skills/ directory
🔄 Resume Capability

The agent can resume interrupted tasks by setting a stable agent_id.

Running TuriX

Basic Task
bash
skills/local/turix-mac/scripts/run_turix.sh "Open Chrome and go to github.com"
Resume Interrupted Task
bash
skills/local/turix-mac/scripts/run_turix.sh --resume my-task-001

✅ Note: run_turix.sh updates examples/config.json for you (task, resume, use_plan, use_skills). If you want to keep a hand-edited config, skip passing a task and edit examples/config.json directly.

Tips for Effective Tasks

✅ Good Examples:

  • "Open Safari, go to google.com, search for 'TuriX AI', and click the first result"
  • "Open System Settings, click on Dark Mode, then return to System Settings"
  • "Open Finder, navigate to Documents, and create a new folder named 'Project X'"

❌ Avoid:

  • Vague instructions: "Help me" or "Fix this"
  • Impossible actions: "Delete all files"
  • Tasks requiring system-level permissions without warning

💡 Best Practices:

  1. Be specific about the target application
  2. Break complex tasks into clear steps, but do not mention the precise coordinates on the screen.

Hotkeys

  • Force Stop: Cmd+Shift+2 - Immediately stops the agent

Monitoring & Logs

Logs are saved to .turix_tmp/logging.log in the project directory. Check this for:

  • Step-by-step execution details
  • LLM interactions and reasoning
  • Errors and recovery attempts

Important Notes

How TuriX Runs
  • TuriX can be started via clawdbot exec with pty:true mode
  • The first launch takes 2-5 minutes to load all AI models (Brain, Actor, Planner, Memory)
  • Background output is buffered - you won't see live progress until task completes or stops
Before Running

Always set PATH first:

bash
export PATH="/usr/sbin:$PATH"
cd your_dir/TuriX-CUA
/opt/anaconda3/envs/turix_env/bin/python examples/main.py

Why? The screencapture tool is located at /usr/sbin/screencapture, which is not in the default PATH.

Checking if TuriX is Running
bash
# 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.py

Note: The .turix_tmp directory may not be created until TuriX starts executing steps.

Troubleshooting

Common Issues
ErrorSolution
NoneType has no attribute 'save'Screen recording permission missing. Grant in System Settings and restart Terminal.
Screen recording access deniedRun: osascript -e 'tell application "Safari" to do JavaScript "alert(1)"' and click Allow
Conda environment not foundEnsure turix_env exists: conda create -n turix_env python=3.12
Module import errorsActivate environment: conda activate turix_env then pip install -r requirements.txt
Permission errors for keyboard listenerAdd Terminal/IDE to Accessibility permissions
Debug Mode

Logs include DEBUG level by default. Check:

bash
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log

Architecture

User Request
     ↓
[Clawdbot] → [TuriX Skill] → [run_turix.sh] → [TuriX Agent]
                                              ↓
                    ┌─────────────────────────┼─────────────────────────┐
                    ↓                         ↓                         ↓
               [Planner]                 [Brain]                  [Memory]
                    ↓                         ↓                         ↓
                                         [Actor] ───→ [Controller] ───→ [macOS UI]

Skill System Details

Skills are markdown files with YAML frontmatter in the skills/ directory:

md
---
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.

Advanced Options

OptionDescription
use_plan: trueEnable planning for complex tasks
use_skills: trueEnable skill selection
resume: trueResume from previous interruption
max_steps: NLimit total steps (default: 100)
max_actions_per_step: NActions per step (default: 5)
force_stop_hotkeyCustom hotkey to stop agent

TuriX Skills System

TuriX supports Skills: markdown playbooks that help the agent behave more reliably in specific domains.

1. Built-in Skills
SkillUse
github-web-actionsGitHub web actions (search repos, star, etc.)
2. Create a Custom Skill

Create a .md file in the TuriX project's skills/ directory:

md
---
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 result

Field definitions:

  • name: Skill identifier (used by the Planner to select)
  • description: When to use this skill (Planner matches on this)
  • The body below: Full execution guide (used by the Brain)
3. Enable Skills

In examples/config.json:

json
{
  "agent": {
    "use_plan": true,
    "use_skills": true,
    "skills_dir": "skills",
    "skills_max_chars": 4000
  }
}
4. Run a Task with Skills
bash
skills/local/turix-mac/scripts/run_turix.sh "Search for turix-cua on GitHub and star it"

The agent will automatically:

  1. Planner reads the skill name and description
  2. Selects relevant skills
  3. Brain uses the full skill content to guide execution
Show full SKILL.md (482 more words)Show less
5. Chinese Text Support

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:

python
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:

  1. Always use encoding='utf-8' when reading/writing files
  2. Use ensure_ascii=False to preserve non-ASCII text
  3. Pass task content via environment variables or stdin, and use a single-quoted heredoc to avoid shell interpolation
6. Document Creation Best Practices

Challenges:

  • Asking TuriX to collect news, then create and send a document directly
  • TuriX is a GUI agent, so it can be slow and less deterministic. Prefer using TuriX only for tasks Clawdbot cannot do or where TuriX is faster.

Recommended approach: create the document yourself and let TuriX only send it

  1. Create the Word document with python-docx
  2. Let TuriX only send the file
python
from docx import Document
doc = Document()
doc.add_heading('Title')
doc.save('/path/to/file.docx')

Suggested workflow:

  1. Use web_fetch to gather information
  2. Use Python to create the Word document
  3. Use TuriX to send the file. Specify the file path and say to send the file, not just the file name.
  4. If you really need TuriX to manually create a Word document and type in collected information, put the content in turix skills (for large amounts) or in the task name (for small amounts).
7. Example: Add a New Skill

Create skills/browser-tasks.md:

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
8. Skill Development Tips
  1. Be precise in the description - helps the Planner select correctly
  2. Make steps clear - the Brain needs explicit guidance
  3. Include safety checks - confirmations for important actions
  4. Keep it concise - recommended under 4000 characters

Monitoring and Debugging Guide

1. Run a Task
bash
# 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" &
2. Monitor Progress

Method 1: Session logs

bash
# List running sessions
clawdbot sessions_list

# View history
clawdbot sessions_history <session_key>

Method 2: TuriX logs

bash
# 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_*.txt

Method 3: Check processes

bash
ps aux | grep "python.*main.py" | grep -v grep

Method 4: Check generated files

bash
# List files created by the agent
ls -la your_dir/TuriX-CUA/examples/.turix_tmp/*.txt
3. Log File Reference
FileDescription
logging.logMain log file
brain_llm_interactions.log_brain_N.txtBrain model conversations (one per step)
actor_llm_interactions.log_actor_N.txtActor 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
4. Common Monitoring Issues
IssueCheck
Process unresponsive`ps aux
Stuck on step 1Check whether .turix_tmp/ was created
Model loading is slowFirst run can take 1-2 minutes to load models
No log outputCheck config.json logging_level
5. Force Stop

Hotkey: Cmd+Shift+2 - stop the agent immediately

Command:

bash
pkill -f "python examples/main.py"
6. View Results

After completion, the agent will:

  1. Create interaction logs in .turix_tmp/
  2. Create record files (if record_info is used)
  3. Keep screenshots in memory for subsequent steps

Example: view a summary file

bash
cat your_dir/TuriX-CUA/examples/.turix_tmp/latest_ai_news_summary_jan2026.txt
7. Debugging Tips
  1. Inspect Brain reasoning: check brain_llm_interactions.log_brain_*.txt for analysis and next_goal
  2. Inspect Actor actions: check actor_llm_interactions.log_actor_*.txt for actions
  3. Check screenshots: TuriX captures a screenshot each step (kept in memory)
  4. Read record files: the agent uses record_info to save key info to .txt files
8. Example Monitoring Flow
bash
# 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

Files

SKILL.md and 2 other files (scripts) in OpenCLaw_TuriX_skill of TurixAI/TuriX-CUA.

  • SKILL.md
  • README.md
  • scripts/run_turix.sh

Open the folder on GitHubat commit 88c777b

Compare with similar skills

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.

TuriX macOS Desktop Agent compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
TuriX macOS Desktop Agent this skillTurixAI/TuriX-CUA3.2k—~3.2kAutomated safety check: WarnMIT
Open Computer UseiFurySt/open-codex-computer-use2.4k—~1.5kAutomated safety check: PassMIT
Mac Computer UseTo3akaRin/mac-computer-use1.1k—~495Automated safety check: PassMIT
Waku Computer Useegoist/waku1.6k—~3.6kAutomated safety check: PassGPL-3.0
Native Mac App Controlleralchaincyf/huashu-mac-use300—~1.5kAutomated safety check: PassMIT
Interceptor BrowserHacker-Valley-Media/Interceptor522—~4.8kAutomated safety check: PassCustom licence

Similar skills

  • 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.

    2.4k GitHub stars~1.5k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Mac Computer Use

    To3akaRin/mac-computer-use

    操作 macOS 桌面应用,探测窗口和自动化接口、截图、读取或修改辅助功能元素、执行鼠标键盘动作,以及通过 CDP 操作内嵌 Chromium 页面。适用于桌面应用自动化与界面验收;普通网页任务优先使用已有浏览器工具。

    1.1k GitHub stars~495 tokensUpdated 16 days ago
    Productivity & AutomationAuto-check passed
  • Control local macOS, Windows, and Linux apps through Waku Computer Use.

    1.6k GitHub stars~3.6k tokensUpdated 8 days ago
    Productivity & AutomationAuto-check passed
  • Native Mac App Controller

    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.

    300 GitHub stars~1.5k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed
  • Interceptor Browser

    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…

    522 GitHub stars~4.8k tokensUpdated 8 days ago
    Productivity & AutomationAuto-check passed
  • Jev Desktop Computer Use

    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.

    1.1k GitHub stars~4.3k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed

Works with

Questions about TuriX macOS Desktop Agent

What does TuriX macOS Desktop Agent do?

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.

When should I use TuriX macOS Desktop Agent?

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.

How do I install TuriX macOS Desktop Agent in Claude Code?

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.

How do I install TuriX macOS Desktop Agent in Codex?

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.

Can I use TuriX macOS Desktop Agent in Cursor, Gemini CLI or GitHub Copilot?

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.

What does TuriX macOS Desktop Agent need to run?

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`.

Does TuriX macOS Desktop Agent access the network?

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.

Is TuriX macOS Desktop Agent safe to install?

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.

What licence does TuriX macOS Desktop Agent use?

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.

How many tokens does TuriX macOS Desktop Agent use?

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.

What are the alternatives to TuriX macOS Desktop Agent?

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.

Who maintains TuriX macOS Desktop Agent?

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.