npx skills add https://github.com/turixai/turix-cua --skill turix-mac此技能允许 Clawdbot 使用 TuriX 计算机使用代理以视觉方式控制 macOS 桌面。
TuriX 使用一个复杂的多模型系统:
use_plan: true 时)技能是 Markdown 剧本,用于指导代理在特定领域执行任务:
github-web-actions: GitHub 导航、仓库搜索、加星标browser-tasks: 通用网页浏览器操作skills/ 目录广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
代理可以通过设置一个稳定的 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
✅ 注意 :
run_turix.sh会为你更新examples/config.json(任务、恢复、use_plan、use_skills)。如果你想保留手动编辑的配置,请跳过传递任务参数,直接编辑examples/config.json。
✅ 好的示例:
❌ 避免:
💡 最佳实践:
Cmd+Shift+2 - 立即停止代理日志保存在项目目录的 .turix_tmp/logging.log 中。检查此文件以获取:
exec 在 pty:true 模式下启动始终先设置 PATH:
export PATH="/usr/sbin:$PATH"
cd your_dir/TuriX-CUA
/opt/anaconda3/envs/turix_env/bin/python examples/main.py
为什么? screencapture 工具位于 /usr/sbin/screencapture,它不在默认的 PATH 中。
# 检查进程
ps aux | grep "python.*main" | grep -v grep
# 应该显示类似这样的内容:
# 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
注意: .turix_tmp 目录可能要到 TuriX 开始执行步骤时才会创建。
| 错误 | 解决方案 |
|---|---|
NoneType has no attribute 'save' | 缺少屏幕录制权限。在系统设置中授予权限并重启终端。 |
Screen recording access denied | 运行:osascript -e 'tell application "Safari" to do JavaScript "alert(1)"' 并点击允许 |
Conda environment not found | 确保 turix_env 存在:conda create -n turix_env python=3.12 |
| 模块导入错误 | 激活环境:conda activate turix_env 然后 pip install -r requirements.txt |
| 键盘监听器权限错误 | 将终端/IDE 添加到 辅助功能 权限中 |
日志默认包含 DEBUG 级别。检查:
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/ 目录下、带有 YAML 前置元数据的 Markdown 文件:
---
name: skill-name
description: When to use this skill
---
# Skill Instructions
High-level workflow like: Open Safari,then go to Google.
Planner 根据名称/描述选择相关技能;Brain 使用完整内容来指导步骤执行。
| 选项 | 描述 |
|---|---|
use_plan: true | 为复杂任务启用规划 |
use_skills: true | 启用技能选择 |
resume: true | 从之前的中断处恢复 |
max_steps: N | 限制总步骤数(默认:100) |
max_actions_per_step: N | 每步的操作数(默认:5) |
force_stop_hotkey | 停止代理的自定义快捷键 |
TuriX 支持 技能 :Markdown 剧本,帮助代理在特定领域更可靠地执行任务。
| 技能 | 用途 |
|---|---|
github-web-actions | GitHub 网页操作(搜索仓库、加星标等) |
在 TuriX 项目的 skills/ 目录中创建一个 .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
字段定义:
name: 技能标识符(Planner 用于选择)description: 何时使用此技能(Planner 据此匹配)在 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"
代理将自动:
背景: 通过 shell 插值传递中文文本可能会破坏 UTF-8 编码,并且将不受信任的文本插值到 heredoc 中是不安全的。
解决方案: run_turix.sh 脚本使用 Python 正确处理 UTF-8,并从环境变量中读取任务文本:
import json
# 使用 UTF-8 读取
with open(config_path, 'r', encoding='utf-8') as f:
data = json.load(f)
# 写入时不转义非 ASCII 文本
with open(config_path, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
要点:
encoding='utf-8'ensure_ascii=False 来保留非 ASCII 文本挑战:
推荐方法: 自己创建文档,只让 TuriX 发送它
from docx import Document
doc = Document()
doc.add_heading('Title')
doc.save('/path/to/file.docx')
建议的工作流程:
web_fetch 收集信息创建 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
# 在后台运行(推荐)
cd your_dir/clawd/skills/local/turix-mac/scripts
./run_turix.sh "Your task description" --background
# 或者使用 timeout 设置最大运行时间
./run_turix.sh "Task" &
方法 1: 会话日志
# 列出正在运行的会话
clawdbot sessions_list
# 查看历史记录
clawdbot sessions_history <session_key>
方法 2: TuriX 日志
# 实时跟踪日志
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log
# 或者检查已完成的步骤文件
ls -lt your_dir/TuriX-CUA/examples/.turix_tmp/brain_llm_interactions.log_brain_*.txt
方法 3: 检查进程
ps aux | grep "python.*main.py" | grep -v grep
方法 4: 检查生成的文件
# 列出代理创建的文件
ls -la your_dir/TuriX-CUA/examples/.turix_tmp/*.txt
| 文件 | 描述 |
|---|---|
logging.log | 主日志文件 |
brain_llm_interactions.log_brain_N.txt | Brain 模型对话(每步一个) |
actor_llm_interactions.log_actor_N.txt | Actor 模型对话(每步一个) |
关键日志标记:
📍 Step N - 新步骤开始✅ Eval: Success/Failed - 当前步骤评估🎯 Goal to achieve this step - 当前目标🛠️ Action - 执行的操作✅ Task completed successfully - 任务完成| 问题 | 检查 |
|---|---|
| 进程无响应 | `ps aux |
| 卡在步骤 1 | 检查是否创建了 .turix_tmp/ |
| 模型加载缓慢 | 首次运行可能需要 1-2 分钟加载模型 |
| 没有日志输出 | 检查 config.json 中的 logging_level |
快捷键 : Cmd+Shift+2 - 立即停止代理
命令 :
pkill -f "python examples/main.py"
完成后,代理将:
.turix_tmp/ 中创建交互日志record_info)示例:查看摘要文件
cat your_dir/TuriX-CUA/examples/.turix_tmp/latest_ai_news_summary_jan2026.txt
brain_llm_interactions.log_brain_*.txt 中的 analysis 和 next_goalactor_llm_interactions.log_actor_*.txt 中的操作record_info 将关键信息保存到 .txt 文件# 1. 运行任务
./run_turix.sh "Search AI news and summarize" &
# 2. 等待几秒钟并检查进程
sleep 10 && ps aux | grep main.py
# 3. 检查是否正在创建日志
ls -la your_dir/TuriX-CUA/examples/.turix_tmp/
# 4. 实时跟踪进度
tail -f your_dir/TuriX-CUA/.turix_tmp/logging.log
# 5. 检查当前步骤计数
ls your_dir/TuriX-CUA/examples/.turix_tmp/brain_llm_interactions.log_brain_*.txt | wc -l
每周安装数
109
仓库
GitHub 星标数
2.0K
首次出现
2026年2月24日
安全审计
安装于
gemini-cli107
codex106
kimi-cli106
cursor106
opencode106
amp106
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.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 |
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 |
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 |
| 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
Weekly Installs
109
Repository
GitHub Stars
2.0K
First Seen
Feb 24, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
gemini-cli107
codex106
kimi-cli106
cursor106
opencode106
amp106
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
44,900 周安装
pip install -r requirements.txt| Permission errors for keyboard listener | Add Terminal/IDE to Accessibility permissions |
| Custom hotkey to stop agent |