Skip to content
CAI
Software that uses CAICheck a score

bytedance/UI-TARS-desktop

48.1

Weak · 28 September 2026

140.8k

lines of production code

TypeScript

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

TARS is a multimodal AI agent framework that provides a composable architecture for building agents capable of GUI automation, code execution, and web research. It offers a desktop application, CLI tools, and a web UI to interact with these agents, supporting various operators for local and remote control of computers and browsers. The system integrates with multiple LLM providers and includes infrastructure for sandboxed execution, session management, and observability.

Features

Add GUI Agent 2.0 minimal demo example

A new runnable example for the GUI Agent SDK 2.0 has been added to the \examples/gui-agent-2.0\ directory. This TypeScript-based demo demonstrates how to initialize a \GUIAgent\ with the \AIOHybridOperator\ and a Doubao model (via Volcengine Ark) to perform a simple task, such as checking the weather. The example includes the necessary source files (\src/index.ts\, \src/constants.ts\), configuration (\tsconfig.json\, \package.json\), and documentation (\README.md\, \quick-start-for-agent.md\) to guide users through setting up environment variables and running the agent.

examples/gui-agent-2.0 · high confidence

Add JSON renderer component for displaying structured data

A new JsonRenderer component has been added to the common components library, allowing users to display structured JSON data in a styled, monospaced preformatted block with automatic syntax formatting and overflow handling.

multimodal/tarko/agent-ui/src/common/components · high confidence

Add LinkReader, Search, and MCP management tools

The \multimodal/omni-tars/mcp-agent/src/tools\ directory now includes three new tool providers: \LinkReaderToolProvider\, \SearchToolProvider\, and \McpManager\. The \LinkReaderToolProvider\ exposes a \LinkReader\ tool that extracts content from URLs using the \text\_browser\_view\ MCP client. The \SearchToolProvider\ exposes a \Search\ tool that performs queries via the \google\_search\ MCP client. The \McpManager\ class centralizes MCP client initialization and defines client types (Tavily, Google, LinkReader, AIO), enabling these tools to interact with external MCP servers.

multimodal/omni-tars/mcp-agent/src/tools · high confidence

Users can now share their current conversation by copying the direct link or uploading the session to a provider to get a shareable URL, as well as downloading the conversation as a standalone HTML file. This change introduces the ShareButton and ShareModal components in the standalone UI, which handle the UI interactions and communicate with the backend share service endpoints.

multimodal/tarko/agent-ui/src/standalone/share · high confidence

Add session sharing service with static HTML generation and remote upload support

A new ShareService has been introduced to enable session sharing capabilities. This service generates shareable static HTML content by leveraging the AgentUIBuilder and merging web UI configurations. It supports two modes: returning raw HTML locally or uploading the generated content to a configured remote provider. When uploading, the service processes workspace images, generates URL-safe slugs based on the first user message (with multilingual support), and appends a session hash to ensure uniqueness. The service is exported via the services index for use by the application.

multimodal/tarko/agent-server/src/services · high confidence

Added DOM tree building script for browser element highlighting

The \buildDomTree.js\ asset has been added to the browser-use package. This script provides the \window.buildDomTree\ function, which constructs a DOM tree representation of the current page while optionally highlighting elements with colored overlays and labels. It includes caching mechanisms for bounding rects, client rects, and computed styles to improve performance, and handles positioning for elements within iframes, enabling the agent to visually identify and interact with specific page elements.

packages/agent-infra/browser-use/assets · high confidence

Added LLM provider examples and documentation

The \multimodal/tarko/llm\ area now includes comprehensive documentation and code examples for integrating with major LLM providers. The main README introduces the \@agent-infra/llm\ TypeScript SDK, demonstrating how to initialize clients for OpenAI, OpenRouter, and Anthropic. The \examples\ directory provides reference implementations for OpenAI, Anthropic, and Gemini, covering basic chat, function calling, and image generation. Additionally, structured output examples are included for Claude 3.7 and Doubao, showing how to enforce JSON schemas and handle function calls via system prompts and API parameters.

multimodal/tarko/llm · high confidence

Added MCP client integration example with multi-provider tool support

The \packages/agent-infra/mcp-client/examples\ directory now includes a \test.ts\ file demonstrating how to initialize an MCP client with various server types (browser, filesystem, commands) and convert MCP tools into formats compatible with OpenAI, Anthropic, and Azure OpenAI APIs.

packages/agent-infra/mcp-client/examples · high confidence

Added example scripts for BrowserSearch usage

This location now includes a set of example scripts demonstrating how to use the BrowserSearch component. These examples cover basic search operations, headless mode, reusing browser instances across multiple queries, connecting to a remote browser via a CDP endpoint, and running benchmarks across Google, Bing, and Baidu search engines.

packages/agent-infra/search/browser-search/examples · high confidence

Agent TARS core and CLI package scaffolding

The \multimodal/agent-tars\ area now includes a dedicated CLI package (\@agent-tars/cli\) and a fully structured core package (\@agent-tars/core\). The CLI provides a command-line interface for Agent TARS, installable globally or via npx, and is built using rslib targeting Node.js. The core package exposes the main \AgentTARS\ class and includes examples for browser GUI agents, AIO sandbox environments, and various research tasks. Additionally, snapshot testing infrastructure has been added to the core package to capture and replay agent event streams.

multimodal/agent-tars · high confidence

Agent TARS core introduces static WebUI configuration and welcome cards

The Agent TARS core module now includes a static WebUI configuration (\webui-config.ts\) that defines the default user interface settings, including a set of pre-configured welcome cards to guide users, a default 'narrow-chat' layout, and enabled features like the event stream viewer and screenshot render strategy switching. This configuration is exposed as a static property on the \AgentTARS\ class and exported via the main index, allowing the UI layer to consume these defaults without requiring runtime configuration overrides for basic setup.

multimodal/agent-tars/core/src · high confidence

Agent TARS website launch with documentation, blog, and showcase sections

The Agent TARS website is now available at agent-tars.com, providing a central hub for product information. The site features a documentation section with guides for quick starts, MCP configuration, and troubleshooting, alongside a blog covering announcements and technical deep dives into the Model Context Protocol. A showcase page highlights real-world use cases such as stock analysis and travel planning. The site is built with Rsbuild and React, includes Google Analytics tracking, and is optimized for SEO with comprehensive metadata and static HTML generation to ensure reliable routing.

multimodal/websites/main · high confidence

Agent session storage now supports multiple backends with extensible metadata

The agent server's storage layer has been refactored to support pluggable session storage backends, including in-memory, file-based (JSON), SQLite, and MongoDB. This change introduces an extensible JSON schema for session metadata, replacing the previous rigid column-based structure (e.g., separate name, tags, modelConfig columns) with a flexible metadata object, allowing future schema evolution without database migrations. Existing SQLite databases are automatically migrated to this new format during initialization, preserving all session and event data. Users can now configure the storage backend via the \AgentStorageImplementation\ options, enabling scalable deployments with MongoDB or persistent local storage with SQLite, while retaining backward compatibility for legacy session data.

multimodal/tarko/agent-server/src/storage · high confidence

Automated README generation for browser MCP server tools and resources

Added a new script (\update-readme.ts\) that automatically generates and updates the API documentation section in the browser MCP server's README. The script connects to the server to list all available tools and resources, formats them into Markdown tables, and replaces the existing documentation block between specific HTML comments. This ensures the documentation stays in sync with the actual server capabilities without manual updates.

packages/agent-infra/mcp-servers/browser/scripts · high confidence

Browser utility infrastructure for page management and downloads

This change introduces core utility modules for the browser MCP server, establishing the foundation for reliable browser session handling and file operations. The new \browser.ts\ module implements logic to identify and manage the active browser tab by checking visibility and health, ensures a persistent browser instance is available (supporting both local and remote configurations), and configures essential settings such as ad-blocking, proxy authentication, and download behavior. Supporting utilities in \utils.ts\ provide helpers for parsing proxy credentials, validating selectors, sanitizing file paths, and generating download suggestions, while \file.ts\ adds a helper to ensure output directories exist.

packages/agent-infra/mcp-servers/browser/src/utils · high confidence

BrowserFinder now supports Chrome, Edge, and Firefox with automatic fallback

The browser-finder module in packages/agent-infra/browser now detects and locates Google Chrome, Microsoft Edge, and Mozilla Firefox across Windows, macOS, and Linux. It includes custom path-resolution logic for Chrome and Firefox (mimicking the structure of the existing Edge support) and implements a fallback strategy: when no specific browser is requested, it attempts to launch Chrome first, then Edge, and finally Firefox, ensuring the application can start even if only one browser is installed.

packages/agent-infra/browser/src/browser-finder · high confidence

Initial multimodal monorepo structure and tooling configuration

The \multimodal\ directory is introduced as a new monorepo workspace, establishing the foundational project structure and developer tooling. This includes a \pnpm-workspace.yaml\ defining package scopes (such as \agent-tars\, \gui-agent\, \tarko\, and \omni-tars\), a root \tsconfig.json\ for TypeScript compilation, and a \vitest.config.mts\ for test execution across the workspace. Additionally, standard configuration files are added, including \.editorconfig\, \.gitignore\, \.npmrc\, \.prettierignore\, and \.prettierrc.yml\ to enforce code style and build artifacts exclusion, alongside a \pdk.config.ts\ for release and changelog management. Documentation is also provided via \README.md\ and \CONTRIBUTING.md\, which outline the package hierarchy and development setup instructions.

multimodal · high confidence

Initial release of @agent-infra/shared package

This change introduces the new \@agent-infra/shared\ package, providing foundational shared utilities for the agent infrastructure. It includes core agent components such as the \Message\ class (supporting system, user, assistant, and tool roles with serialization) and the \Memory\ class for managing conversation history with configurable limits. The package also exposes MCP tool definitions via the \MCPServerName\ enum (FileSystem, Commands, Browser) and re-exports common, browser, and agent-tars types to support broader application integration.

multimodal/tarko/agent-server, packages/agent-infra/browser-use, packages/agent-infra/shared/src · high confidence

Initial release of @tarko/agent framework

The @tarko/agent package is now available as a standalone module, providing an event-stream driven meta agent framework for building multimodal agents. This release includes the core agent implementation, build configuration via rslib (supporting ESM and CJS outputs), TypeScript and Vitest test configurations, and comprehensive documentation. Users can now install and integrate the agent framework independently to leverage features like precise context engineering, multi-model compatible tool calls, and snapshot-based stability.

multimodal/tarko/agent · high confidence

Initial release of Tarko Agent CLI

The \@tarko/agent-cli\ package is introduced, providing a command-line interface for deploying and running agents built on the Agent Kernel. Users can launch an interactive Web UI, start a headless API server, or execute agents in silent mode via commands like \tarko run\, \tarko serve\, and \tarko request\. The CLI supports built-in agents (Agent TARS, Omni-TARS, MCP Agent) and custom agent scripts, with configuration managed through \tarko.config.{ts,yaml,json}\ files or CLI arguments. The package exports \defineConfig\ from \@tarko/interface\ and includes build-time metadata (git hash, build time) for debugging and identification.

multimodal/tarko/agent-cli · high confidence

Initial release of Tarko documentation site

