---
title: "agent-desktop: ovládání počítače AI agentem"
description: "Co je agent-desktop od Vercel Labs, jak čte strom přístupnosti místo screenshotů, jak se instaluje a kde narazí na oprávnění, bezpečnost a limity."
author: "Michal Černý"
author_role: "Spoluzakladatel · Technology & Product"
author_url: https://nobig.deals/cs/blog/autor/michal-cerny
url: https://nobig.deals/cs/blog/agent-desktop-ovladani-pocitace-ai
content_type: text/markdown
---

Autor: Michal Černý (Spoluzakladatel · Technology & Product)

[Blog](https://nobig.deals/cs/blog)/[AI a vývoj](https://nobig.deals/cs/blog/kategorie/ai-a-vyvoj)/agent-desktop: jak AI ovládá počítač pře…

# agent-desktop: jak AI ovládá počítač přes strom přístupnosti

agent-desktop je open-source nástroj od Vercel Labs, který AI agentovi dává ovládání aplikací přes strom přístupnosti operačního systému. Místo screenshotů dostane JSON s referencemi na prvky a po každé akci si stav ověří.

[Michal Černý](https://nobig.deals/cs/blog/autor/michal-cerny)·Publikováno 2\. listopadu 2026·11 min čtení

![Na dopravním pásu se prázdný rám mění přes několik stanic na stromový diagram s jedním oranžovým prvkem.](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvywyte000140xn8xnq9tfqq%2Fagent-desktop-ovladani-pocitace-ai-hero-9732c19b2e.webp&w=3840&q=75)

Snapshot, akce na ref a ověření nového stavu jako linka o čtyřech stanicích.

Obsah článku · 8
1. [Co je agent-desktop a jak AI ovládá počítač?](#co-je-agent-desktop-a-jak-ai-ovlada-pocitac)
2. [Jak funguje ovládání přes strom přístupnosti](#jak-funguje-ovladani-pres-strom-pristupnosti)
3. [Co přesně agent dostane](#co-presne-agent-dostane)
4. [Headless a headed režim](#headless-a-headed-rezim)
5. [Cyklus snapshot, akce a ověření](#cyklus-snapshot-akce-a-overeni)
6. [Instalace a podporované systémy](#instalace-a-podporovane-systemy)
7. [Zapojení do vlastního agenta](#zapojeni-do-vlastniho-agenta)
8. [Jaká oprávnění vyžaduje a jaká jsou rizika?](#jaka-opravneni-vyzaduje-a-jaka-jsou-rizika)
9. [macOS, Windows a Linux](#macos-windows-a-linux)
10. [Kde strom přístupnosti selhává](#kde-strom-pristupnosti-selhava)
11. [Electron a Chromium](#electron-a-chromium)
12. [Kdy zvolit screenshoty a kdy strom přístupnosti](#kdy-zvolit-screenshoty-a-kdy-strom-pristupnosti)
13. [Časté otázky](#caste-otazky)

agent-desktop je příkazová řádka a knihovna v Rustu, přes kterou AI agent čte a ovládá nativní aplikace na macOS, Windows a Linuxu. Nekliká podle souřadnic na obrazovce. Pracuje s prvky, které operační systém zpřístupňuje čtečkám obrazovky, a výsledek každé akce ověří dalším čtením rozhraní.

Ve zkratce

* agent-desktop je open-source CLI a C knihovna od Vercel Labs pod licencí Apache License 2.0, napsaná v Rustu.
* Agent čte strom přístupnosti macOS, Windows a Linuxu a místo screenshotů dostává JSON s referencemi na prvky.
* Základní cyklus zní: snapshot, akce na ref a nový snapshot k ověření. Ref platí jen pro snapshot, ze kterého pochází.
* Na macOS je nutné oprávnění Accessibility. Agent s ním může číst a ovládat vše, co aplikace vystaví.
* Nástroj selhává tam, kde aplikace přístupnost neimplementuje: ve hrách, na canvasu a v části Electron aplikací.

## Co je agent-desktop a jak AI ovládá počítač?

agent-desktop je nástroj pro ovládání počítače AI agentem, který místo obrazu obrazovky čte strukturu rozhraní z accessibility API operačního systému. Agent proto ví, co je tlačítko, jak se jmenuje a co s ním jde udělat.

Projekt vydala skupina **Vercel Labs**. Repozitář vercel-labs/agent-desktop vznikl 19\. února 2026, k 2\. listopadu 2026 má 7 778 hvězd a 557 forků a vychází pod licencí Apache License 2.0\. Hlavním jazykem je Rust. Kromě CLI každý release obsahuje i C knihovnu `libagent_desktop_ffi`, takže ji lze volat přímo z jiného programu.

Definice

Strom přístupnosti (_accessibility tree_) je hierarchická reprezentace uživatelského rozhraní, kterou operační systém poskytuje asistivním technologiím. Každý uzel nese roli, název, stav a dostupné akce prvku.

Rozdíl proti klasickému **computer use** je v tom, co agent „vidí“. Anthropic Computer Use posílá modelu obraz obrazovky a model odpovídá akcemi typu `screenshot`, `left_click` nebo `type` na souřadnicích. Nástroj od Vercel Labs modelu předá textový popis rozhraní a akce míří na konkrétní prvek. Okno posunuté o kus vedle proto kliknutí nerozbije.

| Nástroj                | Princip                                               | Na co se hodí                         |
| ---------------------- | ----------------------------------------------------- | ------------------------------------- |
| PyAutoGUI              | Souřadnice myši, klávesnice, hledání obrazových vzorů | Jednoduché skripty bez znalosti prvků |
| SikuliX                | Rozpoznávání prvků podle obrázkových šablon           | Aplikace, kde chybí jiné rozhraní     |
| Playwright             | DOM selektory a protokol prohlížeče                   | Webové aplikace                       |
| Anthropic Computer Use | Screenshot a akce na souřadnicích                     | Obecné ovládání čehokoli viditelného  |
| agent-desktop          | Strom přístupnosti a akce na ref                      | Nativní desktopové aplikace           |

Princip agent-desktop popisujeme podle README projektu, u ostatních nástrojů uvádíme jejich obecně známý způsob práce.

## Jak funguje ovládání přes strom přístupnosti

Nástroj má pro každý systém samostatný adaptér nad nativním rozhraním: na macOS je to **Accessibility API (AX)**, na Windows **UI Automation** a na Linuxu **AT-SPI**. Výstup je na všech třech systémech stejný, agent se proto nemusí učit tři různá API.

### Co přesně agent dostane

Příkaz `snapshot` vrátí JSON obálku se stromem prvků. Každý ovladatelný uzel má roli (`role`), název (`name`), referenci (`ref_id`) a seznam akcí (`available_actions`). Ukázka níže je zkrácený snapshot Finderu z dokumentace. Pole `ref_count` říká, že okno obsahuje 59 prvků s referencí, a `complete` potvrzuje, že strom je úplný.

```json
{
  "version": "2.5",
  "ok": true,
  "command": "snapshot",
  "data": {
    "app": "Finder",
    "window": { "id": "w-204749", "title": "Downloads" },
    "snapshot_id": "s8f3k2p9",
    "ref_count": 59,
    "complete": true,
    "tree": {
      "role": "window",
      "name": "Downloads",
      "children": [
        { "role": "treeitem", "name": "Documents", "ref_id": "@s8f3k2p9:e8", "available_actions": ["Click"] }
      ]
    }
  }
}
```

Reference `@s8f3k2p9:e8` se skládá z ID snapshotu a ID prvku. Díky tomu se stará reference nemůže potichu namapovat na jiný prvek ve změněném rozhraní.

U hustých aplikací by celý strom zahltil kontext modelu. Pro ně nástroj nabízí dvoufázový postup:

* `snapshot --skeleton --app Slack -i --compact` vrátí jen kostru aplikace s hlavními oblastmi,
* `snapshot --root @s8f3k2p9:e3 -i --compact` pak rozbalí jedinou vybranou oblast,
* přepínač `-i` omezí výstup na interaktivní prvky a `--compact` zkrátí zápis.

Textový strom je obvykle menší než obrázek a k jeho čtení stačí běžný jazykový model bez vizuálních schopností. Kolik tokenů se tím ušetří, závisí na konkrétní aplikaci a hloubce stromu, proto úsporu změřte na cílové aplikaci.

### Headless a headed režim

Výchozí je **headless režim**. Akce na ref jdou přes accessibility API, kurzor se nepohne a aplikace nepřevezme fokus, takže uživatel může u počítače dál pracovat. Globální přepínač `--headed` povolí fyzický vstup myší a klávesnicí. Ten je nutný například pro tažení nebo pro aplikace, které na sémantické akce nereagují.

## Cyklus snapshot, akce a ověření

Každá interakce má tři kroky: přečíst rozhraní, provést akci na referenci z tohoto čtení a rozhraní přečíst znovu. Teprve druhý snapshot potvrdí, že akce opravdu proběhla.

Postup

1. **Pořiďte snapshot.** `snapshot --app Finder -i` vrátí interaktivní prvky, každý se svou referencí.
2. **Proveďte akci na ref.** Agent zavolá například `click` s referencí z právě získaného snapshotu.
3. **Ověřte novým snapshotem.** Agent porovná nový stav s očekáváním a rozhodne o dalším kroku.

V příkazové řádce celý cyklus vypadá takto:

```bash
# Pozorování: jen interaktivní prvky, každý s ref
agent-desktop snapshot --app Finder -i
# Akce: ref musí pocházet z posledního snapshotu
agent-desktop click @s8f3k2p9:e8
# Ověření: nový snapshot ukáže skutečný stav UI
agent-desktop snapshot --app Finder -i
# Více oken vrátí AMBIGUOUS_TARGET; id okna je v error.details
agent-desktop snapshot --app Finder -i --window-id w-204749
```

Pravidla pro chyby jsou přísná, ale pro agenta srozumitelná. **Ref patří ke svému snapshotu**, takže holé `@e8` nástroj odmítne s kódem `INVALID_ARGS`. Pokud se rozhraní mezi snapshotem a akcí změní, přijde `STALE_REF` nebo `AMBIGUOUS_TARGET` a jediná správná reakce je nový snapshot. Když má aplikace otevřených víc oken, vrátí snapshot v `error.details` seznam kandidátů a agent jedno vybere přes `--window-id`.

Každý příkaz vypíše jednu obálku s polem `ok` a buď `data`, nebo `error`. Chyba nese `code`, `disposition` a obvykle i `suggestion`. Akci lze opakovat jen tehdy, když má `error.disposition.retry` hodnotu `safe`. Tuto podmínku doporučujeme v agentovi vynutit kódem, ne jen promptem.

Celá smyčka zůstává v agentovi. Nástroj nic neplánuje, nerozhoduje o dalším kroku a sám nic neopakuje. Je to ovladač, logiku dodává model a kód kolem něj.

Tip

V PowerShellu dávejte každou referenci do uvozovek, například `'@s8f3k2p9:e8'`. Holý `@token` PowerShell chápe jako operátor splattingu a příkaz dostane jiný argument.

## Instalace a podporované systémy

Nástroj se instaluje z npm jedním příkazem a běží na macOS, Windows i Linuxu. Balík obsahuje nativní binárky pro x64 i ARM64.

```bash
npm install -g agent-desktop
agent-desktop version
```

Stejný balík nainstaluje i Bun, Yarn nebo pnpm. Kdo nechce JavaScriptový spouštěč, stáhne nativní archiv z GitHub Releases a pomocný program nechá vedle spustitelného souboru. Poslední release v1.0.2 vyšel 30\. října 2026.

| Funkce                  | macOS | Windows | Linux                               |
| ----------------------- | ----- | ------- | ----------------------------------- |
| Strom přístupnosti      | Ano   | Ano     | Ano (AT-SPI)                        |
| Klik, psaní, klávesnice | Ano   | Ano     | AT-SPI; klávesy na X11 a GNOME      |
| Myš                     | Ano   | Ano     | X11, jen s \--headed                |
| Screenshot              | Ano   | Ano     | Okna na X11; Wayland přes portál    |
| Schránka                | Ano   | Ano     | Ano; Wayland potřebuje wl-clipboard |

Tabulka vychází z přehledu podpory platforem v repozitáři. Na Linuxu je podpora užší a závisí na tom, jestli běží X11, nebo Wayland.

### Zapojení do vlastního agenta

Nástroj nabízí 60 názvů příkazů, z nichž 56 je funkčních. Pokrývají pozorování, akce na ref, okna, notifikace, schránku, čekání a dávkové spouštění.

Pro agenta je důležité, že binárka nese vlastní instrukce odpovídající své verzi:

```bash
# Smyčka, refy, ověřování a pravidla pro opakování
agent-desktop skills get desktop
# Rozdíly na systému, kde nástroj právě běží
agent-desktop skills get platform
# Vstupní body C knihovny, vlastnictví paměti, vlákna
agent-desktop skills get ffi
```

Jednodušší cesta je volat CLI z agenta jako nástroj a parsovat JSON. Druhá cesta je C knihovna `libagent_desktop_ffi`, kterou program načte do svého procesu a nemusí pro každý příkaz spouštět nový proces. Volat ji lze například z Pythonu přes `ctypes`.

Poznámka

Výstup obou cest je stejný JSON kontrakt. Doporučujeme začít s CLI a na knihovnu přejít, až bude režie spouštění procesů měřitelně brzdit.

Samotný ovladač je jen jedna vrstva. Pro firemní nasazení je potřeba dořešit orchestraci, oprávnění, logování a předání úloh člověku. Tomu se věnujeme v rámci služby [AI agenti a automatizace](https://nobig.deals/cs/sluzby/ai-agenti).

## Jaká oprávnění vyžaduje a jaká jsou rizika?

Na macOS potřebuje oprávnění Accessibility, na Windows obvykle žádné zvláštní a na Linuxu běžící grafickou relaci s AT-SPI. Hlavní riziko nespočívá v nástroji, ale v rozsahu toho, co agent smí dělat.

### macOS, Windows a Linux

Na **macOS** se oprávnění Accessibility uděluje aplikaci, která nástroj spouští, tedy Terminalu, iTerm2 nebo VS Code. Když agent poběží z jiného terminálu, potřebuje ten terminál vlastní oprávnění. Průvodce nastavením spustí `agent-desktop permissions --guide`. Pro screenshoty je navíc nutné Screen Recording a pro otevírání Notification Center oprávnění Automation.

Na **Windows** nástroj podle README nepotřebuje žádné povolení pro aplikace se stejnou úrovní integrity, jakou má terminál. Aplikaci spuštěnou jako správce dokáže číst, ale vstup do ní pošle jen agent, který také běží se zvýšenými právy. Spouštět agenta jako správce proto doporučujeme jen výjimečně.

Na **Linuxu** stačí uživatelská grafická relace s balíkem `at-spi2-core`.

Pozor

Snapshoty, obsah schránky, screenshoty i ladicí výstupy mohou obsahovat e-maily, dokumenty nebo hesla z otevřených oken. Nepatří do veřejných logů, issue ani sdílených trasovacích nástrojů.

Druhé riziko je méně viditelné. Reference zaručují, že agent klikne na správné tlačítko, ale nástroj nehlídá, jestli ho kliknout má. Špatně instruovaný nebo zmanipulovaný agent tedy pošle zprávu, smaže soubor nebo změní nastavení stejně přesně jako dobře instruovaný. Volitelný pomocník pro popis obrazovky navíc posílá data nakonfigurovanému poskytovateli modelu, takže opouštějí počítač.

Než pustíte agenta na desktop

* Spouštějte agenta v odděleném uživatelském profilu bez přístupu k osobním účtům.
* Udělte oprávnění jen té aplikaci, ze které agent běží, a nepotřebná vypněte.
* Odeslání, mazání a platby nechte potvrzovat člověkem.
* Logujte všechny příkazy agenta a výstupy ukládejte mimo veřejná úložiště.
* Na Windows nespouštějte agenta se zvýšenými právy, pokud to úloha nevyžaduje.
* Ověřte, kam putují data, pokud zapínáte pomocníka pro popis obrazovky.

Zavedení agentních nástrojů do vývojového týmu je stejně tak otázka pravidel jako techniky. Postup a hranice pomáháme nastavit v rámci [AI transformace pro vývojáře](https://nobig.deals/cs/sluzby/ai-transformace).

## Kde strom přístupnosti selhává

Platí jednoduché pravidlo: **co aplikace do accessibility API nevystaví, agent nevidí**. Kvalita výsledku tedy závisí na tom, jak pečlivě autoři aplikace přístupnost implementovali.

Typické slabé oblasti jsou tyto:

* hry a herní enginy, které kreslí vlastní scénu přímo na GPU,
* aplikace postavené na canvasu, kde je celé plátno jediným prvkem,
* vlastní renderovací toolkity, které nepoužívají nativní ovládací prvky,
* vzdálené plochy a streamované aplikace, kde systém vidí jen obrazové okno,
* dynamická rozhraní, ve kterých refy zastarávají rychleji, než agent stihne jednat.

### Electron a Chromium

Electron a Chromium aplikace mají webový obsah ve vlastním rendereru a jeho strom přístupnosti se zapíná až na požádání. Nástroj tuto vrstvu aktivuje sám, když je to potřeba. Pro webový obsah dokáže také otevřít DevTools port, ke kterému se připojí sesterský nástroj **agent-browser**. Nativní rámeček okna tak obslouží accessibility API a obsah stránky protokol prohlížeče.

Funguje to ale aplikaci od aplikace. V issue trackeru projektu je zdokumentováno, že snapshot prohlížeče Arc na macOS selhával s chybou „Renderer did not enable accessibility activation“, zatímco Chrome fungoval. Pokud plánujete automatizaci desktopu nad konkrétní Electron aplikací, ověřte si nejdřív jediný snapshot.

Otevřené chyby ukazují, že ani nativní aplikace nejsou bez problémů. Issue z 2\. listopadu 2026 popisuje, že snapshot nevrací tělo dokumentu ve Wordu, takže prázdný a plný dokument vypadají stejně. Jiná otevřená issue hlásí, že `list-apps` a `list-windows` na Windows 10 minou část oken nejvyšší úrovně.

U dynamických rozhraní pomáhá příkaz `wait`, vyšší `--max-depth` a hlavně nový snapshot po každé změně. Agent, který si refy ukládá napříč kroky, bude narážet na `STALE_REF` častěji než agent, který před každou akcí čte rozhraní znovu.

## Kdy zvolit screenshoty a kdy strom přístupnosti

Strom přístupnosti zvolte jako výchozí u nativních aplikací s dobrou přístupností. Screenshoty nechte tam, kde strom chybí nebo lže.

Výhody a nevýhody

Kdy zvolit strom přístupnosti

* Nativní aplikace, které správně hlásí role, názvy a stavy prvků.
* Opakované úlohy, kde vadí rozbití skriptu po změně rozlišení nebo polohy okna.
* Běh na pozadí bez převzetí kurzoru a fokusu.
* Nasazení s jazykovým modelem bez vizuálních schopností.

Kdy zvolit screenshoty

* Hry, canvas a aplikace s vlastním vykreslováním.
* Vzdálené plochy a streamované aplikace.
* Aplikace, jejichž snapshot vrací prázdný nebo neúplný strom.

Nejrozumnější architekturou je podle nás hybrid: strom přístupnosti jako první volba a obraz jako záloha. Nástroj k tomu nabízí vlastní příkaz `screenshot` a nepovinného pomocníka, který obrazovku popíše přes model. Agent tedy může přepnout na obraz, aniž by musel měnit nástroj.

Výrobce neuvádí obecný násobek zrychlení ani úspory proti screenshotovému přístupu. Doporučujeme proto krátký test na vaší cílové aplikaci. Pusťte stejnou úlohu oběma způsoby a porovnejte úspěšnost, počet kroků a spotřebu tokenů. Teprve pak má smysl rozhodnout, který přístup postavit do produkce.

## Časté otázky

### Je agent-desktop zdarma?

Ano, agent-desktop je open-source projekt pod licencí Apache License 2.0 a instaluje se zdarma z npm. Licence povoluje komerční použití, úpravy i začlenění do vlastních produktů, pokud zachováte licenční a autorská upozornění. Platíte jen za jazykový model, který agenta řídí, a případně za poskytovatele modelu u volitelného pomocníka pro popis obrazovky.

### Funguje agent-desktop na Linuxu a Windows, nebo jen na macOS?

Funguje na všech třech systémech, ale ne všude ve stejném rozsahu. macOS a Windows mají plnou podporu čtení stromu, akcí, myši, screenshotů i správy oken. Linux čte strom přes AT-SPI. Ovládání myši, screenshoty a správa oken jsou tam omezené podle toho, jestli relace běží na X11, nebo na Waylandu.

### Potřebuje agent-desktop vizuální model?

Pro základní práci ne. Snapshot je textový JSON s rolemi, názvy a referencemi prvků, takže ho zpracuje běžný jazykový model. Vizuální model se hodí jen jako záloha pro aplikace bez použitelného stromu přístupnosti. Nástroj pro tyto případy nabízí příkaz screenshot a nepovinného pomocníka, který obrazovku popíše přes nakonfigurovaný model.

### Dá se agent-desktop použít z vlastního kódu, ne jen z příkazové řádky?

Ano. Každý release obsahuje C knihovnu `libagent_desktop_ffi` pro macOS, Windows i Linux. Program ji načte do vlastního procesu a nemusí pro každý příkaz spouštět CLI. Knihovnu lze volat z jakéhokoli jazyka s podporou C rozhraní, například z Pythonu přes `ctypes`. Pravidla pro paměť a vlákna vypíše příkaz `agent-desktop skills get ffi`.

### Jak se agent-desktop liší od agent-browser?

agent-browser ovládá webový obsah přes protokol prohlížeče, agent-desktop ovládá nativní aplikace přes accessibility API systému. Oba nástroje se doplňují. U Chromium a Electron aplikací může agent-desktop otevřít DevTools port, ke kterému se agent-browser připojí. Nativní okno pak řeší jeden nástroj a webový obsah uvnitř druhý.

## Číst více

[![AI video z kódu: jak postavit motion design s agentem](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvwtb6y0002p0xutjprs1dwk%2Fai-video-z-kodu-motion-design-hero-d7e7d9a095.webp&w=3840&q=75)AI a vývojAI video z kódu: jak postavit motion design s agentemAI video z kódu nevzniká z jednoho promptu. Agent napíše program s funkcí seek(t), Chromium z něj vyrenderuje snímky a ffmpeg je složí do videa. Ukazujeme postup, náklady a limity.](https://nobig.deals/cs/blog/ai-video-z-kodu-motion-design)[![Mistral Large 4 lokálně: jde Le Chonk spustit na Mac Studiu?](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvtqdskn00010xphed81nup7%2Fmistral-large-4-lokalne-mac-studio-hero-b69b9599fb.webp&w=3840&q=75)AI a vývojMistral Large 4 lokálně: jde Le Chonk spustit na Mac Studiu?Technicky ano: Unsloth připravil 1bitové GGUF kvantizace modelu Mistral Large 4 o velikosti kolem 223 GB. Rychlost na Mac Studiu a pokles přesnosti ale zatím nikdo nezávisle neověřil, takže je to spíš pomocník pro první průchod než náhrada API.](https://nobig.deals/cs/blog/mistral-large-4-lokalne-mac-studio)[![API kredity ChatGPT: až 500 USD měsíčně pro Pro a Business](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvt9h3o0000s0xpexja886st%2Fapi-kredity-chatgpt-pro-business-hero-1b9b8cacd2.webp&w=3840&q=75)AI a vývojAPI kredity ChatGPT: až 500 USD měsíčně pro Pro a BusinessOpenAI od 28\. října 2026 dává předplatitelům ChatGPT Pro a Business měsíční API kredit až 500 USD. Stačí splnit podmínky nároku a aktivovat ho v nastavení fakturace. Nevyužitý kredit ale na konci období propadá.](https://nobig.deals/cs/blog/api-kredity-chatgpt-pro-business)