turix-cuaComputer 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.
Install via ClawdBot CLI:
clawdbot install Tongyu-Yan/turix-cuaThis 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.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.
| 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.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.
| 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 result
Field 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_*.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
| 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 | grep main.py |
| 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.txt
brain_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
Generated Mar 1, 2026
This scenario uses TuriX to automate visual regression testing for macOS applications, especially those without API access. The agent can simulate user interactions like clicking buttons, navigating menus, and verifying UI elements, reducing manual QA effort and ensuring consistent test execution across releases.
TuriX automates repetitive data entry tasks by visually interacting with desktop applications such as email clients and file managers. For example, it can extract invoice details from emails, save them to designated folders, and upload files to web portals, streamlining administrative workflows for small businesses.
In this scenario, TuriX assists content creators by automating tasks like opening design software, navigating to social media platforms, and scheduling posts. It can handle multi-step workflows, such as creating graphics in an app and uploading them to a website, saving time for marketing teams.
TuriX enables automated IT support by performing visual tasks on macOS, such as opening System Settings to adjust preferences, installing software via GUI installers, or troubleshooting common errors. This reduces manual intervention for help desks and improves response times for routine issues.
This scenario leverages TuriX to automate order fulfillment processes by visually navigating e-commerce platforms and inventory management software. The agent can check for new orders, update statuses, and generate shipping labels, enhancing efficiency for online retailers without dedicated APIs.
Offer TuriX as a cloud-based automation service with tiered pricing based on usage, such as tasks per month or complexity levels. This model targets businesses seeking scalable desktop automation without upfront infrastructure costs, generating recurring revenue from monthly or annual subscriptions.
Provide consulting services to integrate TuriX into specific business workflows, including custom skill development and training. This model appeals to enterprises with unique automation needs, generating revenue through project-based fees and ongoing support contracts.
License TuriX technology to software developers and agencies for embedding into their own products or services. This model includes SDK access and technical support, generating revenue from one-time license fees or royalties based on usage, targeting the developer tools market.
š¬ Integration Tip
Ensure PATH is set to include /usr/sbin for screencapture and grant screen recording permissions in macOS System Settings before running TuriX to avoid common errors.
Capture and automate macOS UI with the Peekaboo CLI.
Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Clawdbot to add a note, list notes, search notes, or manage note folders.
Speak responses aloud on macOS using the built-in `say` command when user input indicates Voice Wake/voice recognition (for example, messages starting with "User talked via voice recognition on <device>").
Homebrew package manager for macOS. Search, install, manage, and troubleshoot packages and casks.
Automate macOS desktop by capturing screenshots and executing precise mouse movements, clicks, and keyboard inputs via cliclick.