The Tarko documentation website has been initialized, providing a comprehensive resource for developers. This includes a full API reference covering the Agent SDK, Agent Hooks, Tool Call Engines, and Agent UI Configuration, alongside practical getting-started examples for creating agents with custom tools and server integration. The site also features guides on advanced topics like Context Engineering, Agent Snapshots, and the Agent Protocol, as well as deployment instructions for CLI and server environments. Additionally, a CONTRIBUTING.md guide has been added to standardize documentation practices and ensure alignment between the docs and source code.

multimodal/websites/tarko · high confidence

Initial release of browser-based search engine adapters

This change introduces the core engine implementations for the browser search feature, adding new adapter classes for Google, Bing, Baidu, and Sogou. These engines handle generating search URLs, waiting for page loads, and extracting structured results (titles, URLs, and snippets) from the respective search result pages. A factory function (\getSearchEngine\) and an index file are also added to manage and export these engine instances.

packages/agent-infra/search/browser-search/src/engines · high confidence

Initial release of the Browser MCP server with vision mode and remote support

The \@agent-infra/mcp-server-browser\ package is now available, providing an MCP server for browser automation via Puppeteer. It introduces a vision mode that captures screenshots in WebP format and supports coordinate-based clicking, alongside standard tools for navigation, tab management, and DOM interaction. The server supports both local and remote browser connections via CDP or WebSocket endpoints, configurable at runtime through HTTP headers or CLI arguments, and can be deployed via Docker or run as a remote SSE/Streamable HTTP service.

packages/agent-infra/mcp-servers/browser · high confidence

Introduce @agent-infra/browser for agent-driven browser automation

The new @agent-infra/browser package provides a TypeScript-based browser control library built on Puppeteer, designed for use within Agent Tars. It enables agents to launch local or remote browser instances, create pages, navigate to URLs, and capture screenshots. The package includes utilities for automated web search workflows, such as extracting search result links and parsing page content using Readability, and features auto-detection of installed browsers across platforms. This release also includes example scripts for bot detection, search, and screenshotting, along with ESM and CJS build configurations.

packages/agent-infra/browser · high confidence

Introduce @agent-infra/logger for unified, isomorphic logging

The \packages/agent-infra/logger\ package has been added, providing a zero-dependency, isomorphic logging solution for both Node.js and browser environments. It features a \ConsoleLogger\ with colored output, hierarchical logging via \spawn\ for nested prefixes, and structured data logging with optional data transformation. The package includes full TypeScript support, configurable log levels (DEBUG through SILENT), and is built for ESM and CJS targets.

packages/agent-infra/logger · high confidence

Introduce @agent-infra/mcp-server-search for web search operations

A new MCP server package, @agent-infra/mcp-server-search, is added to enable web search capabilities. It exposes a 'web\_search' tool that supports multiple search providers including browser-based search, Bing, Tavily, SearXNG, and DuckDuckGo. The server can be run via stdio or SSE/Streamable-HTTP transports and allows configuration of the search engine, result count, API keys, and base URLs through command-line arguments or environment variables.

packages/agent-infra/mcp-servers/search · high confidence

Introduce @agent-infra/shared package for common utilities

The new @agent-infra/shared package provides common utilities for AI infrastructure projects. It is configured to build both ESM and CJS formats targeting the web, with TypeScript declarations and source maps enabled. The package includes standard configuration files for TypeScript, Vitest testing, and the rslib build tool, along with a CHANGELOG and README for installation and version tracking.

packages/agent-infra/shared · high confidence

Introduce @gui-agent/cli for automated desktop, web, and mobile interactions

Users can now install and run the new @gui-agent/cli package to automate GUI tasks via the command line. The CLI supports interactive setup or configuration via a local JSON file or remote YAML presets for Vision Language Model providers (OpenAI, Anthropic, VolcEngine, etc.). It allows users to target specific operators—desktop (via nut-js), web browser (Chrome), or Android (via ADB)—and execute automation instructions either through interactive prompts or direct command-line arguments. A 'reset' command is also provided to clear stored configuration.

multimodal/gui-agent/cli · high confidence

Introduce @gui-agent/operator-browser package for browser automation

The new @gui-agent/operator-browser package provides a unified interface for controlling browser instances, featuring LocalBrowserOperator for managing local browser processes and RemoteBrowserOperator for connecting to remote browsers via WebSocket endpoints. Users can now leverage configurable visual feedback options such as clickable element highlighting, action information overlays, and water flow effects during screenshots, along with support for multiple search engines (Google, Bing, Baidu) for initial navigation. The package exports a comprehensive BrowserOperator class that supports a wide range of UI automation actions including clicks, typing, scrolling, and hotkey execution, all built on top of the @agent-infra/browser and @agent-infra/puppeteer-enhance libraries.

multimodal/gui-agent/operator-browser · high confidence

Introduce @tarko/agent-interface package with strict GUI agent coordinates and event stream types

The new \@tarko/agent-interface\ package establishes the core protocol, types, and event stream specifications for the Tarko agent framework. For users, this introduces a standardized event system that now includes \ttftMs\ and \ttltMs\ performance metrics on assistant messages, as well as \messageId\ fields to properly correlate streaming and thinking events with their final responses. Additionally, the GUI agent action types (click, drag, scroll) have been updated to use percentage-based coordinates (0-1) instead of legacy absolute coordinates, and the agent constructor now supports a \webuiConfig\ property for dependency injection.

multimodal/tarko/agent-interface · high confidence

Introduce @tarko/agent-ui-builder for generating replay HTML

The new \@tarko/agent-ui-builder\ package provides a programmatic way to generate replay HTML files from agent session data. It exposes an \AgentUIBuilder\ class with a \dump()\ method to generate HTML (optionally saving it to a file) and an \upload()\ method to share the replay via a provider. The builder injects session events, metadata, and optional server/UI configuration into the static web UI, supporting both local static paths and remote HTML sources.

multimodal/tarko/agent-ui-builder · high confidence

Introduce @tarko/agent-ui-cli for generating and sharing agent replay HTML

The new \@tarko/agent-ui-cli\ package provides the \agui\ command-line tool, enabling users to generate interactive HTML replay files from agent trace data (supporting both JSON and JSONL formats). Users can customize the output using configuration files and apply custom transformers to convert non-standard log formats into the standard event stream. The CLI also supports uploading generated HTML to a sharing service for distribution.

multimodal/tarko/agent-ui-cli · high confidence

Introduce @tarko/context-engineer for contextual reference expansion and image compression

A new \@tarko/context-engineer\ package has been added to provide context engineering processors for Tarko. It introduces a \ContextReferenceProcessor\ that expands \@file:\ and \@dir:\ references in agent queries into actual file content and directory structures, including security checks to prevent path traversal attacks. Additionally, it includes an \ImageProcessor\ to compress base64 images in multimodal queries to reduce token usage, and a \WorkspacePack\ utility for high-performance, parallelized workspace content packing with filtering and deduplication.

multimodal/tarko/context-engineer · high confidence

Introduce @tarko/interface package for high-level configuration and implementation types

The new @tarko/interface package provides high-level TypeScript interfaces and utilities for configuring the Tarko Agent Server and CLI. It introduces the defineConfig helper for type-safe application configuration, standardizes agent implementation types (markdown, module, modulePath), and defines storage backends (memory, file, sqlite, database, mongodb). The package also exposes server options, CLI argument definitions, and Web UI configuration interfaces, including layout controls, navigation items, and GUI agent rendering strategies.

multimodal/tarko/interface · high confidence

Introduce @tarko/llm-client SDK for unified LLM provider integration

The new @tarko/llm-client package provides a TypeScript SDK that standardizes interactions with multiple Large Language Model providers—including OpenAI, Anthropic, Google Gemini, Mistral, Groq, AI21, Azure OpenAI, and generic OpenAI-compatible endpoints—under a single OpenAI-format interface. This library, forked from token.js to support multimodal and Azure capabilities, allows developers to configure a provider and model once and seamlessly switch between them while handling provider-specific nuances like streaming, tool calls, and image inputs automatically.

multimodal/tarko/llm-client · high confidence

Introduce @tarko/model-provider SDK with automatic Claude header support

The new @tarko/model-provider package provides a TypeScript SDK to configure and select from multiple OpenAI-compatible providers (including Ollama, LM Studio, Volcengine, and DeepSeek) via a unified interface. It automatically injects necessary 'anthropic-beta' headers for Claude models and applies specific experimental parameters for Azure OpenAI's Claude proxy service. Additionally, the model resolver now defaults unknown providers to 'openai-compatible' to support custom APIs, and allows runtime overrides for model and provider selection.

multimodal/tarko/model-provider · high confidence

Introduce @tarko/shared-utils library with security-focused session sanitization

A new shared utilities package (\@tarko/shared-utils\) is introduced, providing core helpers for the Tarko ecosystem. Most notably, it adds strict sanitization for session creation payloads (\sanitizeSessionAgentOptions\) and runtime settings (\filterDeclaredRuntimeSettings\) to prevent injection attacks—blocking dangerous keys like \mcpServers\ and \aioSandbox\ that could spawn local processes or redirect credentials. The library also includes utilities for deep object merging, item filtering, GUI agent action normalization, WebUI path routing, and server host resolution.

multimodal/tarko/shared-utils · high confidence

Introduce @tarko/ui as a shared component library

A new \@tarko/ui\ package has been added to provide reusable UI components and utilities for the Tarko Agent UI. This library exposes a set of basic components (such as \Dialog\, \ConfirmDialog\, \LoadingSpinner\, and \Tooltip\), AI-specific components (\ActionBlock\, \BrowserShell\, \ThinkingAnimation\), and code editing tools (\CodeEditor\, \MonacoCodeEditor\, \DiffViewer\). The package is configured for ESM output with TypeScript declarations and is intended to be installed via \pnpm add @tarko/ui\ to standardize UI elements across the application.

multimodal/tarko/ui, multimodal/tarko/ui/src · high confidence

Introduce ADB Operator for Android device control

Added a new ADB operator component that enables the GUI Agent to interact with Android devices via ADB. This operator supports taking screenshots (with fallback mechanisms for restricted apps), simulating touch gestures (tap, swipe, long-press), sending keyboard input, and retrieving screen context. It is packaged as \@gui-agent/operator-adb\ and includes an example test runner to demonstrate usage.

multimodal/gui-agent/operator-adb · high confidence

Introduce AIO (All-in-One) GUI Agent operator

Adds a new \@gui-agent/operator-aio\ package that provides an All-in-One operator for remote computer control. This operator supports mouse operations (click, drag, scroll), keyboard input, hotkeys, and screenshot capture via a hybrid architecture: \AIOComputer\ handles actions through an HTTP-based sandbox client, while \AIOBrowser\ manages a remote browser instance for page navigation and visibility detection. The package includes a specialized \AIOGameOperator\ for game environments, a test runner example, and comprehensive unit tests for the computer actions.

multimodal/gui-agent/operator-aio · high confidence

Introduce Agent Server Next with secure middleware and extensible hook system

The \agent-server-next\ module is introduced, providing a new server implementation built on Hono that features a priority-based middleware hook system for extensibility. This release adds critical security protections, including Host header validation to prevent DNS rebinding attacks, CSRF token validation for mutation requests, and a configurable CORS whitelist. It also includes built-in middleware for authentication, session restoration, request ID tracking, and access logging, along with example configurations for runtime settings and custom hook registration.

