正在加载视频...

视频加载失败

Introducing agent-desktop Computer use for your agents ▲ E2E test desktop apps with agents ▲ Reads apps via the accessibility tree ▲ Drills into part of a window to save tokens ▲ Runs many agents on one app at once ▲ Works on macOS, Windows & Linux npm i...

70,781 次观看 • 20 小时前 •via X (Twitter)

49 条评论

Lahfir ▲ 的头像
Lahfir ▲20 小时前

1/ Skeleton based drilling Agents don't need to see the whole screen, instead of exposing the entire screen, they can now drill through into only what they want.

Lahfir ▲ 的头像
Lahfir ▲20 小时前

2/ Multi-agent Run several agents on one desktop. Start a session with --multi-agent and give each agent an --agent-id. Each one gets its own cursor and label, so you can see who is doing what.

Lahfir ▲ 的头像
Lahfir ▲20 小时前

3/ Headless and headed Headless by default with an exception to few commands - `drag, menus, surfaces`

Lahfir ▲ 的头像
Lahfir ▲20 小时前

4/ With agent-browser agent-desktop pairs with agent-browser. agent-browser drives the web. agent-desktop drives native apps. Together your agent gets reliable computer use across the browser and the desktop.

Lahfir ▲ 的头像
Lahfir ▲20 小时前

Your agents can run agent-desktop in a Vercel Sandbox too. Start a Linux desktop in the cloud, run agent-desktop inside it, and get JSON back.

Lahfir ▲ 的头像
Lahfir ▲20 小时前

A ▲ Labs Experiment. Give your agents hands today npm i -g agent-desktop

Haki 的头像
Haki19 小时前

shoutout to @vercel team for making agent-browser

andré valle 的头像
andré valle19 小时前

reading apps through the accessibility tree is the smart move. way more reliable than guessing from screenshots

heath 的头像
heath19 小时前

I built helix, a personal tool to manage my AI agents, so I’m curious: what happens if two agents try to change the same app state at once?

Pranit 的头像
Pranit19 小时前

Yes sirrrrrr

Lahfir ▲ 的头像
Lahfir ▲19 小时前

lessgoo

Patrick 的头像
Patrick17 小时前

For those of you who might be using @omarchy tell Claude to "fork the repo and start installing and testing. Then every time you runs into an error or a limitation, code a solution and retest. Keep testing until the entire stack works" Thank me later.

Jeremiah 的头像
Jeremiah18 小时前

Tried it with Zed and it fumbled working in the background. MacOS Harness works better...

Lahfir ▲ 的头像
Lahfir ▲18 小时前

Was it taking the focus?

Jeremiah 的头像
Jeremiah17 小时前

It was at first and in the background it couldn't type into Zed since Zed exposes no accessibility ref for the editor while MacOS Harness sends keys straight to Zed's process. I had told it "open Zed and type out a joke then save it as a file."

Lahfir ▲ 的头像
Lahfir ▲17 小时前

'osascript' which I believe is what macos harness does, we should explore this. Thanks for the feedback

CoArena (YC S26) 的头像
CoArena (YC S26)13 小时前

The window drill-down is a useful detail. Would love to see full-window vs drilled-down token counts at the same task completion rate, including screenshot fallbacks when controls are missing from the accessibility tree.

Juan Pinzón 的头像
Juan Pinzón15 小时前

There is focus problems on other frameworks using the accessibility tree any progress on this end?

Olgun 的头像
Olgun19 小时前

was thinking about to build something like that, awesome work

Pete Sena 的头像
Pete Sena18 小时前

Epic! There goes my whole weekend. LFG

Salem Sayed 🔻 的头像
Salem Sayed 🔻11 小时前

Hoping for hyperland support soon

adam 的头像
adam18 小时前

nice work

Lahfir ▲ 的头像
Lahfir ▲18 小时前

Thanks

Harsh Raj 的头像
Harsh Raj18 小时前

this is sick. what does it do on apps with half-labeled accessibility trees, fall back to screenshots?

Lahfir ▲ 的头像
Lahfir ▲18 小时前

It's like a iframe issue in web. Doesn't fallback automatically but you can get it working using --headed It's a really good surface to work on. Getting it working for poor accessible elements would be a banger

Harsh Raj 的头像
Harsh Raj17 小时前

ah got it, the iframe analogy helps. pretty cool shit you're working on. getting it to handle poorly labeled elements would be huge.

Lahfir ▲ 的头像
Lahfir ▲17 小时前

🫡

Anjana Supun 的头像
Anjana Supun19 小时前

This should be good

Marco D'Alia 的头像
Marco D'Alia11 小时前

great! will it works with agent-browser? Meaning it could for eg operate the browser and other apps together with an unified interface?

Lahfir ▲ 的头像
Lahfir ▲11 小时前

Yes! agent-desktop -> desktop apps, agent-browser -> browser surfaces / chromium apps

Marco D'Alia 的头像
Marco D'Alia9 小时前

nice, thanks!

Lucas Young 的头像
Lucas Young10 小时前

Drilling into just the place card (45 refs vs 75 for the whole window) is the part I want for long desktop runs. Couldn't try it on our headless Linux box yet since there's no AT-SPI bus there

Taesu 的头像
Taesu19 小时前

👀

Esteban Suárez 的头像
Esteban Suárez15 小时前

huge

Bragifer 的头像
Bragifer11 小时前

Running many agents on one app makes state isolation part of the test design. If one changes the screen while another asserts against it, a failure may reflect the test setup rather than an app bug.

Soph h 的头像
Soph h19 小时前

Great point!

Justin Wright 的头像
Justin Wright15 小时前

@bot check this out

Juliano | Building easi.run 的头像
Juliano | Building easi.run15 小时前

Background input looks useful for shared browser workflows. How do you handle a person taking over while an agent has actions queued? I'd want an explicit pause/hand-back signal before those actions resume, especially around logins and forms.

383degrees 的头像
383degrees13 小时前

stop moving the mouse lol. use a grid

DataMining 的头像
DataMining12 小时前

yeah reading the accessibility tree instead of guessing pixels is overdue. curious how often screenshot loops still win once the UI gets weird.

Sacha 的头像
Sacha10 小时前

i'm tired of javascript boss

Adar 的头像
Adar12 小时前

Bro how does it compare to Cua Driver?

Brian Gruber 的头像
Brian Gruber18 小时前

What is this sorcery?!

Lucky · CypherMonkey🐒 的头像
Lucky · CypherMonkey🐒13 小时前

Wowww

Shpeedle 的头像
Shpeedle16 小时前

nice man nice. how does it do with linux? I will have to try it out. I was doing something similar with boxcar: but I have not worked on it in a bit. Linux is a little trickier bc of wayland and an inconsistency in accessibility trees in app distributions.

Peter Prins 的头像
Peter Prins8 小时前

Wow, very cool! Looking forward to giving it a spin! Question: how does it handle permissions? E.g. How can I instruct it to never send e-mail or complete forms on websites?

Leo Piñeyro 的头像
Leo Piñeyro16 小时前

@ctatedev Really exciting stuff!

BreezeOg 的头像
BreezeOg12 小时前

accessibility tree instead of screenshots should save a ton of tokens

Danny Shmueli 的头像
Danny Shmueli8 小时前

Can it play an Unreal game for me? asking for my hospital game

相关视频