Metadata-Version: 2.1
Name: os-copilot
Version: 0.1.0
Summary: An self-improving embodied conversational agents seamlessly integrated into the operating system to automate our daily tasks.
Home-page: https://github.com/OS-Copilot/OS-Copilot
Author: Zhiyong Wu and Chengcheng Han and Zichen Ding and Zhenmin Weng and Zhoumianze Liu and Shunyu Yao and Tao Yu and Lingpeng Kong
Author-email: wuzhiyong@pjlab.org.cn, hccngu@163.com
License: MIT
Keywords: AI,LLMs,Large Language Models,Agent,OS,Operating System
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp ==3.9.1
Requires-Dist: aiosignal ==1.3.1
Requires-Dist: alabaster ==0.7.16
Requires-Dist: annotated-types ==0.6.0
Requires-Dist: anyio ==3.7.1
Requires-Dist: asgiref ==3.7.2
Requires-Dist: async-timeout ==4.0.3
Requires-Dist: attrs ==23.1.0
Requires-Dist: Babel ==2.14.0
Requires-Dist: backoff ==2.2.1
Requires-Dist: bcrypt ==4.1.2
Requires-Dist: beautifulsoup4 ==4.12.3
Requires-Dist: bs4 ==0.0.2
Requires-Dist: cachetools ==5.3.2
Requires-Dist: certifi ==2023.11.17
Requires-Dist: cffi ==1.16.0
Requires-Dist: charset-normalizer ==3.3.2
Requires-Dist: chroma-hnswlib ==0.7.3
Requires-Dist: chromadb ==0.4.20
Requires-Dist: click ==8.1.7
Requires-Dist: coloredlogs ==15.0.1
Requires-Dist: contourpy ==1.2.0
Requires-Dist: cryptography ==42.0.5
Requires-Dist: cycler ==0.12.1
Requires-Dist: dataclasses-json ==0.6.3
Requires-Dist: datasets ==2.15.0
Requires-Dist: Deprecated ==1.2.14
Requires-Dist: dill ==0.3.7
Requires-Dist: distro ==1.8.0
Requires-Dist: document ==1.0
Requires-Dist: docutils ==0.20.1
Requires-Dist: et-xmlfile ==1.1.0
Requires-Dist: exceptiongroup ==1.2.0
Requires-Dist: fastapi ==0.105.0
Requires-Dist: filelock ==3.13.1
Requires-Dist: flatbuffers ==23.5.26
Requires-Dist: fonttools ==4.47.2
Requires-Dist: frozenlist ==1.4.0
Requires-Dist: fsspec ==2023.10.0
Requires-Dist: google-auth ==2.25.2
Requires-Dist: googleapis-common-protos ==1.62.0
Requires-Dist: greenlet ==3.0.2
Requires-Dist: grpcio ==1.60.0
Requires-Dist: h11 ==0.14.0
Requires-Dist: httpcore ==1.0.2
Requires-Dist: httptools ==0.6.1
Requires-Dist: httpx ==0.25.2
Requires-Dist: huggingface-hub ==0.19.4
Requires-Dist: humanfriendly ==10.0
Requires-Dist: idna ==3.6
Requires-Dist: imagesize ==1.4.1
Requires-Dist: importlib-metadata ==6.11.0
Requires-Dist: importlib-resources ==6.1.1
Requires-Dist: jaraco.context ==4.3.0
Requires-Dist: Jinja2 ==3.1.3
Requires-Dist: jsonpatch ==1.33
Requires-Dist: jsonpointer ==2.4
Requires-Dist: kiwisolver ==1.4.5
Requires-Dist: kubernetes ==28.1.0
Requires-Dist: langchain ==0.0.349
Requires-Dist: langchain-community ==0.0.1
Requires-Dist: langchain-core ==0.0.13
Requires-Dist: langsmith ==0.0.69
Requires-Dist: lxml ==4.9.4
Requires-Dist: markdown-it-py ==3.0.0
Requires-Dist: MarkupSafe ==2.1.5
Requires-Dist: marshmallow ==3.20.1
Requires-Dist: matplotlib ==3.8.2
Requires-Dist: mdit-py-plugins ==0.4.0
Requires-Dist: mdurl ==0.1.2
Requires-Dist: mmh3 ==4.0.1
Requires-Dist: monotonic ==1.6
Requires-Dist: more-itertools ==10.2.0
Requires-Dist: mpmath ==1.3.0
Requires-Dist: multidict ==6.0.4
Requires-Dist: multiprocess ==0.70.15
Requires-Dist: mypy-extensions ==1.0.0
Requires-Dist: myst-parser ==2.0.0
Requires-Dist: numpy ==1.26.2
Requires-Dist: oauthlib ==3.2.2
Requires-Dist: onnxruntime ==1.16.3
Requires-Dist: openai ==1.3.7
Requires-Dist: openpyxl ==3.1.2
Requires-Dist: opentelemetry-api ==1.21.0
Requires-Dist: opentelemetry-exporter-otlp-proto-common ==1.21.0
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc ==1.21.0
Requires-Dist: opentelemetry-instrumentation ==0.42b0
Requires-Dist: opentelemetry-instrumentation-asgi ==0.42b0
Requires-Dist: opentelemetry-instrumentation-fastapi ==0.42b0
Requires-Dist: opentelemetry-proto ==1.21.0
Requires-Dist: opentelemetry-sdk ==1.21.0
Requires-Dist: opentelemetry-semantic-conventions ==0.42b0
Requires-Dist: opentelemetry-util-http ==0.42b0
Requires-Dist: overrides ==7.4.0
Requires-Dist: packaging ==23.2
Requires-Dist: pandas ==2.1.4
Requires-Dist: pdfminer.six ==20221105
Requires-Dist: pdfplumber ==0.10.4
Requires-Dist: pillow ==10.2.0
Requires-Dist: posthog ==3.1.0
Requires-Dist: protobuf ==4.25.1
Requires-Dist: pulsar-client ==3.3.0
Requires-Dist: pyarrow ==14.0.2
Requires-Dist: pyarrow-hotfix ==0.6
Requires-Dist: pyasn1 ==0.5.1
Requires-Dist: pyasn1-modules ==0.3.0
Requires-Dist: pycparser ==2.21
Requires-Dist: pydantic ==2.5.2
Requires-Dist: pydantic-core ==2.14.5
Requires-Dist: Pygments ==2.17.2
Requires-Dist: pyparsing ==3.1.1
Requires-Dist: pypdfium2 ==4.27.0
Requires-Dist: PyPika ==0.48.9
Requires-Dist: pysqlite3 ==0.5.2
Requires-Dist: python-dateutil ==2.8.2
Requires-Dist: python-docx ==1.1.0
Requires-Dist: python-dotenv ==1.0.0
Requires-Dist: python-pptx ==0.6.23
Requires-Dist: pytz ==2023.3.post1
Requires-Dist: PyYAML ==6.0.1
Requires-Dist: regex ==2023.10.3
Requires-Dist: requests ==2.31.0
Requires-Dist: requests-oauthlib ==1.3.1
Requires-Dist: rsa ==4.9
Requires-Dist: seaborn ==0.13.2
Requires-Dist: six ==1.16.0
Requires-Dist: sniffio ==1.3.0
Requires-Dist: snowballstemmer ==2.2.0
Requires-Dist: soupsieve ==2.5
Requires-Dist: Sphinx ==7.2.6
Requires-Dist: sphinx-rtd-theme ==2.0.0
Requires-Dist: sphinxcontrib-applehelp ==1.0.8
Requires-Dist: sphinxcontrib-devhelp ==1.0.6
Requires-Dist: sphinxcontrib-htmlhelp ==2.0.5
Requires-Dist: sphinxcontrib-jquery ==4.1
Requires-Dist: sphinxcontrib-jsmath ==1.0.1
Requires-Dist: sphinxcontrib-qthelp ==1.0.7
Requires-Dist: sphinxcontrib-serializinghtml ==1.1.10
Requires-Dist: SQLAlchemy ==2.0.23
Requires-Dist: starlette ==0.27.0
Requires-Dist: sympy ==1.12
Requires-Dist: tenacity ==8.2.3
Requires-Dist: tiktoken ==0.5.2
Requires-Dist: tokenizers ==0.15.0
Requires-Dist: tqdm ==4.66.1
Requires-Dist: typer ==0.9.0
Requires-Dist: typing-inspect ==0.9.0
Requires-Dist: typing-extensions ==4.8.0
Requires-Dist: tzdata ==2023.3
Requires-Dist: urllib3 ==1.26.18
Requires-Dist: uvicorn ==0.24.0.post1
Requires-Dist: uvloop ==0.19.0
Requires-Dist: watchfiles ==0.21.0
Requires-Dist: websocket-client ==1.7.0
Requires-Dist: websockets ==12.0
Requires-Dist: wolframalpha ==5.0.0
Requires-Dist: wrapt ==1.16.0
Requires-Dist: XlsxWriter ==3.1.9
Requires-Dist: xmltodict ==0.13.0
Requires-Dist: xxhash ==3.4.1
Requires-Dist: yarl ==1.9.4
Requires-Dist: zipp ==3.17.0

