Observed since 20 Oct, 21:48 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentdesk_dg
A desktop for AI agents
Desktops for AI agents :computer:
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
AgentDesk provides full-featured desktop environments which can be programatically controlled by AI agents. Spin them up locally or in the cloud.
▶ Built on agentd a runtime daemon which exposes a REST API for interacting with the desktop.
▶ Implements the DeviceBay Protocol.
pip install agentdesk
from agentdesk import Desktop
# Create a local VM
desktop = Desktop.local()
# Launch the UI for it
desktop.view(background=True)
# Open a browser to Google
desktop.open_url("https://google.com")
# Take actions on the desktop
desktop.move_mouse(500, 500)
desktop.click()
img = desktop.take_screenshot()
from agentdesk import Desktop
desktop = Desktop.local()
$ agentdesk create --provider qemu
*requires qemu
desktop = Desktop.gce()
$ agentdesk create --provider gce
desktop = Desktop.ec2()
$ agentdesk create --provider ec2
desktop.view()
$ agentdesk view old_mckinny
*requires docker
Desktop.find()
$ agentdesk get
Desktop.delete("old_mckinny")
$ agentdesk delete old_mckinny
desktop.open_url("https://google.com")
coords = desktop.mouse_coordinates()
desktop.move_mouse(500, 500)
desktop.click()
desktop.type_text("What kind of ducks are in Canada?")
desktop.press_key('Enter')
desktop.scroll()
img = desktop.take_screenshot()
Process images to make them more accessible to LMMs.
Add a coordinate grid on top of the image
from agentdesk.processors import GridProcessor
img = desktop.take_screenshot()
processor = GridProcessor()
grid_img = processor.process_b64(img)
See how to use a web-based drawing app with AgentDesk in our notebook.
See how to use GPT-4V with AgentDesk in our notebook or agent.
Come join us on Discord.
Please open an issue before creating a PR.
Changes to the VM happen in agentd.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
pillowEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | pillow<11.0.0,>=10.2.0 | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | requests<3.0.0,>=2.31.0 | runtime |
fastapiEnvironment{
"extras": "all",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | fastapi[all]<0.110.0,>=0.109.0 | runtime |
sqlalchemyEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | sqlalchemy<3.0.0,>=2.0.25 | runtime |
psycopg2-binaryEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | psycopg2-binary<3.0.0,>=2.9.9 | runtime |
psutilEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | psutil<6.0.0,>=5.9.8 | runtime |
dockerEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | docker<8.0.0,>=7.0.0 | runtime |
pycdlibEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | pycdlib<2.0.0,>=1.14.0 | runtime |
namesgeneratorEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | namesgenerator<0.4,>=0.3 | runtime |
paramikoEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | paramiko<4.0.0,>=3.4.0 | runtime |
typerEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | typer<0.10.0,>=0.9.0 | runtime |
tabulateEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | tabulate<0.10.0,>=0.9.0 | runtime |
tqdmEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | tqdm<5.0.0,>=4.66.2 | runtime |
tenacityEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | tenacity<9.0.0,>=8.2.3 | runtime |
google-cloud-storageEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | google-cloud-storage<3.0.0,>=2.14.0 | runtime |
google-cloud-computeEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | google-cloud-compute<2.0.0,>=1.15.0 | runtime |
google-cloud-containerEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | google-cloud-container<3.0.0,>=2.38.0 | runtime |
boto3Environment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | boto3<2.0.0,>=1.34.28 | runtime |
boto3-stubsEnvironment{
"extras": "ec2",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | boto3-stubs[ec2]<2.0.0,>=1.34.28 | runtime |
mypy-boto3-ec2Environment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | mypy-boto3-ec2<2.0.0,>=1.34.52 | runtime |
toolfuseEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | toolfuse<0.2.0,>=0.1.13 | runtime |
devicebayEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.10",
"evaluation": "NOT_EVALUATED"
} | devicebay<0.2.0,>=0.1.24 | runtime |
bdist_wheel · 42.09 KB · Python py3
sdist · 34.07 KB · Python source
Observed since 20 Oct, 21:48 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:857d07ce92a82db654a8faef398d9e148605e33de64e7f84b2fb4bf6098433f3