Metadata-Version: 2.5
Name: harmonyrun
Version: 0.0.29
Summary: A framework for automating HarmonyOS devices through LLM agents
Project-URL: Homepage, https://github.com/HarmonyOS-AI/HarmonyRun
Project-URL: Bug Tracker, https://github.com/HarmonyOS-AI/HarmonyRun/issues
Project-URL: Documentation, https://docs.droidrun.ai/
Author-email: Niels Schmidt <niels.schmidt@droidrun.ai>
License: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: Acceptance
Classifier: Topic :: System :: Emulators
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Requires-Dist: aiofiles>=25.1.0
Requires-Dist: anthropic>=0.67.0
Requires-Dist: httpx[socks]>=0.27.0
Requires-Dist: jsonschema>=4.20.0
Requires-Dist: llama-index-llms-anthropic<0.9.0,>=0.8.6
Requires-Dist: llama-index-llms-openai-like>=0.5.1
Requires-Dist: llama-index-llms-openai>=0.5.6
Requires-Dist: llama-index-workflows==2.8.3
Requires-Dist: llama-index==0.14.4
Requires-Dist: mobilerun-sdk
Requires-Dist: posthog>=6.7.6
Requires-Dist: pydantic>=2.11.10
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: rich>=14.1.0
Provides-Extra: all
Requires-Dist: llama-index-llms-deepseek>=0.2.1; extra == 'all'
Requires-Dist: llama-index-llms-google-genai>=0.8.5; extra == 'all'
Requires-Dist: llama-index-llms-ollama>=0.7.2; extra == 'all'
Requires-Dist: llama-index-llms-openrouter>=0.4.2; extra == 'all'
Provides-Extra: deepseek
Requires-Dist: llama-index-llms-deepseek>=0.2.1; extra == 'deepseek'
Provides-Extra: dev
Requires-Dist: bandit>=1.8.6; extra == 'dev'
Requires-Dist: black==25.9.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: ruff>=0.13.0; extra == 'dev'
Requires-Dist: safety>=3.2.11; extra == 'dev'
Provides-Extra: google
Requires-Dist: llama-index-llms-google-genai>=0.8.5; extra == 'google'
Provides-Extra: ollama
Requires-Dist: llama-index-llms-ollama>=0.7.2; extra == 'ollama'
Provides-Extra: openrouter
Requires-Dist: llama-index-llms-openrouter>=0.4.2; extra == 'openrouter'
Description-Content-Type: text/markdown

# HarmonyRun

HarmonyRun 0.0.29 is a framework for automating **HarmonyOS** devices through LLM agents, based on DroidRun 0.5.29.

The distribution and primary CLI are named `harmonyrun`. The Python package (`droidrun`), existing APIs, configuration paths, and `droidrun` CLI alias are retained for compatibility.

- 🤖 Control a **HarmonyOS** device with natural language commands
- 🔀 Supports multiple LLM providers (OpenAI, Anthropic, Gemini, Ollama, DeepSeek)
- 🧠 Planning capabilities for complex multi-step tasks
- 💻 Easy to use CLI with enhanced debugging features
- 🐍 Extendable Python API for custom automations
- 📸 Screenshot analysis for visual understanding of the device
- 🫆 Execution tracing with Arize Phoenix

## 📦 Installation

> **Note:** Python 3.14 is not currently supported. Please use Python 3.11 – 3.13.

```bash
pip install harmonyrun
```

## 🚀 Quickstart
Read on how to get HarmonyRun up and running within seconds in [our docs](https://docs.droidrun.ai/v3/quickstart)!

[![Quickstart Video](https://img.youtube.com/vi/4WT7FXJah2I/0.jpg)](https://www.youtube.com/watch?v=4WT7FXJah2I)

## 🎬 Demo Videos

1. **Accommodation booking**: Let HarmonyRun search for an apartment for you

   [![HarmonyRun Accommodation Booking Demo](https://img.youtube.com/vi/VUpCyq1PSXw/0.jpg)](https://youtu.be/VUpCyq1PSXw)

<br>

2. **Trend Hunter**: Let HarmonyRun hunt down trending posts

   [![HarmonyRun Trend Hunter Demo](https://img.youtube.com/vi/7V8S2f8PnkQ/0.jpg)](https://youtu.be/7V8S2f8PnkQ)

<br>

3. **Streak Saver**: Let HarmonyRun save your streak on your favorite language learning app

   [![HarmonyRun Streak Saver Demo](https://img.youtube.com/vi/B5q2B467HKw/0.jpg)](https://youtu.be/B5q2B467HKw)


## 💡 Example Use Cases

- Automated UI testing of mobile applications
- Creating guided workflows for non-technical users
- Automating repetitive tasks on mobile devices
- Remote assistance for less technical users
- Exploring mobile UI with natural language commands

## 👥 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

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

## Security Checks

To ensure the security of the codebase, we have integrated security checks using `bandit` and `safety`. These tools help identify potential security issues in the code and dependencies.

### Running Security Checks

Before submitting any code, please run the following security checks:

1. **Bandit**: A tool to find common security issues in Python code.
   ```bash
   bandit -r droidrun
   ```

2. **Safety**: A tool to check your installed dependencies for known security vulnerabilities.
   ```bash
   safety scan
   ```
