惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
P
Privacy International News Feed
S
Schneier on Security
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
Help Net Security
Help Net Security
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Archives - TechRepublic
Security Archives - TechRepublic
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
N
News and Events Feed by Topic
Hacker News: Ask HN
Hacker News: Ask HN
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
V
V2EX
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
N
News | PayPal Newsroom
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
I
InfoQ
D
DataBreaches.Net
爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
One Open Source Project a Day (No. 62): UI-TARS-Desktop - ByteDance's Open-Source Multimodal GUI Agent Stack
WonderLab · 2026-05-11 · via DEV Community

Introduction

"See the screen, understand the task, take the action."

This is the No.62 article in the "One Open Source Project a Day" series. Today, we are exploring UI-TARS-Desktop.

The AI agent projects we have covered recently—OpenHarness, Symphony, Agent Skills—all operate within the "code world": files, APIs, terminal commands. UI-TARS-Desktop does something fundamentally different: it lets AI directly control a real desktop GUI—not through code, not via API calls, but by clicking buttons, filling out forms, and dragging windows, exactly like a human user.

This is ByteDance's open-source multimodal AI agent stack. Its 32.3k Stars reflect the industry's high expectations for the "general-purpose computer-use agent" direction. It contains two complementary sub-projects: Agent TARS, a developer-facing general-purpose agent that brings visual understanding to the terminal, and UI-TARS Desktop, a native desktop application that controls your local machine.

What You Will Learn

  • What a "multimodal GUI agent" is and how it fundamentally differs from traditional RPA tools
  • The positioning differences between Agent TARS and UI-TARS Desktop and their respective use cases
  • The technical principles behind the hybrid browser agent strategy (GUI + DOM + Hybrid)
  • How the Event Stream architecture enables precise UI feedback and debuggability
  • How to run an AI agent that can "read the screen" with a single command

Prerequisites

  • Basic understanding of AI agents (knowing that LLMs can call tools is sufficient)
  • Node.js environment (v22+)
  • An API key for a multimodal model (Doubao, Claude, etc.)

Project Background

Project Introduction

UI-TARS-Desktop is a multimodal AI agent stack whose core capability is: using a Vision-Language Model (VLM) to "understand" the UI elements on a screen, comprehend natural language instructions, and then simulate real user mouse and keyboard actions to complete tasks.

This is fundamentally different from traditional RPA (Robotic Process Automation) tools:

  • RPA: Hardcodes operation paths based on pixel coordinates or element IDs—any UI change breaks the script
  • UI-TARS: Understands the semantics of UI—it knows what a "Save button" is and where a "search box" should be, adapting gracefully to interface changes

Author/Team Introduction

  • Development Team: ByteDance AI Research
  • Background: ByteDance has deep expertise in vision-language models. The UI-TARS model series (built on the Seed series of VLMs) is specifically trained for GUI understanding and control tasks
  • Academic Foundation: The project is backed by corresponding academic papers; the UI-TARS model achieves SOTA performance on multiple GUI agent benchmarks

Project Data

  • ⭐ GitHub Stars: 32,300+
  • 🍴 Forks: 3,200+
  • 🏢 Developer: ByteDance AI Team
  • 📄 License: Apache-2.0
  • 🌐 Repository: bytedance/UI-TARS-desktop

Main Features

Core Utility

UI-TARS-Desktop solves a fundamental problem: how can an AI agent interact with any software without requiring that software to provide an API or plugin support?

Imagine this scenario: you have an aging enterprise internal system with no API, no automation interface, but you need to manually enter data every day. The traditional solution is to hire someone or write brittle RPA scripts. UI-TARS's answer: let the AI act like a new employee—"look at the screen, learn how to use the system," and then automate the task.

Use Cases

  1. Cross-Application Workflow Automation

    • Transfer data between different desktop applications (e.g., read from Excel, fill into an enterprise system form) without any API integration.
  2. Intelligent Browser Control

    • Automate complex Web operations: multi-step form submissions, dynamic content interactions, data collection from login-required sites.
  3. GUI Software Testing

    • Describe test cases in natural language; AI automatically executes them on real interfaces and verifies results—no fragile XPath or coordinate scripts to maintain.
  4. Personal Productivity Assistant

    • Describe tasks in voice or text; AI helps you complete them on your computer: organizing files, batch modifications, search and summarization.
  5. Accessibility Assistance

    • Provide voice-control-to-computer capabilities for users with motor impairments, going beyond the limitations of traditional assistive technologies.

Quick Start

Agent TARS (one-line launch):

