| Name | optr JSON |
| Version |
0.0.0a10
JSON |
| download |
| home_page | None |
| Summary | Unified toolkit for building, training, and testing digital and physical operators. |
| upload_time | 2025-09-06 15:29:38 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.12 |
| license | MIT |
| keywords |
automation
desktop
operators
robotics
sdk
simulation
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Operator (`optr`)
A unified Python framework for building, training, and deploying intelligent operators across digital and physical environments.
> [!WARNING]
> **Early Alpha** — APIs and behavior will change without notice.
## Overview
`optr` provides a flexible architecture for creating operators that can:
- **Automate desktop applications** via GUI interaction
- **Control physical robots** through simulation and hardware interfaces
- **Learn from demonstrations** using imitation learning and reinforcement learning
- **Record and replay** episodes for testing and training
- **Bridge multiple environments** with unified connector interfaces
## Key Features
- **Desktop Automation** - Click, type, and interact with GUI elements
- **Robot Control** - MuJoCo simulation and physical robot support
- **Learning Algorithms** - Imitation learning, Pi0, and custom algorithms
- **Episode Recording** - Capture and replay operator sequences
- **Modular Connectors** - Extensible interface for any environment
- **Validation & Safety** - Built-in sentinel guards and validators
- **Training Pipeline** - Dataset management and model training
## Installation
### Basic Install
```bash
pip install optr
```
### Development Install (using uv)
```bash
git clone https://github.com/codecflow/optr
cd optr
uv sync --dev
```
## Quick Start
### Desktop Automation
Create an operator that automates login:
```python
# my_app/operators/login.py
from optr.operator import Operator
from optr.connector.desktop import DesktopConnector
async def login_operator():
op = Operator({"desktop": DesktopConnector()})
# Click username field
await op.execute_action("click", selector="#username")
await op.execute_action("type", text="demo_user")
# Click password field
await op.execute_action("click", selector="#password")
await op.execute_action("type", text="secure_pass")
# Submit form
await op.execute_action("click", selector="#submit")
return op
```
### Robot Control (MuJoCo)
Control a simulated robot:
```python
# my_app/operators/robot.py
from optr.operator import Operator
from optr.simulator.mujoco import MuJoCoSimulation
async def robot_operator():
sim = MuJoCoSimulation("models/robot.xml")
op = Operator({"robot": sim.get_connector()})
# Move to target position
await op.execute_action("move",
connector_name="robot",
position=[0.5, 0.3, 0.2])
# Grasp object
await op.execute_action("grasp",
connector_name="robot",
force=10.0)
return op
```
## Core Concepts
### Operators
The main abstraction for defining automated behaviors. Operators can work with multiple connectors simultaneously.
### Connectors
Interfaces to different environments (desktop, robot, web, etc.). Each connector provides state observation and action execution.
### Algorithms
Learning algorithms for training operators from demonstrations or through reinforcement learning.
### Episodes
Recorded sequences of states and actions that can be replayed or used for training.
### Sentinel
Safety and validation layer that ensures operators behave within defined constraints.
## Roadmap
- [ ] Cloud API connectors
- [ ] Distributed operator coordination
- [ ] Model zoo with pre-trained operators
- [ ] Real-time monitoring dashboard
## License
MIT © CodecFlow
Raw data
{
"_id": null,
"home_page": null,
"name": "optr",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "automation, desktop, operators, robotics, sdk, simulation",
"author": null,
"author_email": "CodecFlow Team <team@codecflow.ai>",
"download_url": "https://files.pythonhosted.org/packages/a0/ad/01bb9c990d44377418f9ebbc77a567d4e6642689202fdcda86dabaf27956/optr-0.0.0a10.tar.gz",
"platform": null,
"description": "\n\n# Operator (`optr`)\n\nA unified Python framework for building, training, and deploying intelligent operators across digital and physical environments.\n\n> [!WARNING] \n> **Early Alpha** \u2014 APIs and behavior will change without notice.\n\n## Overview\n\n`optr` provides a flexible architecture for creating operators that can:\n- **Automate desktop applications** via GUI interaction\n- **Control physical robots** through simulation and hardware interfaces \n- **Learn from demonstrations** using imitation learning and reinforcement learning\n- **Record and replay** episodes for testing and training\n- **Bridge multiple environments** with unified connector interfaces\n\n## Key Features\n\n- **Desktop Automation** - Click, type, and interact with GUI elements\n- **Robot Control** - MuJoCo simulation and physical robot support\n- **Learning Algorithms** - Imitation learning, Pi0, and custom algorithms\n- **Episode Recording** - Capture and replay operator sequences\n- **Modular Connectors** - Extensible interface for any environment\n- **Validation & Safety** - Built-in sentinel guards and validators\n- **Training Pipeline** - Dataset management and model training\n\n## Installation\n\n### Basic Install\n```bash\npip install optr\n```\n\n### Development Install (using uv)\n```bash\ngit clone https://github.com/codecflow/optr\n\ncd optr\n\nuv sync --dev\n```\n\n## Quick Start\n\n### Desktop Automation\n\nCreate an operator that automates login:\n\n```python\n# my_app/operators/login.py\n\nfrom optr.operator import Operator\nfrom optr.connector.desktop import DesktopConnector\n\nasync def login_operator():\n op = Operator({\"desktop\": DesktopConnector()})\n \n # Click username field\n await op.execute_action(\"click\", selector=\"#username\")\n await op.execute_action(\"type\", text=\"demo_user\")\n \n # Click password field \n await op.execute_action(\"click\", selector=\"#password\")\n await op.execute_action(\"type\", text=\"secure_pass\")\n \n # Submit form\n await op.execute_action(\"click\", selector=\"#submit\")\n \n return op\n```\n\n### Robot Control (MuJoCo)\n\nControl a simulated robot:\n\n```python\n# my_app/operators/robot.py\n\nfrom optr.operator import Operator\nfrom optr.simulator.mujoco import MuJoCoSimulation\n\nasync def robot_operator():\n sim = MuJoCoSimulation(\"models/robot.xml\")\n op = Operator({\"robot\": sim.get_connector()})\n \n # Move to target position\n await op.execute_action(\"move\", \n connector_name=\"robot\",\n position=[0.5, 0.3, 0.2])\n \n # Grasp object\n await op.execute_action(\"grasp\", \n connector_name=\"robot\",\n force=10.0)\n \n return op\n```\n\n## Core Concepts\n\n### Operators\nThe main abstraction for defining automated behaviors. Operators can work with multiple connectors simultaneously.\n\n### Connectors\nInterfaces to different environments (desktop, robot, web, etc.). Each connector provides state observation and action execution.\n\n### Algorithms\nLearning algorithms for training operators from demonstrations or through reinforcement learning.\n\n### Episodes\nRecorded sequences of states and actions that can be replayed or used for training.\n\n### Sentinel\nSafety and validation layer that ensures operators behave within defined constraints.\n\n## Roadmap\n\n- [ ] Cloud API connectors\n- [ ] Distributed operator coordination\n- [ ] Model zoo with pre-trained operators\n- [ ] Real-time monitoring dashboard\n\n## License\n\nMIT \u00a9 CodecFlow\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Unified toolkit for building, training, and testing digital and physical operators.",
"version": "0.0.0a10",
"project_urls": {
"Issues": "https://github.com/codecflow/optr/issues",
"Repository": "https://github.com/codecflow/optr"
},
"split_keywords": [
"automation",
" desktop",
" operators",
" robotics",
" sdk",
" simulation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "291b61421b3cedd78492c67f37829a8667168487f46e43f53f9a6a35c296b117",
"md5": "3f546783a539c5f322ed2d6b5aca34f4",
"sha256": "26fb647a89123d8e82f5acacf57188608994089a50fb5a20febc40eeb6738fd1"
},
"downloads": -1,
"filename": "optr-0.0.0a10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3f546783a539c5f322ed2d6b5aca34f4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 127239,
"upload_time": "2025-09-06T15:29:37",
"upload_time_iso_8601": "2025-09-06T15:29:37.186581Z",
"url": "https://files.pythonhosted.org/packages/29/1b/61421b3cedd78492c67f37829a8667168487f46e43f53f9a6a35c296b117/optr-0.0.0a10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a0ad01bb9c990d44377418f9ebbc77a567d4e6642689202fdcda86dabaf27956",
"md5": "6f2f6c070c1fa481743ac7dcff3b9cd8",
"sha256": "e1c26e59a8b402724def4899c53e388abe64d13c8b6e565720896368cacd98a0"
},
"downloads": -1,
"filename": "optr-0.0.0a10.tar.gz",
"has_sig": false,
"md5_digest": "6f2f6c070c1fa481743ac7dcff3b9cd8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 87141,
"upload_time": "2025-09-06T15:29:38",
"upload_time_iso_8601": "2025-09-06T15:29:38.637467Z",
"url": "https://files.pythonhosted.org/packages/a0/ad/01bb9c990d44377418f9ebbc77a567d4e6642689202fdcda86dabaf27956/optr-0.0.0a10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-06 15:29:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "codecflow",
"github_project": "optr",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "optr"
}