Metadata-Version: 2.5
Name: hai-drivers
Version: 0.1.10
Summary: Web, desktop and shell drivers for H Company's computer-use agents
Project-URL: Homepage, https://hcompany.ai
Project-URL: Documentation, https://hub.hcompany.ai
Author-email: H Company <contact@hcompany.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: agent,browser-use,computer-use,desktop-automation,h-company,selenium
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: markdownify>=0.14.1
Requires-Dist: pillow>=10.0
Requires-Dist: pydantic>=2.10
Provides-Extra: browser-cli
Requires-Dist: aiohttp>=3.9; extra == 'browser-cli'
Requires-Dist: playwright>=1.56; extra == 'browser-cli'
Requires-Dist: tyro<0.10,>=0.9.35; (python_version >= '3.13') and extra == 'browser-cli'
Requires-Dist: tyro<0.9,>=0.8.14; (python_version < '3.13') and extra == 'browser-cli'
Requires-Dist: websockets>=13; extra == 'browser-cli'
Provides-Extra: cua-cli
Requires-Dist: cua-driver==0.34.0; extra == 'cua-cli'
Requires-Dist: tyro<0.10,>=0.9.35; (python_version >= '3.13') and extra == 'cua-cli'
Requires-Dist: tyro<0.9,>=0.8.14; (python_version < '3.13') and extra == 'cua-cli'
Provides-Extra: desktop
Requires-Dist: pyautogui>=0.9.54; extra == 'desktop'
Requires-Dist: pynput>=1.7.6; extra == 'desktop'
Provides-Extra: desktop-cli
Requires-Dist: pyautogui>=0.9.54; extra == 'desktop-cli'
Requires-Dist: pygetwindow>=0.0.9; (sys_platform == 'win32') and extra == 'desktop-cli'
Requires-Dist: pyobjc-framework-applicationservices>=10; (sys_platform == 'darwin') and extra == 'desktop-cli'
Requires-Dist: pyobjc-framework-quartz>=10; (sys_platform == 'darwin') and extra == 'desktop-cli'
Requires-Dist: pyperclip>=1.8; extra == 'desktop-cli'
Requires-Dist: tyro<0.10,>=0.9.35; (python_version >= '3.13') and extra == 'desktop-cli'
Requires-Dist: tyro<0.9,>=0.8.14; (python_version < '3.13') and extra == 'desktop-cli'
Provides-Extra: playwright
Requires-Dist: aiohttp>=3.9; extra == 'playwright'
Requires-Dist: playwright>=1.56; extra == 'playwright'
Provides-Extra: web
Requires-Dist: selenium>=4.15.2; extra == 'web'
Description-Content-Type: text/markdown

# hai-drivers

Web, desktop and shell drivers for [H Company](https://hcompany.ai)'s computer-use agents.

```bash
pip install "hai-drivers[web]"          # browser driver (Selenium)
pip install "hai-drivers[playwright]"   # browser driver (Playwright, async)
pip install "hai-drivers[desktop]"      # desktop driver
pip install "hai-drivers[desktop-cli]"  # `desk`: desktop commands for an agent's shell
pip install "hai-drivers[browser-cli]"  # `web`: browser commands for an agent's shell
pip install "hai-drivers[cua-cli]"      # `cua`: desktop commands for an agent's shell, through cua-driver
```

`desk click X Y`, `desk key ctrl+s`, `desk screenshot`; `desk aliases` puts one executable per command next to `desk`
so the bare `click`, `key`, `screenshot` work as well.

`web goto URL`, `web text`, `web click @e4`, `web screenshot`: one `web` executable drives the
Chrome already running with `--remote-debugging-port=9222`, through a warm daemon holding the
Playwright driver.

`cua windows`, `cua state`, `cua click 12`, `cua type "text"`, `cua shot`: one `cua` executable reads each window's
accessibility tree and acts on numbered controls or screen pixels through a warm [cua-driver](https://github.com/trycua/cua)
daemon, with a receipt per action saying what the driver could verify. `cua skill` prints the manual.

`LocalCodeSandbox` runs an agent's shell and file calls in a folder on this machine, with the
permissions of the user running it.

This package is consumed by the [`hai-agents`](https://pypi.org/project/hai-agents/)
SDK to let agents control a local browser, desktop or shell; it is not meant to be used on
its own.
