# orchestr8

---

<p align="center">
    <a href="https://img.shields.io/github/v/release/synacktraa/orchestr8">
        <img src="https://img.shields.io/github/v/release/synacktraa/orchestr8" alt="orchestr8 version">
    </a>
    <a href="https://github.com/synacktraa/orchestr8/actions/workflows/main.yml">
        <img src="https://github.com/synacktraa/orchestr8/actions/workflows/main.yml/badge.svg" alt="orchestr8 CI status">
    </a>
    <a href="https://codecov.io/gh/synacktraa/orchestr8">
        <img src="https://codecov.io/gh/synacktraa/orchestr8/branch/main/graph/badge.svg" alt="orchestr8 codecov">
    </a>
    <a href="https://img.shields.io/github/license/synacktraa/orchestr8">
        <img src="https://img.shields.io/github/license/synacktraa/orchestr8" alt="orchestr8 license">
    </a>
</p>

Orchestr8 is a versatile collection of independent components crafted to simplify task automation, particularly for AI workflows.

It offers a suite of simple, self-documenting components, providing functionalities like code/command execution across host and isolated environments, version control integration, authentication management and schema/definition generation & input validation from types. Each component is independent and incrementally adoptable, so you can use them on their own or in combination with any other library.

These components can also be utilised in AI agent workflows for file system tracking, seamless third-party service authentication, function-calling automation, and code/command/function-call execution in host or isolated environments.

Orchestr8 is open source, free to use, and made with 🧡 by [synacktra](https://github.com/synacktraa).

Documentation is available at [synacktra.is-a.dev/orchestr8](https://synacktra.is-a.dev/orchestr8).

## Installation

```bash
pip install -U orchestr8
```

For more on optional dependencies, refer the [installation guide](https://synacktra.is-a.dev/orchestr8/installation).

## Cookbooks

Collection of cookbooks showcasing the power of orchestr8 library in Language Model workflows.

- [Running LLM-generated code](https://synacktra.is-a.dev/orchestr8/cookbooks/running-llm-generated-code/): Executing LLM-generated code in a controlled, isolated virtual environments.
- [Function-Calling automation](https://synacktra.is-a.dev/orchestr8/cookbooks/function-calling-automation/): Automated approach to working with function-calling workflows.
- [Version Control & Function-Calling](https://synacktra.is-a.dev/orchestr8/cookbooks/version-control-and-function-calling/): Safe and controlled file system interactions through function-calling.
- [Authentication & Function-Calling](https://synacktra.is-a.dev/orchestr8/cookbooks/authentication-and-function-calling/): OAuth Flow and connecting with APIs through function-calling.

## Tutorials

- [Execution Runtime](https://synacktra.is-a.dev/orchestr8/tutorial/execution-runtime/): Flexibly run projects and scripts across host and isolated environments
- [Directory Tracker](https://synacktra.is-a.dev/orchestr8/tutorial/directory-tracker/): Automate version control and file system change monitoring
- [OAuth Flow](https://synacktra.is-a.dev/orchestr8/tutorial/oauth-flow/): Simplify third-party service authentication processes
- [Adapter](https://synacktra.is-a.dev/orchestr8/tutorial/adapter/): Generate code definition, schema in both standard and function-calling formats and validate inputs from different types
- [Sandbox Client](https://synacktra.is-a.dev/orchestr8/tutorial/sandbox-client/): Pull/build images, run containers and copy files from host to container.
- [Shell](https://synacktra.is-a.dev/orchestr8/tutorial/shell/): Execute commands across host machines and containers

---

> Most of the components are inspired by the [GoEX arXiv paper](https://arxiv.org/pdf/2404.06921), where the authors discuss "post-facto validation"—verifying the correctness of a proposed action after seeing the output—as significantly more straightforward compared to the "pre-facto validation" setting.

## 🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/synacktraa/orchestr8/issues).
