Skip to main content

🖥️ 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

  1. Capture - Takes a screenshot of your desktop
  2. Scale - Resizes to fit Claude's vision constraints (max 1568px edge)
  3. Analyze - Claude sees the screenshot and decides what to do
  4. Execute - Mouse/keyboard commands are executed via cliclick
  5. 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)

Source distribution for ai-desktop-use 0.1.0
File Size Uploaded Provenance
ai_desktop_use-0.1.0.tar.gz 102.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-desktop-use 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page