A Computer-use Agent for the Windows Operating System.
Project description
raya - Computer Use Agent
Introduction
Are you tired of performing repetitive tasks on your PC?
raya is an AI agent for raya that harnesses the power of code and AI to control your PC with ease. It enables you to automate any task by interacting with applications, clicking buttons, typing, running commands, and capturing the UI state.
Unlike traditional computer vision models, raya works directly at the raya GUI layer, providing advanced automation capabilities without relying on image recognition techniques.
Installation
Requirements:
- Python 3.12 or higher
- raya 7, 8, 10, or 11
- UV (optional, or use pip)
To install with uv:
uv pip install raya
Or with pip:
pip install raya
Usage
To use raya in your own script:
from langchain_google_genai import ChatGoogleGenerativeAI
from raya.agent import Agent
from dotenv import load_dotenv
load_dotenv()
llm = ChatGoogleGenerativeAI(model='gemini-2.0-flash')
agent = Agent(llm=llm, browser='chrome', use_vision=True)
query = input("Enter your query: ")
result = agent.invoke(query=query)
print(result.content)
To run the agent from the command line:
python main.py
Example Prompts
- Write a short note about LLMs and save to the desktop
- Change from Dark mode to Light mode
See the demos for screenshots and more examples.
Project Status
- raya is under active development.
- Contributions, bug reports, and feature requests are welcome.
Caution
raya interacts directly with your raya OS at the GUI layer to perform actions. While designed to be intelligent and safe, it can make mistakes that might cause unintended changes. Use with care.
🪪 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
Thank you for your interest in contributing to raya!
Getting Started
Development Environment
raya requires:
- Python 3.13 or later
Installation from Source
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/raya.git cd raya
- Install the package in development mode:
pip install -e ".[dev,search]"
- Set up pre-commit hooks:
pip install pre-commit pre-commit install
Development Workflow
Branching Strategy
mainbranch contains the latest stable code- Create feature branches from
mainnamed according to the feature you're implementing:feature/your-feature-name - For bug fixes, use:
fix/bug-description
Commit Messages
- No strict style enforced, but keep commit messages clear and informational.
Code Style
- Uses Ruff for formatting and linting (see
ruff.toml). - Line length: 100 characters
- Double quotes for strings
- PEP 8 naming conventions
- Add type hints to function signatures
Pre-commit Hooks
- Configured in
.pre-commit-config.yaml. - Hooks will:
- Format code using Ruff
- Run linting checks
- Check for trailing whitespace
- Ensure files end with a newline
- Validate YAML files
- Check for large files
- Remove debug statements
Testing
Running Tests
Run the test suite with pytest:
pytest
To run specific test categories:
pytest tests/
Adding Tests
- Add unit tests for new functionality in
tests/unit/ - For slow or network-dependent tests, mark them with
@pytest.mark.slowor@pytest.mark.integration - Aim for high test coverage of new code
Pull Requests
Creating a Pull Request
- Ensure your code passes all tests and pre-commit hooks
- Push your changes to your fork
- Submit a pull request to the main repository
- Follow the pull request template
Documentation
- Update docstrings for new or modified functions, classes, and methods
- Use Google-style docstrings:
def function_name(param1: type, param2: type) -> return_type: """Short description. Longer description if needed. Args: param1: Description of param1 param2: Description of param2 Returns: Description of return value Raises: ExceptionType: When and why this exception is raised """
Getting Help
- Open an issue for discussion
- Reach out to the maintainers
- Check existing code for examples
Citation
@software{
author = {Rayamah, Ibrahim},
title = {raya: Enable AI to control your PC},
year = {2025},
publisher = {GitHub},
url={https://github.com/iBz-04/raya}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file raya_agent-0.1.1.tar.gz.
File metadata
- Download URL: raya_agent-0.1.1.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6d86175348ec80d399894742413ab3aca7e75c0b62592246ddc7b743605a944
|
|
| MD5 |
c66e66f850fb5c052ccdd699e3d7851d
|
|
| BLAKE2b-256 |
4053155a30e25cc0302d24b4721e8ae257ddb0b99216483895be8834fb63d99b
|
File details
Details for the file raya_agent-0.1.1-py3-none-any.whl.
File metadata
- Download URL: raya_agent-0.1.1-py3-none-any.whl
- Upload date:
- Size: 32.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
093c9771ab029b377cb6538d4e37ba03d3293e6fa59216dcf60a930b4b9165d5
|
|
| MD5 |
1f3d315b929845bd69cae23cc05e80cf
|
|
| BLAKE2b-256 |
69cc3f48171eff9b3ce7fbf783a6128b9e9745ef8c339917273d689f27be293b
|