# No installation needed — run directly with npx
npx @agent-tars/cli@latest

# Specify a model provider (defaults to Doubao; Claude also supported)
npx @agent-tars/cli@latest --model claude-opus-4-6

# Launch with Web UI (visual interface)
npx @agent-tars/cli@latest --ui

# Start with a specific task
npx @agent-tars/cli@latest -p "Search for today's AI news and summarize the key points"

Enter fullscreen mode Exit fullscreen mode

UI-TARS Desktop (native app):

# Clone the repository (monorepo structure)
git clone https://github.com/bytedance/UI-TARS-desktop.git
cd UI-TARS-desktop

# Install dependencies
pnpm install

# Launch UI-TARS Desktop
pnpm run dev:desktop

# Or download pre-built installers from the Releases page:
# - macOS: UI-TARS-Desktop-x.x.x.dmg
# - Windows: UI-TARS-Desktop-Setup-x.x.x.exe

Enter fullscreen mode Exit fullscreen mode

Model Configuration (Claude example):

# Configure via environment variable
export ANTHROPIC_API_KEY=sk-ant-...
npx @agent-tars/cli@latest

# Or via config file
cat > ~/.agent-tars/config.json << EOF
{
  "model": {
    "provider": "anthropic",
    "id": "claude-opus-4-6",
    "apiKey": "sk-ant-..."
  }
}
EOF

Enter fullscreen mode Exit fullscreen mode

Core Characteristics

1. Vision-Language Understanding

UI-TARS is not simple "screenshot + OCR." It uses a vision-language model specifically trained for GUI understanding:

  • Semantic comprehension: Not just recognizing text—understanding a button's function, a form's structure, and a page's layout logic
  • Spatial reasoning: Knowing what "click the button to the right of the search box" means
  • State awareness: Distinguishing between a "loading button" and a "clickable button"

2. Hybrid Browser Agent Strategy

This is Agent TARS's most technically sophisticated design—three browser control strategies that can switch dynamically:

Strategy Principle Best For
GUI Agent Mode Pure visual perception, simulates mouse clicks Any website, no DOM access needed
DOM Mode Directly manipulates page DOM structure Structured pages, faster execution
Hybrid Mode Visual grounding combined with DOM manipulation Complex, dynamic pages

The hybrid mode's advantage: switches to visual mode when encountering Canvas-rendered or dynamically generated content; switches to DOM mode for standard HTML elements—balancing robustness and efficiency.

3. Event Stream Protocol Architecture

Traditional agents pass context through "message history." UI-TARS uses an event stream:

[Screenshot Event] → [User Instruction] → [Thinking] → [Tool Call] → [Result] → [New Screenshot] → ...

Enter fullscreen mode Exit fullscreen mode

Every UI state change is recorded as an event, enabling the agent to:

  • Precisely track the before/after state of every operation
  • Accurately pinpoint issues when an action fails
  • Support operation replay and debugging (Event Stream Viewer)

4. MCP (Model Context Protocol) Integration

Agent TARS natively supports MCP, connecting to any MCP server to combine GUI control with structured tool access:

# Launch with MCP tools loaded
npx @agent-tars/cli@latest \
  --mcp-server filesystem \
  --mcp-server github \
  --mcp-server postgresql

Enter fullscreen mode Exit fullscreen mode

This means the agent can both "look at the screen and click" AND "call an API directly"—choosing the most efficient approach for each situation.

5. Cross-Platform Computer Control

UI-TARS Desktop provides three control targets:

  • Local computer: Control the current machine's desktop and applications
  • Remote computer: Connect to remote machines via VNC/RDP (free since v0.2.0)
  • Browser: An optimized control mode specifically for web browsers

Project Advantages

Feature UI-TARS-Desktop Traditional RPA (UiPath/AA) Playwright/Selenium
Adapts to UI Changes Strong (semantic understanding) Weak (hardcoded coordinates/IDs) Medium (selector maintenance)
Non-API Software Support ✅ Any GUI app ❌ Requires Web or API
Natural Language Instructions ❌ Requires programming ❌ Requires programming
Desktop + Browser Unified ❌ Browser only
Local Execution ✅ Privacy-preserving Product-dependent
Open Source & Free ✅ Apache-2.0 ❌ Commercial license

Detailed Analysis

1. Twin Projects: Agent TARS vs UI-TARS Desktop

This repository contains two sub-projects with different but complementary positioning:

UI-TARS-Desktop (Monorepo)
├── apps/
│   ├── agent-tars/          ← Agent TARS: developer-facing general agent
│   │   ├── cli/             ← CLI entry point (npx @agent-tars/cli)
│   │   └── web/             ← Web UI interface
│   └── ui-tars-desktop/     ← UI-TARS Desktop: user-facing desktop app
├── packages/
│   ├── agent-core/          ← Shared agent core logic
│   ├── model-provider/      ← Model provider abstraction layer
│   ├── browser-use/         ← Browser control engine
│   └── computer-use/        ← Computer control engine
└── scripts/                 ← Build and release scripts

Enter fullscreen mode Exit fullscreen mode

Agent TARS is for developers:

  • One-line npx launch
  • Supports CLI scripting and CI/CD integration
  • Extensible via MCP ecosystem
  • Suited for building automated pipelines

UI-TARS Desktop is for general users:

  • Visual desktop app, click to use
  • Built-in UI-TARS vision model (optimized for desktop GUI)
  • Remote computer control (free since v0.2.0)
  • Suited for personal productivity enhancement

2. The UI-TARS Model: A VLM Trained Specifically for GUI Tasks

General multimodal models (like Claude Vision or GPT-4V) can "see images" but aren't optimized for GUI control. What makes the UI-TARS model special:

  • Training data: Large volumes of real GUI interaction trajectories spanning Windows, macOS, and Web environments
  • Task format: Input = screen screenshot + natural language instruction; Output = concrete action (click coordinates, keyboard input, scroll, etc.)
  • Architecture: Built on ByteDance's Seed series of vision-language models, available in multiple parameter scales
  • Benchmark performance: SOTA results on ScreenSpot, Mind2Web, OSWorld, and other leading GUI agent benchmarks
Input example:
  Screenshot: [A webpage with a login form]
  Instruction: "Log in with admin@example.com"

Output example:
  {
    "action": "click",
    "coordinate": [412, 286],  // Username input field coordinates
    "reason": "Click the username input field"
  }
  {
    "action": "type",
    "text": "admin@example.com"
  }
  {
    "action": "click",
    "coordinate": [412, 342],  // Password input field
  }
  ...

Enter fullscreen mode Exit fullscreen mode

3. Event Stream Viewer: Debugging GUI Agents Made Transparent

The Event Stream Viewer introduced in v0.3.0 is an invaluable tool for debugging GUI agent tasks:

Task: "Search Taobao for MacBook, find the cheapest listing, and take a screenshot"

Event Stream:
  ┌─ [Screenshot] Initial desktop state
  ├─ [Think] Need to open browser and navigate to Taobao
  ├─ [Action] click(browser_icon) → Browser opens
  ├─ [Screenshot] Browser is open
  ├─ [Action] type("taobao.com") → Enter URL
  ├─ [Screenshot] Taobao homepage loaded
  ├─ [Think] Located search box — need to type keyword
  ├─ [Action] click(search_box) → Click search box
  ├─ [Action] type("MacBook") → Enter search term
  ├─ [Screenshot] Search results page
  ├─ [Think] Need to sort by price to find cheapest
  ├─ [Action] click(price_sort_button) → Sort by price
  ├─ [Screenshot] Results sorted by price
  └─ [Action] screenshot() → Save screenshot

Enter fullscreen mode Exit fullscreen mode

This visualized operation trajectory is not only useful for debugging—it provides a rare transparent window into "how AI thinks about GUI control problems."


Project Links & Resources

Official Resources

Target Audience

  • Developers and automation engineers: Needing to automate legacy systems without APIs or complex Web workflows
  • AI researchers: Studying multimodal agents, GUI understanding, and the Computer Use direction
  • Productivity enthusiasts: Wanting to direct their computer using natural language for tedious tasks
  • Test engineers: Exploring a new paradigm for vision-based GUI testing

Summary

Key Takeaways

  1. Built by ByteDance, 32.3k Stars—one of the most representative open-source projects in the multimodal GUI agent space
  2. Twin-project design: Agent TARS (developer tool) + UI-TARS Desktop (end-user native app)
  3. Three browser strategies (GUI / DOM / Hybrid) that dynamically choose the optimal control method
  4. Event Stream architecture makes every GUI action traceable, replayable, and debuggable
  5. Purpose-built UI-TARS model achieves SOTA on GUI task benchmarks—not a general model applied naively

One-Line Review

UI-TARS-Desktop gives AI genuine "eyes and hands"—no API required, just looking at the screen and taking action like a human—making it one of the most pragmatic paths toward general-purpose computer-use agents.


Find more useful knowledge and interesting products on my Homepage