multimodal/tarko/agent-server-next · high confidence

Introduce Bing Search client and isomorphic search examples

This change adds the \@agent-infra/bing-search\ package, providing a lightweight, type-safe TypeScript client for the Bing Search API with zero external runtime dependencies, and updates the \search/examples\ directory to include runnable demonstrations for Bing, Browser, and Tavily search providers via a unified \SearchClient\.

packages/agent-infra/search/bing-search, packages/agent-infra/search/search/examples · high confidence

Introduce Commands MCP server with stdio, SSE, and Streamable HTTP support

This change adds the \@agent-infra/mcp-server-commands\ package, an MCP server that allows users to execute arbitrary commands. It supports local execution via stdio (with an optional \--cwd\ argument) and remote access via SSE or Streamable HTTP (using the \--port\ argument, defaulting to 8089). The package includes configuration for the MCP official registry, Smithery, and build tooling for both ESM and CJS targets.

packages/agent-infra/mcp-servers/commands · high confidence

Introduce DuckDuckGo search tool for AI agents

Added the \@agent-infra/duckduckgo-search\ package, providing a lightweight, type-safe TypeScript client for performing web searches via DuckDuckGo. This new tool allows AI agents to retrieve search results with configurable parameters such as query, result count, safe search settings, and time range. The client includes built-in retry logic for reliability and supports custom logging, enabling seamless integration into agent workflows for real-time information retrieval.

packages/agent-infra/search/duckduckgo-search · high confidence

Introduce GUI Agent SDK with multi-platform and multi-model support

The \multimodal/gui-agent/agent-sdk\ package is introduced, providing a new SDK for building GUI agents that interact with Android, desktop computers, and web browsers. The SDK supports multiple model providers including Anthropic Claude, OpenAI, and Volcengine ARK (Doubao/O-TARS), and includes example configurations for each combination. It features a configurable tool call engine, screenshot capture with automatic image detail calculation, and a test runner CLI for validating agent behavior against different operator backends.

multimodal/gui-agent/agent-sdk · high confidence

Introduce GUI Agent plugin with screenshot compression and vision control

The \multimodal/omni-tars/gui-agent\ directory now contains the core implementation for the GUI Agent, including the \GuiAgentPlugin\ which handles browser interactions via an \OperatorManager\ and processes LLM tool calls through \GUIAgentToolCallEngine\. A key behavioral change is the introduction of automatic screenshot compression: the agent now compresses browser screenshots to WebP format (80% quality) before sending them to the model, and dynamically selects a \detail\ parameter ('low' or 'high') based on the compressed image's pixel count to optimize token usage. The \GUIAgentT5Adapter\ standardizes these actions into a \browser\_vision\_control\ format, and the plugin registers the necessary tools for the agent to execute GUI operations.

multimodal/omni-tars/gui-agent · high confidence

Introduce MCP Agent framework with server filtering and configurable connection timeouts

This change introduces the \@tarko/mcp-agent\ package and its \@tarko/mcp-agent-interface\ contract, providing an event-stream driven framework for building multimodal agents. Users can now configure MCP servers via stdio or HTTP/SSE transports and control which servers are active using the new \mcpServer\ filter options (\include\/\exclude\). The agent also exposes a \defaultConnectionTimeout\ option (defaulting to 60 seconds) to manage client connection lifecycles. The release includes example implementations for GitHub code review tasks across various model providers (Azure OpenAI, Volcengine/Doubao) and demonstrates tool filtering capabilities.

multimodal/tarko/mcp-agent · high confidence

Adds a new MCP Agent plugin that integrates Model Context Protocol (MCP) tools, specifically enabling web search via Tavily and Google, and web page reading via LinkReader. This change introduces the \McpAgentPlugin\ to manage MCP server connections, a custom \McpToolCallEngine\ to parse model responses containing \\<mcp\_env\>\ tags and tool calls, and a \McpToolCallEngineProvider\ to route tasks to this engine when MCP-related tools are detected. Users can now leverage these external data sources within the agent workflow.

multimodal/omni-tars/mcp-agent/src · high confidence

Introduce MCP shared type definitions for client and server configurations

This change adds the foundational TypeScript type definitions for the MCP (Model Context Protocol) integration within the \mcp-shared\ package. It defines the \MCPServer\ union type, enabling configuration for stdio, SSE, streamable-http, and builtin server transports, along with support for configurable timeouts and tool/prompt filtering. Additionally, it introduces server-side types for tool schemas and results, providing the necessary structure for defining and handling MCP tools and prompts.

packages/agent-infra/mcp-shared/src · high confidence

Introduce NutJS Operator for desktop GUI automation

Added a new \@gui-agent/operator-nutjs\ package that implements the \Operator\ interface using the NutJS library, enabling the GUI agent to interact with the local desktop environment. This operator supports screenshot capture (with high-DPI scaling), mouse actions (move, click, drag, scroll), keyboard input (type, hotkeys), and wait commands, providing the concrete backend implementation for desktop-based agent operations.

multimodal/gui-agent/operator-nutjs · high confidence

Introduce Omni-TARS composable multi-agent architecture

The Omni-TARS agent now uses a modular, plugin-based architecture that allows mixing and matching capabilities such as GUI interaction, code execution, and MCP tools. Users can now select from different agent modes (Omni, GUI, Game) to tailor the agent's behavior, with the Omni mode providing a comprehensive set of tools including web search, code sandboxing, and GUI control. The system supports configurable runtime settings, enabling users to adjust parameters like agent mode and browser control directly within the interface. Additionally, the agent includes pre-configured welcome cards for quick access to common tasks like playing games, researching topics, and writing code.

multimodal/omni-tars/omni-agent · high confidence

Introduce Seed MCP Agent library with tool-calling and example demos

This location introduces the \@multimodal/seed-mcp-agent\ library, providing a configurable agent that integrates with OpenAI-compatible models and external tools via MCP (Model Context Protocol). The agent supports tool-calling capabilities, parsing structured responses for thinking, answers, and function calls (e.g., Search, LinkReader), and can be configured with API keys for services like Tavily and Google Search. The release includes example scripts demonstrating usage with OpenAI, Azure OpenAI (Claude), and direct MCP client connections, along with configuration files for building (rslib), testing (vitest), and development (tarko).

multimodal/omni-tars/mcp-agent · high confidence

Introduce agent-server-next controller layer with session, query, and runtime settings management

The \agent-server-next\ module now includes a new controller layer that exposes endpoints for managing agent sessions, executing queries (both streaming and non-streaming with optional image compression and context reference expansion), and handling runtime settings. This includes creating and retrieving sessions, updating session metadata and model configurations, and managing user-specific configurations in multi-tenant environments. The system also supports sharing sessions via static HTML and provides health check and version information endpoints.

multimodal/tarko/agent-server-next/src/controllers · high confidence

Introduce browser automation library with local and remote support

The \packages/agent-infra/browser\ package is initialized, providing a browser automation library built on \puppeteer-core\. It introduces a \LocalBrowser\ class for controlling installed Chrome, Edge, and Firefox instances, and a \RemoteBrowser\ class for connecting to remote browser instances via WebSocket or CDP endpoints. The library includes a \BrowserFinder\ utility to automatically detect installed browsers, supports configuration options such as user data directories, proxy settings, and viewport dimensions, and implements a \BaseBrowser\ abstract class with page lifecycle listeners to manage active pages.

packages/agent-infra/browser/src · high confidence

Introduce browser-use agent infrastructure

Adds the core browser-use agent implementation in \packages/agent-infra/browser-use/src\, including the \Executor\ that orchestrates \Navigator\, \Planner\, and \Validator\ agents, along with the action schemas, model output definitions, and event management system required for automated browser interaction.

packages/agent-infra/browser-use/src · high confidence

Introduce centralized event processing registry for agent streams

The agent UI now uses a centralized \EventHandlerRegistry\ to manage and dispatch agent stream events. This new architecture registers specific handlers for user/assistant messages, tool calls, system events, and agent run lifecycle stages, allowing the UI to process these events consistently. Additionally, the system now supports an optional raw event stream viewer, which is conditionally enabled via configuration, and includes logic to skip specific streaming events during session replay to ensure accurate state restoration.

multimodal/tarko/agent-ui/src/common/state/actions/eventProcessors · high confidence

Introduce create-new-mcp CLI to scaffold MCP server projects

Developers can now use the \create-new-mcp\ command-line tool (via \npm create new-mcp@latest\, \yarn create new-mcp\, \pnpm create new-mcp\, or \bun create new-mcp\) to scaffold a new Model Context Protocol (MCP) server project. The generated template includes a TypeScript-based server implementation using the MCP SDK, support for both stdio and remote transports (SSE and Streamable HTTP), and configuration files for building with rslib and testing with Vitest. The scaffolded project also includes a \server.json\ manifest for MCP registry registration and a \smithery.yaml\ file for deployment on Smithery.

packages/agent-infra/create-new-mcp · high confidence

Introduce dedicated Code Agent with sandbox-backed execution tools

Users can now instantiate a specialized Code Agent that leverages the @agent-infra/sandbox infrastructure for secure code execution. This agent integrates three core tools—execute\_bash, StrReplaceEditor, and JupyterCI—driven by a custom CodeToolCallEngine optimized for code-related tasks. The engine detects code environments via tool names or \<code\_env\> tags and handles streaming responses to extract tool calls and content. A health check ensures the sandbox is reachable before operation, and the agent is exposed via a builder function for easy composition.

multimodal/omni-tars/code-agent/src · high confidence

Introduce dynamic auto-activation for embedded frames based on runtime settings

The agent-ui now supports a new \autoActive\ property for navigation items, allowing embedded frames to be conditionally activated based on real-time runtime settings. Users can configure this with a boolean for static behavior or a JavaScript expression (e.g., \runtimeSettings.agentMode === 'game'\) that is evaluated against the current session's runtime settings. This feature is demonstrated in the new \webui-config.json\ example and documented in \runtime-settings-autoactive.md\, enabling more context-aware UI interactions.

multimodal/tarko/agent-ui · high confidence

Introduce high-performance MCP HTTP server with SSE and Streamable HTTP support

The \mcp-http-server\ package now provides a high-performance server capable of serving Model Context Protocol (MCP) over both HTTP and Server-Sent Events (SSE). It supports Streamable HTTP transport (with configurable stateless or stateful modes) and SSE transport, allowing clients to connect via standard HTTP POST or persistent SSE streams. The server exposes configurable endpoints (defaulting to \/mcp\, \/sse\, and \/message\) and allows custom route prefixes. It passes HTTP request headers to the MCP server factory, enabling context-aware server creation, and supports custom Express middlewares for features like authentication. The package is built with TypeScript, supports both ESM and CommonJS outputs, and includes comprehensive tests for transport connectivity, header passing, and route configuration.

packages/agent-infra/mcp-http-server · high confidence

Introduce isomorphic search client and browser-based search provider

This change introduces two new packages: \@agent-infra/search\, an isomorphic client that unifies multiple search providers (Bing, Tavily, and Browser) under a single API, and \@agent-infra/browser-search\, a stealth-mode web search library built on Puppeteer. The \browser-search\ package supports multi-engine search (Google, Bing, Baidu), content extraction, and concurrent processing, while the \search\ package allows users to switch between providers seamlessly. Both packages are configured to build for ESM and CJS formats targeting the web environment.

