Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
This skill allows Clawdbot to control the macOS desktop visually using the TuriX Computer Use Agent.
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.
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 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
The 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.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.
โ 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: Be specific about the target application Break complex tasks into clear steps, but do not mention the precise coordinates on the screen.
Force Stop: Cmd+Shift+2 - Immediately stops the agent
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
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
Always set PATH first: 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.
# 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.
ErrorSolutionNoneType 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 AllowConda environment not foundEnsure turix_env exists: conda create -n turix_env python=3.12Module import errorsActivate environment: conda activate turix_env then pip install -r requirements.txtPermission errors for keyboard listenerAdd Terminal/IDE to Accessibility permissions
Logs include DEBUG level by default. Check: tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log
User 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.
OptionDescriptionuse_plan: trueEnable planning for complex tasksuse_skills: trueEnable skill selectionresume: trueResume from previous interruptionmax_steps: NLimit total steps (default: 100)max_actions_per_step: NActions per step (default: 5)force_stop_hotkeyCustom hotkey to stop agent
TuriX supports Skills: markdown playbooks that help the agent behave more reliably in specific domains.
SkillUsegithub-web-actionsGitHub web actions (search repos, star, etc.)
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: Planner reads the skill name and description Selects relevant skills Brain uses the full skill content to guide execution
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: Always use encoding='utf-8' when reading/writing files Use ensure_ascii=False to preserve non-ASCII text Pass task content via environment variables or stdin, and use a single-quoted heredoc to avoid shell interpolation
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 Create the Word document with python-docx Let TuriX only send the file from docx import Document doc = Document() doc.add_heading('Title') doc.save('/path/to/file.docx') Suggested workflow: Use web_fetch to gather information Use Python to create the Word document Use TuriX to send the file. Specify the file path and say to send the file, not just the file name. 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).
Be precise in the description - helps the Planner select correctly Make steps clear - the Brain needs explicit guidance Include safety checks - confirmations for important actions Keep it concise - recommended under 4000 characters
# 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_*.txt Method 3: Check processes ps aux | grep "python.*main.py" | grep -v grep Method 4: Check generated files # List files created by the agent ls -la your_dir/TuriX-CUA/examples/.turix_tmp/*.txt
FileDescriptionlogging.logMain log filebrain_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
IssueCheckProcess unresponsive`ps auxStuck on step 1Check whether .turix_tmp/ was createdModel loading is slowFirst run can take 1-2 minutes to load modelsNo log outputCheck config.json logging_level
Hotkey: Cmd+Shift+2 - stop the agent immediately Command: pkill -f "python examples/main.py"
After completion, the agent will: Create interaction logs in .turix_tmp/ Create record files (if record_info is used) Keep screenshots in memory for subsequent steps Example: view a summary file cat your_dir/TuriX-CUA/examples/.turix_tmp/latest_ai_news_summary_jan2026.txt
Inspect Brain reasoning: check brain_llm_interactions.log_brain_*.txt for analysis and next_goal Inspect Actor actions: check actor_llm_interactions.log_actor_*.txt for actions Check screenshots: TuriX captures a screenshot each step (kept in memory) Read record files: the agent uses record_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
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.