TuriX
A configurable desktop-use agent that carries out GUI tasks across browser and office workflows.
Per-dimension scores and reasoning
Evidence: README states 'We never collect data' but no implementation details; requires Accessibility and Safari Automation permissions without least-privilege discussion; skill example asks user before login but not systematic; dependencies include posthog and oss2 which may involve telemetry or cloud storage without data flow explanation; no rollback mechanism; license and copyright clear. Deductions: data flow transparency absent, sensitive data handling not addressed, dependency security not audited, external effects not fully explained.
Evidence: README provides config examples and run steps but no error handling or failure message documentation; dependency list complete but version compatibility not discussed; no troubleshooting guide. Deductions: failure messages missing, self-consistency partially met.
Evidence: README targets macOS users, provides Windows and Linux branch instructions; capability boundaries stated (e.g., 'If a human can click it, TuriX can too') but not limitations; task config example provided but trigger precision not discussed; environment fit limited to macOS 15+, other platforms require branch switch. Deductions: capability boundaries and trigger precision insufficient.
Evidence: README well-structured with TOC, quick start, config, contributing; install steps and dependency list provided; MIT license with clear copyright; version updates in news section but no formal changelog; maintenance responsibility not explicit. Deductions: naming stability not addressed, known limitations not listed.
Evidence: README shows multiple demo GIFs, claims high success rates but no reproducible test data; flexibility to configure custom models but cost-benefit not quantified; output usability not detailed. Deductions: output usability evidence thin, cost-benefit not quantified.
Evidence: README claims OSWorld 64.2% and self-hosted Mac benchmark 80% but no detailed report link (only mentions technical report); no third-party verification; facts and inferences mixed. Deductions: claims lack traceability, cross-source corroboration insufficient.
- Dependencies include posthog and oss2 which may involve telemetry or cloud storage; review data flow.
- Requires Accessibility and Safari Automation permissions which are broad; evaluate carefully.
- README claims 'never collect data' but no implementation evidence; verify.
- Performance claims (e.g., OSWorld 64.2%) lack reproducible test details.
What does this agent do, and when should you use it?
TuriX is a computer-use agent for desktop automation; its main branch is documented for macOS 15+. Tasks and separate brain, actor, and memory model roles are configured in examples/config.json, with a planner role added when planning is enabled. Its execution boundary is the desktop GUI rather than app-specific APIs, covering interfaces a person can click, including browser, office, and internal-tool workflows. The repository documents MCP connectivity and demonstrates Claude for Desktop using TuriX to research, write a Pages document, and send it to a contact. It also includes Markdown-based skills for planning and an agent_id-based resume flow backed by memory.jsonl.
When you run python examples/main.py, TuriX reads agent.task and the model-role settings from examples/config.json, using brain_llm, actor_llm, memory_llm, and optionally planner_llm. Those roles can use a turix provider configuration or a local Ollama endpoint; models not already defined by build_llm require a provider implementation in examples/main.py, using options such as ChatOpenAI, ChatGoogleGenerativeAI, ChatAnthropic, or ChatOllama. With agent.use_plan and agent.use_skills enabled, the planner selects Markdown skills from their name and description, then the brain receives the full skill instructions to guide step goals. It carries out the work through desktop interactions, while resume mode reuses prior state from src/agent/temp_files/<agent_id>/memory.jsonl.
- A macOS user who needs a Safari-based web workflow completed through the visible browser interface.
- An office worker who must turn data in a Numbers file into a chart, place it in PowerPoint, and reply to a colleague.
- A user who wants to search product information, create a Pages document, and send it to a contact.
- A team member using Claude for Desktop who wants an MCP-connected desktop executor to write and share research results.
- A developer who wants to run desktop tasks with local Ollama vision models and configure separate model roles.
What are this agent's strengths and limitations?
- Separates brain, actor, memory, and optional planner responsibilities, allowing different models and endpoints for each role.
- Operates through desktop GUIs rather than requiring app-specific APIs, which suits workflows across clickable software interfaces.
- Documents an MCP route and a Claude for Desktop desktop-automation demonstration.
- Uses readable Markdown skills: the planner selects by metadata, while the brain receives full instructions.
- Can resume interrupted work through a stable agent_id and persisted memory.jsonl.
- The main branch is documented for macOS 15+; Windows and Linux require switching to separate branches.
- Desktop control depends on Accessibility and Safari automation permissions, which can block operation if not granted.
- The main configuration requires brain, actor, and memory models, plus a planner model when planning is enabled.
- Using a model not defined by build_llm requires editing examples/main.py to add a provider implementation.
- Resume only works when prior memory.jsonl exists and the same task and agent_id are retained.
How do you install or deploy this agent?
On macOS 15+, run: git clone https://github.com/TurixAI/TuriX-CUA.git && cd TuriX-CUA. Then run conda create -n turix_env python=3.12, conda activate turix_env, and pip install -r requirements.txt. In System Settings > Privacy & Security > Accessibility, authorize Terminal and the IDE you use; add /usr/bin/python3 if necessary. In Safari, enable developer features, Allow Remote Automation, and Allow JavaScript from Apple Events, then approve the permission dialogs.
How do you use this agent?
Edit examples/config.json with a specific agent.task and configure brain_llm, actor_llm, and memory_llm; also configure planner_llm when agent.use_plan is true. For a remote provider, set provider, model_name, api_key, and base_url for each role. For Ollama, configure each role with provider: ollama, a model name, and base_url: http://localhost:11434. To use skills, set agent.use_plan: true and agent.use_skills: true and provide skills_dir. Start the agent with python examples/main.py. To resume, keep the same task, set agent.resume: true and a stable agent.agent_id, and ensure the matching memory.jsonl already exists.
How does this agent compare with similar options?
The README compares its default model with prior open-source agents such as UI-TARS, claiming higher success rate and speed on Mac. It also reports 64.2% (229.88/358) on the full OSWorld benchmark and a third-place leaderboard ranking; it does not provide UI-TARS scores or a matched test setup in the supplied material.