TuriX Computer Use
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
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
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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:
updatesrun_turix.shfor you (task, resume,examples/config.json,use_plan). If you want to keep a hand-edited config, skip passing a task and edituse_skillsdirectly.examples/config.json
✅ 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 grepShould 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 |
|---|---|
| Screen recording permission missing. Grant in System Settings and restart Terminal. |
| Run: and click Allow |
| Ensure exists: |
| Module import errors | Activate environment: then |
| 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 |
|---|---|
| Enable planning for complex tasks |
| Enable skill selection |
| Resume from previous interruption |
| Limit total steps (default: 100) |
| Actions per step (default: 5) |
| 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 (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 SkillGuidelines
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 jsonRead 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 TasksNavigation
- 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" --backgroundOr use timeout to set a max runtime
./run_turix.sh "Task" &
Method 1: Session logs
# List running sessions clawdbot sessions_listView history
clawdbot sessions_history <session_key>
Method 2: TuriX logs
# Tail logs in real time tail -f your_dir/TuriX-CUA/.turix_tmp/logging.logOr 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 |
|---|---|
| Main log file |
| Brain model conversations (one per step) |
| 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 was created |
| Model loading is slow | First run can take 1-2 minutes to load models |
| No log output | Check |
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
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.