Skip to main content

An AI Agent that interacts with Windows OS at GUI level.

Project description

🪟 Windows-Use

PyPI Downloads License Python Platform: Windows 7 to 11
Follow on Twitter Join us on Discord

Windows-Use is a powerful automation agent that interact directly with the Windows at GUI layer. It bridges the gap between AI Agents and the Windows OS to perform tasks such as opening apps, clicking buttons, typing, executing shell commands, and capturing UI state all without relying on traditional computer vision models. Enabling any LLM to perform computer automation instead of relying on specific models for it.

Updates

  • Migrated from langchain, langgraph.

🛠️Installation Guide

Prerequisites

  • Python 3.12 or higher
  • UV (or pip)
  • Windows 7 or 8 or 10 or 11

Installation Steps

Install using uv:

uv add windows-use

Or with pip:

pip install windows-use

⚙️Basic Usage

Ollama

# main.py

from windows_use.llms.ollama import ChatOllama
from windows_use.agent import Agent, Browser
from dotenv import load_dotenv
import os

load_dotenv()

def main():
    llm=ChatOllama(model='qwen3-vl:235b-cloud')
    agent = Agent(llm=llm, browser=Browser.EDGE, use_vision=False, auto_minimize=False)
    agent.print_response(query=input("Enter a query: "))

if __name__ == "__main__":
    main()

Google Gemini

# main.py

from windows_use.llms.google import ChatGoogle
from windows_use.agent import Agent, Browser
from dotenv import load_dotenv
import os

load_dotenv()

def main():
  #For Gemini API (not VertexAI)
  api_key = os.getenv("GOOGLE_API_KEY")
  llm=ChatGoogle(model="gemini-2.5-flash", api_key=api_key, temperature=0.7)
  agent = Agent(llm=llm, browser=Browser.EDGE, use_vision=False, auto_minimize=True)
  agent.print_response(query=input("Enter a query: "))

if __name__ == "__main__":
  main()

🤖 Run Agent

You can use the following to run from a script:

uv run main.py

🎥 Demos

PROMPT: Write a short note about LLMs and save to the desktop

https://github.com/user-attachments/assets/0faa5179-73c1-4547-b9e6-2875496b12a0

PROMPT: Change from Dark mode to Light mode

https://github.com/user-attachments/assets/47bdd166-1261-4155-8890-1b2189c0a3fd

📈 Grounding

Image Image Image Image Image

Vision

Talk to your computer. Watch it get things done.

Star History

Star History Chart

⚠️ Security

This agent can:

  • Operate your computer on the behalf of the user
  • Modify files and system settings
  • Make irreversible changes to your system

⚠️ STRONGLY RECOMMENDED: Deploy in a Virtual Machine or Windows Sandbox

The project provides NO sandbox or isolation layer. For your safety:

  • ✅ Use a Virtual Machine (VirtualBox, VMware, Hyper-V)
  • ✅ Use Windows Sandbox (Windows 10/11 Pro/Enterprise)
  • ✅ Use a dedicated test machine

📖 Read the full Security Policy before deployment.

🪪 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgements

Windows-Use makes use of several excellent open-source projects that power its Windows automation features:

Huge thanks to the maintainers and contributors of these libraries for their outstanding work and open-source spirit.

📡 Telemetry

Windows-Use includes lightweight, privacy-friendly telemetry to help improve reliability, debug failures, and understand how the agent behaves in real environments.

You can disable telemetry by setting the environment variable:

ANONYMIZED_TELEMETRY=false

Or in your Python code:

import os
os.environ["ANONYMIZED_TELEMETRY"] = "false"

🤝 Contributing

Contributions are welcome! Please check the CONTRIBUTING file for setup and development workflow.

Made with ❤️ by Jeomon George


Citation

@software{
  author       = {George, Jeomon},
  title        = {Windows-Use: Enable AI to control Windows OS},
  year         = {2025},
  publisher    = {GitHub},
  url={https://github.com/CursorTouch/Windows-Use}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

windows_use-0.7.2.tar.gz (125.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

windows_use-0.7.2-py3-none-any.whl (152.0 kB view details)

Uploaded Python 3

File details

Details for the file windows_use-0.7.2.tar.gz.

File metadata

  • Download URL: windows_use-0.7.2.tar.gz
  • Upload date:
  • Size: 125.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for windows_use-0.7.2.tar.gz
Algorithm Hash digest
SHA256 a07b389353e05e950b94dfdad0ac682d450dde26fbd5bc9d7c3484263ea06b49
MD5 2dbeab9bd74f1f448cf4db80112531b4
BLAKE2b-256 e625d9e8592c87e74778cce7159b7169175365a7703c66fba0341061db3c80d6

See more details on using hashes here.

File details

Details for the file windows_use-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: windows_use-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 152.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for windows_use-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e860704f8d09fbfb8b5613a25a61a7111824cf7b7150fbbeef85d199cfe51fc9
MD5 61d64de629ab387e954833022d7b05d8
BLAKE2b-256 2be4d22874d11dfadee01105cec4d85e30e4cfacced58f9bdb55653e6464bbbf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page