🖥️ Desktop-Use
AI-powered desktop automation SDK — like Browser-Use but for your entire desktop.
from desktop_use import Agent
agent = Agent(task="Open Calculator and calculate 2+2")
result = agent.run_sync()
✨ Features
- 🤖 AI-Powered - Uses Claude's vision to understand and interact with any desktop application
- 🖱️ Full Control - Mouse, keyboard, screenshots - everything you need
- 🍎 macOS First - Native performance with cliclick (Windows/Linux coming soon)
- 📐 Ultra-wide Ready - Automatic resolution scaling for any display size
- 🧠 Memory Integration - Optional Remembra integration for persistent context
- ⚡ Simple API - One-liner to automate complex tasks
🚀 Quick Start
Installation
# Install cliclick (macOS only)
brew install cliclick
# Install Desktop-Use
pip install desktop-use
Grant Permissions
Go to System Settings → Privacy & Security → Accessibility and enable your Terminal app.
Run Your First Task
# CLI
desktop-use "Open Spotlight and search for Notes"
# Python
python -c "from desktop_use import run; run('Open Calculator')"
📖 Usage
Python SDK
from desktop_use import Agent, AgentConfig
# Simple usage
agent = Agent(task="Open FaceTime")
result = agent.run_sync()
# With configuration
config = AgentConfig(
model="claude-4-sonnet-20250514",
max_steps=20,
verbose=True
)
agent = Agent(task="Create a new folder called 'Test' on Desktop", config=config)
result = agent.run_sync()
if result.success:
print(f"Done: {result.final_message}")
else:
print(f"Failed: {result.error}")
Low-Level Control
from desktop_use import Desktop
desktop = Desktop()
# Direct control
desktop.click(100, 200)
desktop.type("Hello World")
desktop.press("return")
desktop.hotkey("cmd", "space") # Open Spotlight
# Screenshot
img = desktop.screenshot()
img.save("screen.png")
CLI
# Basic usage
desktop-use "Open Safari and go to google.com"
# With options
desktop-use --max-steps 25 "Fill out the form on the current page"
desktop-use --model claude-4-opus-20250514 "Complex multi-step task"
desktop-use --quiet "Background task"
🖥️ Platform Support
| Platform | Status | Mouse/Keyboard | Screenshots |
|---|---|---|---|
| macOS | ✅ Ready | cliclick | native/mss |
| Windows | 🔜 Soon | pyautogui | mss |
| Linux | 🔜 Soon | pyautogui | mss |
🔧 Requirements
- Python 3.10+
- macOS 12+ (for now)
- cliclick (
brew install cliclick) - Anthropic API key
📐 How It Works
- Capture - Takes a screenshot of your desktop
- Scale - Resizes to fit Claude's vision constraints (max 1568px edge)
- Analyze - Claude sees the screenshot and decides what to do
- Execute - Mouse/keyboard commands are executed via cliclick
- Repeat - Loop until task is complete or max steps reached
The coordinate scaling is automatic - Claude works in scaled coordinates, and Desktop-Use maps them back to your actual resolution.
🧠 Memory Integration (Optional)
Connect to Remembra for persistent memory:
config = AgentConfig(
memory_url="http://localhost:8787",
memory_project_id="my-automation"
)
agent = Agent(task="Do what I asked yesterday", config=config)
🛣️ Roadmap
- macOS support with cliclick
- Ultra-wide display support
- CLI interface
- Windows support (pyautogui)
- Linux support (pyautogui/xdotool)
- MCP server for Claude Desktop
- Async operations
- Action recording/playback
- Visual debugging mode
🤝 Contributing
Contributions welcome! See CONTRIBUTING.md.
📄 License
MIT License - see LICENSE.
Built with ❤️ by DolphyTech
Metadata
Release files for ai-desktop-use 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai_desktop_use-0.1.0.tar.gz | 102.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_desktop_use-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 136.1 kB
Release files / ai_desktop_use-0.1.0.tar.gz
| Download URL | ai_desktop_use-0.1.0.tar.gz |
|---|---|
| Size | 102.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f00c228d6e6771c5b458d4c960492812474d84b7f6cebf41a3f65ea4977fa543
|
|
BLAKE2b-256 checksum How to use checksums |
9182f674a01b428c9c7a7371c5ce276ca2723131811da326965bc623089babce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / ai_desktop_use-0.1.0-py3-none-any.whl
| Download URL | ai_desktop_use-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41f0b3560d12203ad110ca7d916c777f198bce517889af58674c5ca223f9cab1
|
|
BLAKE2b-256 checksum How to use checksums |
fc50081d7f505863ef151061309bc91986c62681ff3961e9bd0ca9a04ce9e9a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Security for ai-desktop-use 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.