# OS-Copilot: Towards Generalist Computer Agents with Self-Improvement

<div align="center">

[[Website]](https://os-copilot.github.io/)
[[Arxiv]](https://arxiv.org/abs/2402.07456)
[[PDF]](https://arxiv.org/pdf/2402.07456.pdf)
[[Documentation]]()
<!-- [[Tweet]](https://twitter.com/DrJimFan/status/1662115266933972993?s=20) -->

[![Static Badge](https://img.shields.io/badge/MIT-License-green)](https://github.com/OS-Copilot/OS-Copilot/blob/main/LICENSE)
![Static Badge](https://img.shields.io/badge/python-3.10-blue)
[![Static Badge](https://img.shields.io/badge/FRIDAY-Frontend-yellow)](https://github.com/OS-Copilot/FRIDAY-front)



<p align="center">
  <img src='pic/demo.png' width="100%">
</p>

</div>

## 📖 Overview

- **OS-Copilot** is a pioneering conceptual framework for building generalist computer agents on Linux and MacOS, which provides a unified interface for app interactions in the heterogeneous OS ecosystem.
  
<p align="center">
  <img src='pic/framework.png' width="75%">
</p>

- Leveraging OS-Copilot, we built **FRIDAY**, a self-improving AI assistant capable of solving general computer tasks.

<p align="center">
  <img src='pic/FRIDAY.png' width="75%">
</p>

## ⚡️ Quickstart

1. **Clone the GitHub Repository:** 

   ```
   git clone https://github.com/OS-Copilot/OS-Copilot.git
   ```

2. **Set Up Python Environment:** Ensure you have a version 3.10 or higher Python environment. You can create and
   activate this environment using the following commands, replacing `oscopilot_env` with your preferred environment
   name:

   ```
   conda create -n oscopilot_env python=3.10 -y
   conda activate oscopilot_env
   ```

3. **Install Dependencies:** Move into the `OS-Copilot` directory and install the necessary dependencies by running:

   ```
   cd OS-Copilot
   pip install -e .
   ```

4. **Set OpenAI API Key:** Configure your OpenAI API key in [.env](.env) and select the model you wish to use.

5. **Running the Script:** Run the quick_start.py script, simply execute the following command in your terminal:
   ```
   python quick_start.py
   ```

\* FRIDAY currently only supports single-round conversation.

## 🛠️ FRIDAY-Gizmos
We maintain an open-source library of toolkits for FRIDAY, which includes tools that can be directly utilized within FRIDAY.
For a detailed list of tools, please see [FRIDAY-Gizmos](https://github.com/OS-Copilot/FRIDAY-Gizmos). The usage methods are as follows:

1. Find the tool you want to use in [FRIDAY-Gizmos](https://github.com/OS-Copilot/FRIDAY-Gizmos) and download its tool code.
2. Add the tool to FRIDAY's toolkit:
```shell
python friday/tool_repository/manager/tool_manager.py --add --tool_name [tool_name] --tool_path [tool_path]
```
3. If you wish to remove a tool, you can run:
```shell
python friday/tool_repository/manager/tool_manager.py --delete --tool_name [tool_name]
```

## 💻 User Interface (UI)

**Enhance Your Experience with Our Intuitive Frontend!** This interface is crafted for effortless control of your agents. For more details, visit [FRIDAY Frontend](https://github.com/OS-Copilot/FRIDAY-front).

## ✨ Deploy API Services

For comprehensive guidelines on deploying API services, please refer to the [OS-Copilot documentation](). 


<!-- ## 👨‍💻‍ Contributors

<a href="">
  <img src="" />
</a>

Made with [contrib.rocks](https://contrib.rocks). -->

## 🛡 Disclaimer

OS-Copilot is provided "as is" without warranty of any kind. Users assume full responsibility for any risks associated with its use, including **potential data loss** or **changes to system settings**. The developers of OS-Copilot are not liable for any damages or losses resulting from its use. Users must ensure their actions comply with applicable laws and regulations.


## 🏫 Community

Join our community to connect with other agent enthusiasts, share your tools and demos, and collaborate on exciting initiatives. You can find us on [Slack](https://join.slack.com/t/slack-ped8294/shared_invite/zt-2cqebow90-soac9UFKGZ2RcUy8PqjZrA).


## 🔎 Citation

```
@misc{wu2024oscopilot,
      title={OS-Copilot: Towards Generalist Computer Agents with Self-Improvement}, 
      author={Zhiyong Wu and Chengcheng Han and Zichen Ding and Zhenmin Weng and Zhoumianze Liu and Shunyu Yao and Tao Yu and Lingpeng Kong},
      year={2024},
      eprint={2402.07456},
      archivePrefix={arXiv},
      primaryClass={cs.AI}
}
```


## 📬 Contact

If you have any inquiries, suggestions, or wish to contact us for any reason, we warmly invite you to email us at wuzhiyong@pjlab.org.cn.
