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.1.tar.gz (124.8 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.1-py3-none-any.whl (151.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: windows_use-0.7.1.tar.gz
  • Upload date:
  • Size: 124.8 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.1.tar.gz
Algorithm Hash digest
SHA256 bdeacc9224a4d718c95cc5248dedbb19143c496bd3f5ff90bf4c2e18f8b4d57a
MD5 83197aec8b55e928d0e3b75a814a846c
BLAKE2b-256 c4d79bb80ea8773b7b2a582aee7f93304a1dd4c49779b359dcebe42f454f9d2f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: windows_use-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 151.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eda29a354a9911f95dfe8cf500ba2fef4a9d934a3ecabb8f5fc36634d0d686c7
MD5 74e62527d5603ce0b66d145f28fff071
BLAKE2b-256 6faa32c93981ea105d33ffbd97ee3ac80db0cf7ff1d3369884507867097d101d

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