packages/agent-infra/search/browser-search, packages/agent-infra/search/search · high confidence

Introduce local browser-based web search capability

This change introduces a new \BrowserSearch\ component within the agent infrastructure that performs web searches by launching a browser instance (local or remote via CDP endpoint) to scrape search engine results. Users can now execute search queries against configurable engines (defaulting to Google), with options to control concurrency, exclude specific domains (such as Reddit, Twitter, and YouTube), and retrieve either full page content or just snippets. The implementation includes stealth techniques to mimic a standard browser and handles result extraction and content truncation, providing a programmatic way for agents to gather information from the web.

packages/agent-infra/search/browser-search/src · high confidence

Introduce new API route definitions for the agent server

The \src/routes\ directory now contains explicit route definitions for the \agent-server-next\ service, establishing the API surface for session management, query execution, user configuration, system information, and CSRF token generation. This change introduces the structural wiring for endpoints such as \/api/v1/sessions\, \/api/v1/user\, \/api/v1/health\, and \/api/v1/csrf-token\, effectively defining the available API capabilities for this server component.

multimodal/tarko/agent-server-next/src/routes · high confidence

Introduce new \`@tarko/agent-server-next\` server implementation

The \multimodal/tarko/agent-server-next/src\ directory now contains the source code for a new agent server implementation. This includes the main \AgentServer\ class built on Hono, which handles session management, DAO integration, and a hook-based middleware system. The package exports the server class, utility functions for logging, and type definitions for context variables and user information, establishing the core API surface for this new server architecture.

multimodal/tarko/agent-server-next/src · high confidence

Introduce pnpm-dev-kit (pdk) for automated release and changelog workflows

The \infra\ area now includes the \pnpm-dev-kit\ (pdk) tooling, adding a new configuration file (\pdk.config.ts\) and a changelog (\CHANGELOG.md\) to the repository. This introduces support for automated release processes, including versioning, git tag management (with a \pdk@\ prefix), and changelog generation. The addition of the \pdk\ subdirectory and its associated build/test configs (TypeScript, Vitest, Rslib) establishes the infrastructure for these automated workflows, allowing for streamlined publishing and release branch creation.

infra · high confidence

Introduce remote operator support for UI-TARS Desktop

UI-TARS Desktop now supports remote operation via a new remote operator implementation. This change adds the necessary client-side infrastructure to connect to and control remote sandboxes, including authentication logic for device registration and token signing, proxy clients for sending input commands (mouse, keyboard, screenshots) to remote instances, and subscription management for accessing remote browser sessions. Users can now leverage remote computing resources for UI automation tasks instead of relying solely on local execution.

apps/ui-tars/src/main/remote · high confidence

Introduce sandbox allocation and session sharing services in agent-server-next

The \agent-server-next\ service layer now includes dedicated services for sandbox management and session sharing. The new \SandboxManager\ and \SandboxScheduler\ handle the creation, deletion, and intelligent allocation of sandbox instances (supporting Shared-Pool, User-Exclusive, and Session-Exclusive strategies) for agent sessions. Additionally, the new \ShareService\ enables users to generate shareable HTML snapshots of their sessions and upload them to external providers, while the \UserConfigService\ provides a DAO-backed interface for managing user-specific settings like sandbox quotas and allocation strategies.

multimodal/tarko/agent-server-next/src/services · high confidence

Introduce secure MCP filesystem server with network transport support

Added a new MCP filesystem server implementation that allows agents to read, write, edit, and search files within strictly defined allowed directories. The server enforces security by validating all paths against a whitelist and resolving symlinks to prevent directory traversal. It supports both standard stdio transport and network-based SSE/HTTP transport via the mcp-http-server library, configurable through command-line options for host and port.

packages/agent-infra/mcp-servers/filesystem/src · high confidence

Introduce server-next utility modules for agent resolution, security, and configuration

The \agent-server-next\ package now includes a new \utils\ directory providing core support functions for the server implementation. This adds an agent resolution system (\agent-resolver.ts\) that dynamically loads agent modules by path or reference, and a configuration sanitizer (\config-sanitizer.ts\) that masks sensitive data like API keys and truncates instructions for safe UI display. It also introduces a structured error handling system (\error-handler.ts\) with standardized error codes and responses, an event stream bridge (\event-stream.ts\) to forward agent events to clients, and model utilities (\model-utils.ts\) to manage available models and filter sensitive metadata from session data. Additional utilities include an LLM-powered slug generator (\slug-generator.ts\) for semantic URL slugs, URL normalization (\url.ts\), and web UI configuration merging (\webui/config.ts\).

multimodal/tarko/agent-server-next/src/utils · high confidence

Introduce shared GUI agent SDK with standardized action types and utilities

This change establishes a new shared library for the GUI agent, providing a standardized TypeScript SDK that defines core types (such as BaseAction, Coordinates, and ParsedGUIResponse) and abstract base classes for Agents, Operators, and Action Parsers. It includes utility functions to unify various action input names (e.g., mapping 'left\_click' to 'click') and serialize actions into string formats, as well as helpers for coordinate normalization and system prompt assembly. The package is configured to build both ESM and CommonJS outputs for Node.js environments.

multimodal/gui-agent/shared · high confidence

Introduces a composable multi-agent architecture with plugin-based tool engines

The core library now supports a modular, multi-agent system where distinct capabilities (code, MCP, and computer use) are implemented as independent plugins. A new \ComposableAgent\ orchestrates these plugins, dynamically generating system prompts and registering tools from all active environments. Additionally, a \ComposableToolCallEngine\ allows multiple tool-call backends to be registered and selected based on priority and context, enabling flexible model integration and streaming processing within the agent loop.

multimodal/omni-tars/core/src · high confidence

Introduces new UI components for chat state management

The chat interface now includes dedicated components to handle specific user states: EmptyState displays a modern prompt for starting conversations or replaying sessions with auto-play countdowns; OfflineBanner alerts users when disconnected and offers a reconnect button; ScrollToBottomButton provides a smooth, animated way to return to the latest messages; and SessionCreatingState shows an enhanced loading indicator while a new agent session is being prepared.

multimodal/tarko/agent-ui/src/standalone/chat/components · high confidence

Introduction of local browser automation and remote operator support

The application now supports running the UI-Tars agent via a local browser (Chrome) or remote operators, in addition to the existing local computer mode. A new \browserCheck\ service verifies Chrome availability before execution, and the \runAgent\ service initializes the appropriate operator (LocalBrowser, RemoteComputer, or RemoteBrowser) based on user settings. This change also introduces support for the Responses API for model interactions and allows users to customize the search engine used by the local browser operator.

apps/ui-tars/src/main/services · high confidence

MCP client now supports configurable timeouts and tool/prompt filtering

The \@agent-infra/mcp-client\ package introduces two key capabilities for users managing Model Context Protocol connections. First, it adds configurable timeouts, allowing you to control how long the client waits for responses from MCP servers, which helps prevent hangs in slow or unresponsive environments. Second, it provides a filtering mechanism for tools and prompts using glob patterns (allow and block lists), enabling you to restrict which server capabilities are exposed to your application. These features are documented in the new package README and tracked in the changelog starting from version 1.2.19 (filtering) and 1.2.20 (timeout).

packages/agent-infra/mcp-client · high confidence

New @common/electron-build package for Electron packaging automation

A new \@common/electron-build\ package has been added to \packages/common\ to standardize Electron build and packaging workflows. It includes a \postMake\ hook that automatically generates the \latest-mac.yml\, \latest.yml\, and other platform-specific update manifest files required for auto-updates, ensuring these files are created alongside the build artifacts. The package also provides utility functions like \findUp\ and \getExternalPkgsDependencies\ to assist with module resolution and dependency analysis during the build process.

packages/common · high confidence

New @tarko/agio, @tarko/config-loader, and @tarko/shared-media-utils packages introduced

This release adds three new packages to the Tarko ecosystem. The \@tarko/agio\ package provides a standardized server-side monitoring protocol for AI agents, offering a consistent event schema and TypeScript utilities to track performance metrics, usage patterns, and operational health. The \@tarko/config-loader\ SDK enables applications to load configuration from various file formats (TypeScript, JavaScript, JSON, and YAML) with support for environment-specific logic and type safety. Additionally, the \@tarko/shared-media-utils\ package introduces an \ImageCompressor\ utility that allows for high-performance image compression to formats like WebP, JPEG, and PNG.

multimodal/tarko/agio, multimodal/tarko/config-loader, multimodal/tarko/shared-media-utils · high confidence

New Agent CLI core with built-in agent support and filtering

The \agent-cli/src/core\ module now provides the foundational CLI structure, introducing built-in agent support (Agent TARS, Omni Agent, MCP Agent) and the ability to filter tools and MCP servers via \--tool\ and \--mcpServer\ options. The CLI also adds an exclusive server mode to reject new requests while an agent is running, supports unknown option passthrough for agent-specific flags, and standardizes model configuration under the \--model\ namespace (including \--model.displayName\).

multimodal/tarko/agent-cli/src/core · high confidence

New AgentSession class for managing agent lifecycle and event persistence

The agent server now introduces a dedicated \AgentSession\ class to manage individual agent execution contexts. This component handles the creation and initialization of agent instances, bridges agent events to clients via \EventStreamBridge\, and manages the persistence of session events to storage. It specifically filters out high-frequency streaming events (such as \assistant\_streaming\_message\ and \assistant\_streaming\_tool\_call\) from persistent storage to optimize replay performance, while ensuring that initialization events and other critical state changes are saved. The session also supports runtime settings transformation and AGIO monitoring event processing.

multimodal/tarko/agent-server/src/core · high confidence

New CLI commands for workspace management, server operation, and agent interaction

The agent CLI now exposes a structured set of commands in the \core/commands\ module to manage workspaces, start servers, and run agent queries. Users can initialize and configure a global workspace (including selecting configuration formats like TypeScript, JSON, or YAML, and default model providers) via the new \global-workspace\ command. The \serve\ command starts the agent in headless API-only mode, while \start\ launches the interactive web UI, handling static file serving, URL generation, and automatic browser opening. Additionally, the \run\ command allows executing agent queries in either silent mode (outputting results directly to stdout) or server mode (using a temporary local server for one-shot requests), and the \request\ command provides a direct interface to send LLM requests to various providers with support for streaming and semantic formatting.

multimodal/tarko/agent-cli/src/core/commands · high confidence

New CLI, action parser, and Electron IPC packages for UI-Tars

This release introduces three new packages to the UI-Tars ecosystem. The \@ui-tars/cli\ package provides a command-line interface to run the UI-TARS agent, supporting both desktop (nut-js) and Android (ADB) operators with interactive configuration prompts. The \@ui-tars/action-parser\ package handles the parsing of model predictions, supporting both 'bc' and 'o1' modes, and includes logic for smart resizing and coordinate parsing for UI-TARS 1.5. Additionally, the \@ui-tars/electron-ipc\ package offers a type-safe, Zod-validated IPC solution for Electron applications, enabling seamless communication between main and renderer processes.

packages/ui-tars · high confidence

New DAO layer with MongoDB and SQLite storage backends

The agent server now includes a dedicated data access object (DAO) layer that abstracts storage operations for sessions, events, user configurations, and sandbox allocations. This layer supports both MongoDB and SQLite backends, allowing the system to persist agent state using either database engine. A factory function (\createDAOFactory\) handles the instantiation of the appropriate backend-specific DAOs based on configuration, providing a unified interface for session management, event logging, and user settings.

multimodal/tarko/agent-server-next/src/dao · high confidence

New IPC route structure for agent, browser, and settings management

The application introduces a new set of IPC (Inter-Process Communication) routes in the main process to manage core functionalities. This includes an agent route for controlling the AI agent's lifecycle (run, pause, resume, stop) and managing conversation history, a browser route to check local browser availability, and a settings route that adds support for the OpenAI Responses API alongside the existing chat completions for model availability checks. Additionally, new routes handle remote resource allocation (for computers and browsers), system permission checks on macOS, screen size detection, and application window management including update checks.

apps/ui-tars/src/main/ipcRoutes · high confidence

New MCP server for running commands and scripts

Adds a new Model Context Protocol (MCP) server that enables agents to execute shell commands and run scripts on the host machine. The server exposes 'run\_command' and 'run\_script' tools, allowing users to specify the command, interpreter, and working directory. It supports both stdio transport for local use and SSE/HTTP transport via the mcp-http-server library, with the HTTP server defaulting to the loopback interface (127.0.0.1) for security. The implementation includes utilities for handling stdin piping, including a specific workaround for the fish shell, and structures output into standardized text messages for stdout, stderr, and errors.

packages/agent-infra/mcp-servers/commands/src · high confidence

New Open Operator example for browser-based AI agents

This release adds a new example application, Open Operator, located in the examples/operator-browserbase directory. It demonstrates how to build a web agent using the UI-TARS SDK and Browserbase. The example includes a Next.js frontend with a chat interface, API routes for managing browser sessions and agent execution, and configuration files for environment variables and linting. Users can now run this example to see an AI agent interact with a headless browser via the Browserbase platform.

examples/operator-browserbase · high confidence

New UI component library and code editor integration

This update introduces a comprehensive set of new UI components and a code editor integration. The \basic\ directory adds foundational elements including \Dialog\, \ConfirmDialog\, \Dropdown\, \Menu\, \Select\, \Tooltip\, and \LoadingSpinner\, providing a consistent design system for user interactions. The \ai\ directory introduces \ActionBlock\ for displaying AI actions with status and timing, \BrowserShell\ for embedding browser-like views, and \ThinkingAnimation\ for visualizing AI processing states. Additionally, the \code-editor\ directory adds a \CodeEditor\ component for displaying code with syntax highlighting and line numbers, and a \DiffViewer\ component that integrates Monaco Editor to display file diffs with addition/deletion counts.

multimodal/tarko/ui/src/components · high confidence

New UI hooks for layout, replay, and session management

The agent-ui now includes a set of new hooks in the common hooks directory to support enhanced user interface capabilities. The \useLayout\ hook centralizes control for the sidebar and workspace panel collapse states. A comprehensive replay system is introduced via \useReplay\ and \useReplayMode\, enabling users to playback agent sessions with auto-play countdowns, speed control, and file focus features. Session interactions are consolidated in \useSession\, which aggregates state for messages, tools, and connection status. Additionally, \useLogoType\ allows dynamic logo switching via URL parameters, \useThemeInitialization\ manages dark/light mode persistence, \useStableValue\ optimizes rendering performance for streaming content, and \useTool\ provides consistent iconography for AI tool calls.

multimodal/tarko/agent-ui/src/common/hooks · high confidence

New action parser for GUI agent

Added a new action parser component for the GUI agent that parses LLM-generated action strings into standardized BaseAction objects. The parser supports multiple input formats including Omni format (with \<computer\_env\> and \<answer\> tags), BC mode (Thought/Action patterns), and OpenAI function call JSON format. It handles coordinate parsing from various formats (parentheses, brackets, XML tags like \<point\> and \<bbox\>), normalizes action types and parameter names, and validates required parameters. The component includes helper utilities for coordinate parsing, format-specific parsers (XML, Omni, UnifiedBC), and comprehensive test coverage for parsing edge cases including hallucination scenarios.

multimodal/gui-agent/action-parser · high confidence

New agent environment definitions and mode-specific system prompts

The \multimodal/omni-tars/core/src/environments\ directory now contains dedicated TypeScript modules that define the system prompts and tool capabilities for the agent. \code.ts\, \computer.ts\, and \mcp.ts\ introduce specific environment definitions for code execution (including \execute\_bash\, \JupyterCI\, and \str\_replace\_editor\), computer use (GUI actions like \navigate\, \click\, \type\), and Model Context Protocol (MCP) functions (\Search\, \LinkReader\). \prompt.ts\ consolidates these into a unified system prompt, while \prompt\_t5.ts\ introduces mode-specific prompt generation logic that tailors the agent's behavior and available functions based on the \AgentMode\ (omni, gui, or game).

multimodal/omni-tars/core/src/environments · high confidence

New agent examples for abort, hooks, model providers, and tool calls

The examples directory now includes comprehensive demonstrations of core agent capabilities. Users can learn how to abort running tasks (including streaming and concurrent scenarios), customize agent behavior using hooks like \onPrepareRequest\ and \onBeforeLoopTermination\, and configure various model providers such as OpenAI, Anthropic, Volcengine, and Azure OpenAI. Additionally, new examples cover tool call strategies (native, prompt engineering, structured outputs), image generation, and a planner agent implementing a plan-and-solve methodology.

multimodal/tarko/agent/examples · high confidence

New agent operator and prompt templates for UI-Tars v1.5

The agent module now includes a new \NutJSElectronOperator\ class that handles screenshot capture via Electron's \desktopCapturer\ and manages text input on Windows using the clipboard, alongside a comprehensive set of system prompt templates (\prompts.ts\) defining action spaces and reasoning examples for UI-Tars v1.5, including specific configurations for Doubao models and a 'Poki' use case. These changes are accompanied by unit tests for the new operator's screenshot functionality.

apps/ui-tars/src/main/agent · high confidence

New agent runner architecture with streaming and hook support

The agent runner has been restructured into a new modular pipeline consisting of LLMProcessor, LoopExecutor, ToolProcessor, and StreamAdapter. This change introduces a dedicated streaming adapter that converts internal agent events into an AsyncIterable for client consumption, supports runtime model switching via the LLMProcessor, and exposes new lifecycle hooks (onEachAgentLoopEnd, onPrepareRequest) allowing agents to dynamically modify system prompts and tools per iteration.

multimodal/tarko/agent/src/agent/runner · high confidence

New agent runtime settings and enhanced message input components

The chat message input area now supports configurable agent runtime settings, allowing users to toggle and adjust options (such as browser, search, or thinking modes) directly within the session. This is implemented via new components like AgentOptionsSelector and ChatBottomSettings, which load and manage these settings from the API, and a new icon utility to visually represent them. Additionally, the input experience is improved with a new ChatInput component that integrates contextual file references (e.g., @file:, @dir:) and a dedicated inline image preview component (ImagePreviewInline) for better attachment management.

multimodal/tarko/agent-ui/src/standalone/chat/MessageInput · high confidence

New agent-server utility modules for configuration, resolution, and security

The agent-server now includes a suite of new utility modules in src/utils to handle core agent lifecycle and security tasks. The agent-resolver module enables dynamic loading of agent implementations from module paths, respecting workspace directories for relative imports. A config-sanitizer utility masks sensitive data like API keys and truncates instructions for safe UI display, while model-utils provides functions to retrieve and validate available models, including a public-facing view that excludes secrets. Security is enhanced by a workspace-static-server that serves files with strict path-traversal protection and session isolation, and an error-handler that normalizes errors into structured responses to prevent process crashes. Additional utilities include an event-stream bridge for forwarding agent events to clients, an LLM-powered slug generator with multilingual support, and URL helpers.

multimodal/tarko/agent-server/src/utils · high confidence

New browser utilities for extracting page content and converting to Markdown

The \@agent-infra/shared\ package now includes a new \browser\ module that provides tools for processing web page content. It introduces \extractPageInformation\ to pull readable titles and HTML content from a page using Mozilla's Readability algorithm, and \toMarkdown\ to convert HTML into Markdown format using Turndown with GFM support. These utilities are exported from the package's browser entry point, enabling consumers to easily parse and format web content within browser environments.

packages/agent-infra/shared/src/browser · high confidence

New centralized configuration system and AGIO observability in the agent CLI

The agent CLI now uses a new configuration layer (src/config) that loads settings from a defined priority chain: CLI arguments, workspace config files (tarko.config.ts/yaml/json), global workspace configs, CLI config files, and remote URLs, with support for .env and .env.local files in the workspace. The builder merges these sources, handles deprecated CLI options (provider, apiKey, baseURL, shareProvider, thinking), and applies tool/MCP server filters, server options, and WebUI defaults. A new AGIO observability provider (src/agio) batches and sends agent lifecycle and runtime events to a configurable provider URL, improving telemetry performance. Configuration loading and merging are now logged in debug mode, with warnings for deprecated options.

multimodal/tarko/agent-cli/src/config · high confidence

New configuration and CLI argument interfaces for Agent TARS

The \multimodal/agent-tars/interface\ package now exposes a structured configuration system and CLI argument definitions. Users can define application settings using the new \defineConfig\ helper, which provides TypeScript type-checking for options including search providers (browser\_search, tavily, bing\_search), browser control modes (dom, visual-grounding, hybrid), and planning capabilities. The package also introduces \AgentTARSCLIArguments\ to standardize command-line input parsing, ensuring type safety by picking relevant fields from the main application config while maintaining backward compatibility for deprecated browser control shortcuts.

multimodal/agent-tars/interface · high confidence

New configuration types for Agent Tars search, models, and MCP settings

The Agent Tars shared types package now exposes structured configuration interfaces for core features. Users can configure search via the new \SearchSettings\ type, which supports multiple providers (BrowserSearch, Bing, Tavily, Duckduckgo, SearXNG) and local browser engines (Google, Bing, Baidu, Sogou). Model configuration is defined by \ModelSettings\ and \ModelProvider\, explicitly including DeepSeek alongside OpenAI, Anthropic, Gemini, Mistral, and Azure OpenAI. Additionally, \MCPSettings\ and \FileSystemSettings\ are introduced to manage MCP server connections and file system access, all consolidated under a unified \AppSettings\ interface.

packages/agent-infra/shared/src/agent-tars-types · high confidence

New content extraction benchmark suite for evaluating extraction strategies

A new benchmarking tool has been added to the \multimodal/benchmark/content-extraction\ directory to evaluate and compare different web content extraction strategies. The suite includes a \BenchmarkRunner\ that measures execution time, token count, and memory usage across four distinct strategies: a raw HTML baseline, the current Markdown implementation, a Mozilla Readability-based approach, and a new Optimized strategy using advanced content density analysis. Users can run these benchmarks against specific URLs to determine which strategy offers the best balance of performance and token efficiency.

multimodal/benchmark/content-extraction · high confidence

New core utility modules for parsing, typing, and environment handling

This change introduces three new utility files in the core package: \parser.ts\ adds logic to parse structured agent responses (extracting 'think' and 'answer' content and tool calls from code, MCP, and computer environments), \types.ts\ defines TypeScript interfaces for API responses, shell execution, Jupyter, and file operations, and \hepler.ts\ (sic) provides utilities for extracting AIO sandbox URLs/ports and generating timestamps.

multimodal/omni-tars/core/src/utils · high confidence

New example configurations for runtime settings with UI placement and enum labels

Added two new example configuration files (\conditional-visibility-settings.config.ts\ and \enhanced-runtime-settings.config.ts\) in the \examples\ directory that demonstrate how to configure runtime settings with custom UI placement (e.g., \chat-bottom\ vs \dropdown-item\) and localized enum labels. These examples show how to define conditional visibility for settings based on other options, apply global or per-setting placement overrides, and transform UI settings into agent-specific options via a \transform\ function.

examples · high confidence

New home page with welcome cards and session creation flow

The home page has been redesigned to include a new layout featuring welcome cards that allow users to quickly start specific tasks or modes (such as game mode) by selecting from categorized options. The session creation process now supports passing runtime settings and agent options from the home page, enabling persistent configuration across sessions or one-time options for specific tasks. Users can also directly start a chat from the home page, with the system handling session creation and message sending seamlessly.

multimodal/tarko/agent-ui/src/standalone/home · high confidence

New modular tool-call engine architecture with streaming support

The agent's tool-calling logic has been restructured into a modular engine system located in \multimodal/tarko/agent/src/tool-call-engine\. This change introduces three distinct implementations: \NativeToolCallEngine\ for models with native function-calling support, \PromptEngineeringToolCallEngine\ which uses a custom state machine to parse tool calls from text streams, and \StructuredOutputsToolCallEngine\ which leverages JSON schema constraints for structured responses. A shared utility, \buildToolCallResultMessages\, now handles the conversion of tool results into chat messages, differentiating between native protocols (separating text and non-text content) and non-native protocols (combining them). This architecture enables more robust streaming processing and better handling of multimodal tool results across different model capabilities.

multimodal/tarko/agent/src/tool-call-engine · high confidence

New shared MessageContent and ToggleSwitch components

Added new shared UI components to the workspace: \MessageContent\ renders message text with support for markdown, short-message animations, and file display modes, while \ToggleSwitch\ provides a customizable two-state toggle UI with icons and labels. These components are now exported from the shared index for use across the application.

multimodal/tarko/agent-ui/src/standalone/workspace/components/shared · high confidence

New shared package with PromiseQueue utility and Readability build script

The new \@agent-infra/shared\ package introduces a \PromiseQueue\ class that allows tasks to be executed with a configurable concurrency limit, ensuring sequential execution when needed and respecting error handling. Additionally, a build script is included to bundle the Mozilla Readability library into a constant for browser-side use.

packages/agent-infra/shared/scripts, packages/agent-infra/shared/src/common · high confidence

New sidebar layout and debugging tools

The sidebar has been redesigned with a new layout that includes a collapsible session list with search, grouping by date, and inline editing. A new Event Stream Viewer modal allows users to inspect and filter raw agent events for debugging. Additionally, an Agent Configuration viewer lets users inspect current agent settings, and a layout switch button toggles between default and narrow-chat modes.

multimodal/tarko/agent-ui/src/standalone/sidebar · high confidence

New specialized renderers for agent tool outputs

The workspace now includes dedicated UI components for rendering specific agent tool results, replacing generic displays with tailored views. This adds support for browser control and navigation (BrowserControlRenderer, BrowserResultRenderer), command execution with syntax highlighting (CommandResultRenderer), file viewing with mode switching for code, images, and markdown (FileResultRenderer), and structured content like diffs (DiffRenderer), deliverables (DeliverableRenderer), and research reports (ResearchReportRenderer). It also introduces renderers for embedded web frames (EmbedFrameRenderer), image previews with zoom/download (ImageRenderer), and link handling (LinkRenderer, LinkReaderRenderer).

multimodal/tarko/agent-ui/src/standalone/workspace/renderers · high confidence

New standalone chat UI components and enhanced image handling

The chat interface in the standalone agent UI has been restructured with new components: ChatPanel now manages the main conversation view with session state and scroll behavior; ContextualSelector and ContextualTags provide an enhanced file/directory picker with validation and visual feedback; ImagePreview adds a zoomable modal for uploaded images with improved styling and animations. These changes replace the previous renderer-based chat implementation with a more modular, standalone chat experience.

multimodal/tarko/agent-ui/src/standalone/chat · high confidence

New standalone navbar with model selector and about modal

The standalone UI now features a redesigned navbar that includes a model selector component, allowing users to view and switch between available AI models and providers directly from the navigation bar. An about modal has been added to display agent and model information, including the ability to copy model IDs and agent names. The navbar also supports workspace navigation items, embed frame toggling, and runtime settings integration, providing a more cohesive and informative user experience.

multimodal/tarko/agent-ui/src/standalone/navbar · high confidence

New state management atoms for contextual references, event streaming, and session isolation

The application introduces a suite of new Jotai state atoms in the UI layer to support advanced interaction and debugging features. Users can now reference workspace files and directories directly in input using \@file:\, \@dir:\, and \@workspace\ tags, managed via the new \contextualSelectorAtom\. Session data is now isolated by ID, with dedicated atoms for messages (\messagesAtom\), files (\sessionFilesAtom\), and tool results (\toolResultsAtom\). Additionally, a new event stream viewer is supported by \rawEventsAtom\ and \eventStreamModalOpenAtom\, while the workspace display logic is unified under \workspaceDisplayStateAtom\ to handle embed frames and tool content. Global runtime settings and replay capabilities are also introduced via \globalRuntimeSettingsAtom\ and \replayStateAtom\.

multimodal/tarko/agent-ui/src/common/state/atoms · high confidence

New type definitions for session, message, and clipboard protocols

The agent-ui now exposes a comprehensive set of TypeScript types in the common types module, defining the structure for session data (SessionInfo), conversation messages (Message, MessageGroup), tool results (ToolResult), and server connection status (ConnectionStatus). It also introduces a new TarkoMultimodalClipboardProtocol for cross-application data exchange and extends the global Window interface to support runtime configuration and event stream data from the agent server.

multimodal/tarko/agent-ui/src/common/types · high confidence

New utility modules for clipboard, formatting, and tool rendering

The \agent-ui\ application now includes a suite of new utility modules in \src/common/utils\ to support enhanced interaction and display capabilities. A new \clipboard.ts\ module enables multimodal clipboard support, allowing users to copy and paste text alongside images using the \tarko://webui/clipboard/v1\ protocol. A \tool-renderers\ system has been introduced to intelligently map agent tool outputs to specific UI components, featuring dedicated conditions for \read\_multiple\_files\ (rendered as a tabbed file viewer), \str\_replace\_editor\ (rendered as diffs or file results), and general content types like search results and images. Additionally, new utilities for formatting timestamps and relative dates, wrapping markdown, and handling model metadata and type guards have been added to standardize data presentation and improve code safety.

multimodal/tarko/agent-ui/src/common/utils · high confidence

New utility modules for tool filtering, LLM requests, and multimodal processing

The agent's utility layer has been expanded with several new modules to support advanced agent capabilities. A new \tool-filter.ts\ module allows users to include or exclude specific tools using pattern-based filtering. A standalone \LLMRequester\ class enables sending requests to LLM providers directly without instantiating a full agent, supporting both streaming and thinking modes. The \multimodal.ts\ module introduces logic to convert tool call results into multimodal formats, automatically extracting and embedding image data (PNG, JPEG, GIF, WEBP) from tool outputs for LLMs that support visual inputs. Additionally, \stream-utils.ts\ provides a function to reconstruct complete chat completions from streaming chunks, and \common.ts\ adds helpers for formatting tool parameters and converting Zod schemas to JSON Schema.

multimodal/tarko/agent/src/utils · high confidence

New utility modules for workspace configuration, port management, and console interception

The agent-cli now includes a set of new utility modules in src/utils to support workspace and server operations. Workspace resolution has been enhanced with workspace-path.ts to handle relative, absolute, and home-directory paths, and workspace-config.ts to load instructions from .tarko/instructions.md. Server setup now includes port.ts and server-setup.ts, which automatically detect and switch to an available port if the configured one is in use. A new console-interceptor.ts allows capturing and filtering console output, useful for debugging or testing. Additional utilities include logo.ts for branded CLI output, misc.ts for environment variable resolution and path formatting, and index.ts to export all these utilities.

multimodal/tarko/agent-cli/src/utils · high confidence

New workspace UI components for file management, raw tool inspection, and secure HTML previews

The workspace interface now includes a dedicated file manager for browsing and filtering generated files, a terminal-style renderer for inspecting raw tool inputs and outputs with collapsible sections and copy functionality, and a share button that generates focus-based URLs for HTML and Markdown files in replay mode. HTML previews are now rendered in a sandboxed iframe using a dual-frame throttling strategy to ensure smooth streaming updates without blank frames, and a new fullscreen modal provides a secure, keyboard-accessible view for files with proper sandboxing to prevent script execution.

multimodal/tarko/agent-ui/src/standalone/workspace/components · high confidence

Standalone app shell and theme toggle component introduced

The standalone UI now includes a new application entry point (\AgentWebUI\) that initializes the theme and configures the router (switching between Hash and Browser modes based on replay state). The main \App\ component implements conditional rendering for the home page, creating page, and session views, respecting configuration flags to enable or disable the sidebar and home layout. Additionally, a new \ThemeToggle\ component has been added, allowing users to switch between light and dark modes via a button that persists the preference to local storage.

multimodal/tarko/agent-ui/src/standalone/app · high confidence

UI Tars desktop app structure and build configuration

The UI Tars desktop application has been restructured into the apps/ui-tars directory with a new Electron Forge build configuration that includes auto-update support via app-update.yml, macOS code signing and notarization, and optimized bundle sizes. The build system now uses bytecode protection for private keys, Tailwind CSS for the renderer, and native module path resolution for screen capture permissions. New shared utilities for action overlays (setOfMarks) provide visual feedback for agent actions like clicks, typing, and hotkeys, while Playwright e2e testing infrastructure has been added.

apps/ui-tars · high confidence

Unified search client with multi-provider support

The search module now provides a unified \SearchClient\ that standardizes search results across multiple providers, including Browser, Bing, Tavily, DuckDuckGo, and SearXNG. Users can configure the client with provider-specific settings (such as SearXNG's base URL or Tavily's API key) and receive a consistent \SearchResult\ format containing page titles, URLs, and content snippets, regardless of the underlying search engine used.

packages/agent-infra/search/search/src · high confidence

Removals

Removal of action-parser package

The \packages/action-parser\ package has been removed from the codebase. This deletion eliminates the standalone module responsible for parsing GUI agent predictions (extracting thoughts, reflections, and action parameters like coordinates) and its associated build configuration. This change is part of a broader monorepo migration to \apps/desktop\.

packages/action-parser · high confidence

Removal of legacy desktop agent and UI marker infrastructure

The application has removed the entire legacy \src/main/agent\ module and its associated UI overlay components. This includes the \ComputerUseAgent\ loop, the \Desktop\ device abstraction (screenshot and input execution), the \UITARS\ LLM integration, and the \ScreenMarker\ system that displayed prediction overlays and pause buttons on the screen. Consequently, the hardcoded coordinate scaling \FACTOR\ and \MAX\_PIXELS\ constants, along with the \parseBoxToScreenCoords\ utility and its tests, have been deleted. The main process entry point (\main.ts\) and the Zustand store (\store/create.ts\, \store/runAgent.ts\) have been stripped of the code that initialized these agent and marker services, effectively disabling the previous GUI agent execution flow and its visual feedback layer.

src/main · high confidence

Removal of legacy renderer UI and agent logic

The entire \src/renderer\ directory has been deleted, removing the previous Chakra UI-based interface, routing, and agent execution hooks. This eliminates the old home, launcher, settings, and in-progressing pages, along with supporting components like ChatInput, ThoughtChain, and the useRunAgent hook, indicating a complete replacement of the renderer layer.

src/renderer · high confidence

Removal of shared types, utilities, and build configuration

The \packages/shared\ module has been removed, eliminating the previously exported type definitions (such as \Message\, \Status\, and \VlmResponse\), utility functions (including \generateShareId\ and \choose\), and the \tsup\ build configuration. This change indicates that the shared codebase is no longer maintained as a separate package, likely due to the monorepo migration to \apps/desktop\.

packages/shared · high confidence

Security

Agent server API hardening and new one-shot query endpoint

The agent server API now includes robust security measures: CSRF protection with token generation, CORS origin whitelisting (including support for TARKO\_ALLOWED\_ORIGINS), Host header validation to prevent DNS rebinding, and automatic network authentication (Bearer token) when the server is externally reachable or explicitly configured. Additionally, a new one-shot query endpoint (/api/v1/oneshot/query) allows creating a session and executing a query in a single request, supporting both streaming and non-streaming modes. Session creation now returns initialization events, and runtime settings are properly filtered and persisted per session.

multimodal/tarko/agent-server/src/api · high confidence

Electron security hardening and preload bridge implementation

The application now enforces stricter security by introducing a macOS entitlement file that explicitly allows JIT execution, while simultaneously implementing a secure IPC bridge in the preload script. This bridge exposes specific, limited methods for IPC communication, settings management, and state synchronization via contextBridge, replacing broader or less secure access patterns to ensure the renderer process interacts with the main process only through defined, safe channels.

apps/ui-tars/build, apps/ui-tars/src/preload · high confidence

Behavioural changes

Agent TARS CLI introduces static build metadata and deprecated browser options

The Agent TARS CLI now exposes build-time metadata, including the build timestamp and Git hash, via the \env.d.ts\ definitions and \versionInfo\ in the CLI entry point. Additionally, the CLI has added support for new browser control options (\--browser.control\ and \--browser.cdpEndpoint\) while marking the previous \--browserControl\ and \--browser-cdp-endpoint\ flags as deprecated, ensuring backward compatibility for existing users.

multimodal/agent-tars/cli · high confidence

Agent core refactored into event-driven execution with configurable reasoning and tool engines

The agent module has been restructured into a new event-stream driven architecture, introducing an \AgentRunner\ that coordinates specialized processors for LLM interactions, tool execution, and loop management. This change enables configurable reasoning modes (via the \thinking\ option), supports multiple tool call engines (native, prompt engineering, structured outputs), and allows users to set \maxIterations\ (defaulting to 1000) and \top\_p\ parameters. The new design also includes an \AgentExecutionController\ for managing abort signals and status, and an \AgentEventStreamProcessor\ that handles event persistence and subscription, allowing for better state management and replay capabilities.

multimodal/tarko/agent/src/agent · high confidence

Automated release and multi-arch update manifest merging

The release workflow now includes a new script to automatically merge separate x64 and arm64 macOS update manifests into a single unified file, ensuring that users on either architecture receive the correct update metadata. Additionally, dedicated shell scripts have been added to streamline the publishing process, handling version updates, changelog generation, and npm publishing for both standard and beta package releases.

scripts · high confidence

Browser MCP server introduces vision mode, ad-blocking, and remote browser support

The browser MCP server now supports a vision mode that uses screenshots instead of DOM snapshots, configurable ad-blocking, and the ability to connect to remote browser instances via CDP or WebSocket endpoints. Users can also customize the browser viewport, user agent, and context options, and the server provides a more robust tool interface with improved error handling and logging.

packages/agent-infra/mcp-servers/browser/src · high confidence

Code agent tools now use the Agent Infra sandbox client

The code agent's tool implementations (execute\_bash, JupyterCI, and str\_replace\_editor) have been updated to use the AioClient from the @agent-infra/sandbox package instead of the previous omni-tars core client. This change introduces a fixed 2-minute timeout for bash execution and adds session state management for Jupyter CI commands, ensuring consistent behavior and better integration with the sandbox infrastructure.

multimodal/omni-tars/code-agent/src/tools · high confidence

Enhanced configuration system with multi-source loading and layout controls

The Agent UI now supports a more robust configuration system that loads settings from runtime injection, environment variables, or static defaults, with runtime taking precedence. This change introduces new configuration options to control the user interface layout, specifically allowing users to enable or disable the sidebar and home route via \webui.layout.enableSidebar\ and \webui.layout.enableHome\. Additionally, the system now supports configuring the \webui.base\ path for deployment flexibility and enables the Event Stream Viewer through debug settings, providing greater control over the UI appearance and debugging capabilities.

multimodal/tarko/agent-ui/src/config · high confidence

HTML preview sandboxing and centralized configuration constants

The agent UI now applies stricter security policies to HTML previews by defaulting to an opaque origin sandbox (removing \allow-same-origin\ for \srcdoc\ content) to prevent framed content from accessing the parent window's storage and APIs. Additionally, the application now exposes a centralized set of constants for API endpoints, environment configuration, local storage keys, and message roles, providing a single source of truth for these core values across the UI.

multimodal/tarko/agent-ui/src/common/constants · high confidence

Introduce MCP client with configurable timeouts and tool filtering

The MCP client package now exposes a configurable default timeout (increased to 60 seconds) and supports filtering available tools and prompts via allow/block lists. This change also adds support for Streamable HTTP transports alongside existing SSE and Stdio, enabling more flexible server connections.

packages/agent-infra/mcp-client/src · high confidence

Introduce auto-updater and refine macOS permission handling

The application now includes an automatic update mechanism that checks for new versions on GitHub, downloads updates silently, and prompts the user to install them. Additionally, macOS permission logic for screen capture and accessibility has been refined: permissions are now explicitly reset when requested, E2E test environments bypass permission checks entirely, and warning messages have been simplified. Supporting utilities for agent lifecycle management, screenshot annotation, and screen size detection have also been added to improve core automation reliability.

apps/ui-tars/src/main/utils · high confidence

Introduction of the new AgentServer architecture

The agent server has been refactored to use a new \AgentServer\ class that orchestrates the Express application, HTTP server, session management, and storage integration. This change introduces support for exclusive mode (allowing only one active session at a time), configurable server authentication (requiring tokens when the server is not on loopback), and dynamic workspace resolution. It also adds TypeScript declarations for Express locals to expose the server instance and session data to request handlers, and integrates with the \@tarko/interface\ for global directory and logging configuration.

multimodal/tarko/agent-server/src · high confidence

New event-driven state management for agent interactions

The agent UI now processes real-time agent events through a dedicated handler system, replacing previous logic to improve state synchronization. This change introduces specific handlers for agent run lifecycle events (start/end), user and assistant messages (including streaming updates), tool calls and results, and system/environment inputs. It also adds a raw event capture mechanism to support the new Event Stream Viewer, ensuring all incoming events are stored for debugging and inspection. Additionally, utility functions have been added to manage file collection from tool outputs, normalize search results, and prevent cross-session content bleeding in the workspace panel.

multimodal/tarko/agent-ui/src/common/state/actions/eventProcessors/handlers · high confidence

New store architecture with customizable search engine and provider options

The application's main store has been restructured to support new configuration capabilities, including the ability for users to customize their preferred search engine (Google, Baidu, or Bing) for browser operations. The store now manages a broader set of state properties such as \browserAvailable\ status and \sessionHistoryMessages\, and integrates with a new settings system that validates and persists user preferences like VLM providers (including support for Doubao-1.5) and operator types (Local/Remote Computer/Browser). This change also introduces the ability to import and apply remote or local preset configurations via YAML, ensuring that user settings for API endpoints, models, and operational loops are correctly validated and applied.

apps/ui-tars/src/main/store · high confidence

New utility for merging Web UI configuration

A new utility module has been added to the agent server to handle the merging of Web UI configuration. This change introduces a \mergeWebUIConfig\ function that combines the base Web UI configuration with any agent constructor Web configuration, ensuring consistent configuration merging across different contexts. This utility is exported from the \webui\ index file, making it available for use in other parts of the application.

multimodal/tarko/agent-server/src/utils/webui · high confidence

PDK release workflow adds direct version/tag specification and tag prefix filtering

The PDK release command now supports direct version and tag specification via the \--release-version\ and \--release-tag\ flags, allowing users to bypass interactive selection for automated or scripted releases. Additionally, changelog generation and tag resolution now support a \--tag-prefix\ option (defaulting to 'v'), enabling the tool to correctly filter git tags in monorepos that use custom prefixes like 'pdk@' or '@agent-tars@'. These changes improve the reliability of release automation and changelog generation in complex monorepo setups.

infra/pdk · high confidence

Project rebranded to TARS with Agent TARS and UI-TARS Desktop, license changed to Apache 2.0

The repository has been restructured and rebranded under the TARS umbrella, introducing two distinct projects: Agent TARS (a multimodal AI agent stack with CLI and Web UI capabilities) and UI-TARS Desktop (a native GUI agent application). The project license has been updated from MIT to Apache 2.0, and the README has been completely rewritten to reflect the new dual-project structure, documentation links, and feature sets.

(repo-wide) · high confidence

Redesigned chat message layout with streaming performance and new UI components

The chat interface has been refactored to improve streaming performance and visual clarity. The \MessageGroup\ component now renders each message independently to prevent blocking during streaming, while user messages containing both images and text are automatically split into separate visual blocks. A new \MessageFooter\ displays precise timing metrics (Time to First Token and Time to Last Token) alongside a copy-to-clipboard action. The \ModernThinkingToggle\ now features real-time duration tracking and animated states for active thinking processes. Additionally, new components have been introduced to handle specific content types: \SystemMessage\ for styled alerts, \MultimodalContent\ for image handling, and \ReportFileEntry\ for clickable research report links.

multimodal/tarko/agent-ui/src/standalone/chat/Message · high confidence

Redesigned layout with mobile bottom sheet and new shell components

The standalone application layout has been updated with a new visual design and improved mobile support. On desktop, the chat and workspace panels are now wrapped in a new Shell component that provides consistent headers and styling, and the layout supports a 'narrow-chat' mode that adjusts the panel widths. For mobile devices, the interface switches to a single-column view where the workspace is accessible via a new MobileBottomSheet component, which allows users to drag the panel up or down and toggle it to fullscreen. Additionally, the layout now conditionally renders the EventStreamModal when the feature is enabled.

multimodal/tarko/agent-ui/src/standalone/app/Layout · high confidence

Redesigned workspace interface with enhanced visual styling and embed-frame support

The standalone workspace area has been visually refreshed with a new design system featuring glass-card effects, elegant card layouts, and refined hover animations for a more polished user experience. The workspace now supports an embed-frame mode, allowing navigation items to be displayed as embedded views within the panel alongside standard tool content. Additionally, the workspace detail view has been updated to include a toggle for switching file display modes between source and rendered views, improving readability for code and markdown files.

multimodal/tarko/agent-ui/src/standalone/workspace · high confidence

Refactored browser control architecture with strategy pattern and AIO sandbox support

The local browser control system has been restructured to use a Strategy pattern, introducing distinct modes—hybrid, dom, and visual-grounding—managed by a new BrowserToolsManager and StrategyFactory. This allows the agent to switch between DOM-based operations, vision-based GUI agent control, or a combination of both, with automatic fallback to DOM mode for providers that do not support vision (currently restricted to volcengine). Additionally, a new AIO Sandbox environment has been added that disables local browser operations and routes all tool functionality through an external MCP server, while the existing local environment now relies on this modular strategy framework for tool registration.

multimodal/agent-tars/core/src/environments · high confidence

Refactored session and connection state management with optimized health checks

The application's state management for sessions and connections has been restructured into dedicated action files (connectionActions.ts and sessionActions.ts). A key behavioral change is the optimization of the server health check polling: when the connection is already established, periodic checks now only refresh agent options rather than reloading the full session list, reducing unnecessary API calls. Additionally, session creation now processes initialization events returned by the server to immediately populate the UI state, and switching active sessions explicitly clears replay mode and recovers processing status to ensure accurate state.

multimodal/tarko/agent-ui/src/common/state/actions · high confidence

Relocated and corrected auto-updater configuration

The auto-updater configuration file (app-update.yml) has been moved from the root resources directory to apps/ui-tars/resources to align with the monorepo structure. Additionally, the repository name in the configuration was corrected from 'ui-tars-desktop' to 'UI-TARS-desktop' to match the actual GitHub repository casing, ensuring the update check functions correctly.

apps/ui-tars/resources · high confidence

Removal of embedded static report viewer

The static HTML file used for the UI TARS Visualizer report has been removed from the resources directory. This eliminates the large, embedded HTML/CSS bundle (approximately 20MB) that previously served as a standalone report viewer, likely shifting the responsibility for rendering or hosting these reports to a different component or external service.

resources · high confidence

Renderer UI restructured with shadcn/ui and new operator selection

The renderer application has been reorganized to use the shadcn/ui component library (configured via components.json with the 'new-york' style) and implements a new routing structure in App.tsx. A key behavioral change is the introduction of a local browser availability check in the SelectOperator component, which automatically switches the operator to 'LocalComputer' if a browser is not detected and provides a retry mechanism. The UI also includes new confirmation dialogs for session deletion, navigation, and termination, as well as a free trial agreement dialog for remote services.

apps/ui-tars/src/renderer · high confidence

UI-TARS Desktop app structure and core main process initialization

The application's main process entry point has been established in apps/ui-tars/src/main/main.ts, initializing the Electron window, system tray, and IPC handlers. This change introduces automatic log file management, including archiving, size limits, and cleanup of old logs on startup, alongside new menu options to export, view, or clear these logs. The tray and menu interactions have been updated to use the new IPC routes for actions like stopping runs, and the app now checks for browser availability and handles remote preset updates upon launch.

apps/ui-tars/src/main · high confidence

Unified search normalization and enhanced API security

The web UI now centralizes search logic through a new SearchService that normalizes results from Omni-TARS and web search tools into a consistent format, ensuring reliable display of search data. Concurrently, the API service has been hardened with CSRF protection for all mutation requests (POST/PUT/DELETE) and refined authentication handling that securely manages access tokens via sessionStorage, stripping them from the URL bar to prevent leakage while maintaining access for non-loopback servers.

multimodal/tarko/agent-ui/src/common/services · high confidence

Window management improvements and auto-updater integration

This change introduces an auto-updater mechanism integrated into the main window and widget window via the AppUpdater class, enabling automatic update checks. It also fixes a visual bug on macOS where closing the main window in fullscreen mode would leave a black screen by ensuring the window exits fullscreen before hiding. Additionally, the traffic light position for macOS title bars has been adjusted from (16, 16) to (9, 9) for better alignment, and the widget window now includes content protection settings to prevent VLM models from capturing sensitive UI data.

apps/ui-tars/src/main/window · high confidence

Fixes

Fix native module dependencies and reduce bundle size

The build process now correctly identifies external packages for native modules by platform (macOS, Windows, Linux) using a new script, which helps reduce the final bundle size by approximately 28%.

apps/ui-tars/scripts · medium confidence

Fixes for GitHub release feed parsing and channel file resolution in the updater

The electron-updater module now includes a custom GitHub provider and utility functions to correctly handle pre-release channel logic (alpha/beta) when checking for updates and to properly resolve channel-specific YAML files (e.g., alpha.yml, beta.yml) from GitHub release artifacts. This ensures that users on pre-release tracks receive the correct update versions and that release notes are accurately fetched from the corresponding GitHub tag feed.

apps/ui-tars/src/main/electron-updater · high confidence

Patch applied to pkce-challenge to fix Node.js 16 crypto import

A patch for the pkce-challenge library (version 4.1.0) has been added to resolve a compatibility issue with Node.js 16. The change modifies the dynamic import of the node:crypto module to wrap the import statement in an async function, ensuring that the crypto object is correctly assigned in non-REPL environments on older Node.js versions.

patches · high confidence

Test coverage

Add agent snapshot testing infrastructure and baseline examples; Added API test coverage for contextual references, query execution, and security boundaries; Added Playwright-based E2E test suite for the desktop app; Added comprehensive test coverage for browser MCP tools; Added comprehensive test coverage for the Tarko agent core; Added comprehensive test suite for the Browser MCP Server; Added in-memory integration tests for the filesystem MCP server; Added integration and manual tests for MCP command execution; Added kernel-level agent tests; Added mock implementations for agent and Agio provider testing; Added test coverage for agent CLI configuration and event processing; Added test coverage for tool-call engine implementations; Added test files for Azure Bedrock Chat integration; Added test fixtures for multi-image event streams; Added tests for T5 streaming parser with think, chat, and tool call support; Added tests for agent session option boundary and event restoration; Added tests for model configuration utilities; Added tests for streaming parser tag handling; Added unit tests for MCPClient initialization and server management; Added unit tests for SQLite storage and exclusive mode middleware; Added unit tests for browser MCP server utility functions; Added unit tests for core parsing and tool call composition; Added unit tests for the browser HTML-to-Markdown conversion utility.

Dependencies

Introduce new GUI Agent SDK and CLI tooling

This change adds the \@gui-agent\ package scope, including the \@gui-agent/agent-sdk\ for core agent logic, \@gui-agent/action-parser\ for interpreting model outputs, and \@gui-agent/cli\ for command-line automation. It also introduces specific operators (\@gui-agent/operator-nutjs\, \@gui-agent/operator-adb\, \@gui-agent/operator-browser\, \@gui-agent/operator-aio\) to handle different interaction targets like desktop, Android, and web browsers. An example project (\examples/gui-agent-2.0\) is provided to demonstrate how to use these new SDK components.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 42 → 48 (+6.5)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 63 → 57 (-6.1)
  • Architecture 62 (new)
  • Maturity 61 → 79 (+18.5)
  • Readiness 24 → 43 (+19.6)
  • Security 57 → 66 (+8.4)
  • Accessibility 43 (new)
  • Performance 60 (new)

Resolved (77)

  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (infra/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (packages/ui-tars/visualizer/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (packages/ui-tars/visualizer/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (packages/ui-tars/visualizer/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • Dimension evaluation failed
  • High CVE: [GHSA redacted] (infra/pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (infra/pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (multimodal/pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (infra/pnpm-lock.yaml)
  • …and 57 more

New (964)

  • AIOHybridOperator.singleActionExecutor (cognitive 22) (multimodal/gui-agent/operator-aio/src/AIOHybridOperator.ts)
  • AIOHybridOperator.singleActionExecutor (cyclomatic 36) (multimodal/gui-agent/operator-aio/src/AIOHybridOperator.ts)
  • AboutModal.AboutModal (cyclomatic 17) (multimodal/tarko/agent-ui/src/standalone/navbar/AboutModal.tsx)
  • ActionBuilder.buildDefaultActions (cognitive 21) (packages/agent-infra/browser-use/src/agent/actions/builder.ts)
  • ActionBuilder.buildDefaultActions (cyclomatic 19) (packages/agent-infra/browser-use/src/agent/actions/builder.ts)
  • ActionParserHelper.parseRoughFromCallString (cognitive 17) (multimodal/gui-agent/action-parser/src/ActionParserHelper.ts)
  • ActionParserHelper.standardizeAction (cyclomatic 16) (multimodal/gui-agent/action-parser/src/ActionParserHelper.ts)
  • AdbOperator.execute (cognitive 37) (packages/ui-tars/operators/adb/src/index.ts)
  • AdbOperator.execute (cyclomatic 46) (packages/ui-tars/operators/adb/src/index.ts)
  • AdbOperator.singleActionExecutor (cyclomatic 18) (multimodal/gui-agent/operator-adb/src/AdbOperator.ts)
  • AgentOptionsSelector.AgentOptionsSelector (cognitive 84) (multimodal/tarko/agent-ui/src/standalone/chat/MessageInput/AgentOptionsSelector.tsx)
  • AgentOptionsSelector.AgentOptionsSelector (cyclomatic 82) (multimodal/tarko/agent-ui/src/standalone/chat/MessageInput/AgentOptionsSelector.tsx)
  • AgentReplaySnapshotHook.onLLMRequest (cognitive 21) (multimodal/tarko/agent-snapshot/src/agent-replay-snapshot-hook.ts)
  • AgentSnapshot.replay (cognitive 26) (multimodal/tarko/agent-snapshot/src/agent-snapshot.ts)
  • AgentSnapshot.replay (cyclomatic 23) (multimodal/tarko/agent-snapshot/src/agent-snapshot.ts)
  • AgentSnapshotNormalizer.normalize (cognitive 22) (multimodal/tarko/agent-snapshot/src/utils/snapshot-normalizer.ts)
  • AgentSnapshotNormalizer.normalizeField (cognitive 18) (multimodal/tarko/agent-snapshot/src/utils/snapshot-normalizer.ts)
  • AgentSnapshotRunner.cli (cognitive 28) (multimodal/tarko/agent-snapshot/src/agent-snapshot-runner.ts)
  • AnthropicHandler.validateInputs (cognitive 23) (multimodal/tarko/llm-client/src/handlers/anthropic.ts)
  • ApiService.sendStreamingQuery (cognitive 18) (multimodal/tarko/agent-ui/src/common/services/apiService.ts)
  • …and 944 more

Changes since last survey

  • 5 commits — 0 feature/other, 5 fixes

By area

  • multimodal/tarko — 4 commits
  • multimodal/websites — 1 commit

Notable commits

  • fix: fix(agent-server): block request-body injection into agent constructor options (#1939)
  • fix: fix(agent-server): require a token once the server leaves loopback (#2026)
  • fix: fix(agent-ui): stop html previews from escaping their iframe sandbox (#1938)
  • fix: fix(docs): keep showcase pages working without the share API (#1937)
  • fix: fix(security): validate Host header to prevent DNS rebinding in agent-server(-next) (#1975)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

bytedance/UI-TARS-desktop was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 2ff41a9e515828c5bd5b276e493d73aa0bdf4a3a — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-24a00d372a4b.