Metadata-Version: 2.4
Name: osmosis-ai
Version: 0.3.0rc3
Summary: A Python SDK and CLI for building agent rollouts and managing LLM post-training workflows on Osmosis.
Author-email: Osmosis AI <jake@osmosis.ai>
License-Expression: MIT
Project-URL: Homepage, https://github.com/Osmosis-AI/osmosis-sdk-python
Project-URL: Issues, https://github.com/Osmosis-AI/osmosis-sdk-python/issues
Project-URL: Changelog, https://github.com/Osmosis-AI/osmosis-sdk-python/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dotenv<2.0.0,>=1.2.2
Requires-Dist: requests<3.0.0,>=2.33.0
Requires-Dist: httpx<1.0.0,>=0.25.0
Requires-Dist: pydantic<3.0.0,>=2.0.0
Requires-Dist: keyring>=25.0.0
Requires-Dist: cryptography>=48.0.1
Requires-Dist: questionary<3.0.0,>=2.1.0
Requires-Dist: prompt-toolkit<4.0.0,>=3.0.0
Requires-Dist: packaging>=24.0
Requires-Dist: typer<0.28,>=0.27
Requires-Dist: rich>=14.2.0
Provides-Extra: server
Requires-Dist: fastapi<1.0.0,>=0.100.0; extra == "server"
Requires-Dist: uvicorn<1.0.0,>=0.23.0; extra == "server"
Requires-Dist: click>=8.3.3; extra == "server"
Provides-Extra: strands
Requires-Dist: strands-agents[litellm]<2.0.0,>=1.29.0; extra == "strands"
Requires-Dist: litellm<2.0.0,>=1.91.1; extra == "strands"
Requires-Dist: orjson<4.0,>=3.11.6; extra == "strands"
Requires-Dist: aiohttp>=3.14.1; extra == "strands"
Requires-Dist: mcp<2.0.0,>=1.28.1; extra == "strands"
Requires-Dist: click>=8.3.3; extra == "strands"
Provides-Extra: openai-agents
Requires-Dist: openai-agents[litellm]<0.19,>=0.18.1; extra == "openai-agents"
Requires-Dist: litellm<2.0.0,>=1.91.1; extra == "openai-agents"
Requires-Dist: orjson<4.0,>=3.11.6; extra == "openai-agents"
Requires-Dist: aiohttp>=3.14.1; extra == "openai-agents"
Requires-Dist: mcp<2.0.0,>=1.28.1; extra == "openai-agents"
Requires-Dist: click>=8.3.3; extra == "openai-agents"
Provides-Extra: harbor
Requires-Dist: harbor<0.21,>=0.20.0; extra == "harbor"
Requires-Dist: dockerfile-parse<3.0.0,>=2.0.1; extra == "harbor"
Requires-Dist: toml<1.0.0,>=0.10.2; extra == "harbor"
Requires-Dist: platformdirs>=4.0; extra == "harbor"
Requires-Dist: litellm<2.0.0,>=1.91.1; extra == "harbor"
Requires-Dist: orjson<4.0,>=3.11.6; extra == "harbor"
Requires-Dist: aiohttp>=3.14.1; extra == "harbor"
Requires-Dist: click>=8.3.3; extra == "harbor"
Provides-Extra: rubric
Requires-Dist: litellm<2.0.0,>=1.91.1; extra == "rubric"
Requires-Dist: orjson<4.0,>=3.11.6; extra == "rubric"
Requires-Dist: tqdm<5.0.0,>=4.0.0; extra == "rubric"
Requires-Dist: aiohttp>=3.14.1; extra == "rubric"
Requires-Dist: click>=8.3.3; extra == "rubric"
Provides-Extra: parquet
Requires-Dist: pyarrow>=23.0.1; extra == "parquet"
Provides-Extra: full
Requires-Dist: osmosis-ai[harbor,openai-agents,parquet,rubric,server,strands]; extra == "full"
Dynamic: license-file

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Osmosis-AI/osmosis-sdk-python/main/.github/osmosis-logo-dark.svg">
    <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/Osmosis-AI/osmosis-sdk-python/main/.github/osmosis-logo-light.svg">
    <img alt="Osmosis" src="https://raw.githubusercontent.com/Osmosis-AI/osmosis-sdk-python/main/.github/osmosis-logo-light.svg" width="218">
  </picture>
</p>

<p align="center">
  <a href="https://pypi.org/project/osmosis-ai/"><img alt="Platform" src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS-blue"></a>
  <a href="https://pypi.org/project/osmosis-ai/"><img alt="PyPI" src="https://img.shields.io/pypi/v/osmosis-ai?color=yellow"></a>
  <a href="https://pypi.org/project/osmosis-ai/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/osmosis-ai"></a>
  <a href="https://codecov.io/gh/Osmosis-AI/osmosis-sdk-python"><img alt="Codecov" src="https://codecov.io/gh/Osmosis-AI/osmosis-sdk-python/branch/main/graph/badge.svg"></a>
  <a href="https://opensource.org/licenses/MIT"><img alt="License" src="https://img.shields.io/badge/License-MIT-orange.svg"></a>
  <a href="https://docs.osmosis.ai"><img alt="Docs" src="https://img.shields.io/badge/docs-docs.osmosis.ai-green"></a>
</p>

# osmosis-ai

> ⚠️ **Warning**: osmosis-ai is still in active development. APIs may change between versions.

Python SDK and CLI for [Osmosis AI](https://platform.osmosis.ai), a platform for training LLMs with reinforcement learning. Implement an **AgentWorkflow** and a concrete **Grader** in Python, then use the CLI to submit evaluation and training runs from an Osmosis workspace directory.

## Installation

Requires **Python 3.12+**.

```bash
pip install osmosis-ai                     # CLI + framework-neutral rollout core
pip install "osmosis-ai[server]"            # + generic FastAPI rollout server
pip install "osmosis-ai[strands]"           # + Strands integration
pip install "osmosis-ai[openai-agents]"     # + OpenAI Agents integration
pip install "osmosis-ai[harbor]"            # + Harbor backend (uses an externally provided SkyPilot runtime)
pip install "osmosis-ai[rubric]"            # + LLM-as-judge rubric evaluation
pip install "osmosis-ai[parquet]"           # + Parquet dataset support
pip install "osmosis-ai[full]"              # every optional feature
# or with uv:  uv add osmosis-ai
```

There is one distribution, `osmosis-ai`. The `harbor` extra installs plain Harbor only: Daytona is retired, and Harbor's `skypilot` extra must not be installed because the rollout runtime provides SkyPilot. See [Installation](https://docs.osmosis.ai/cli/installation) for product setup and [CONTRIBUTING.md](CONTRIBUTING.md) for development setup.

## Documentation

Guides, quickstart, and the full CLI reference live at **[docs.osmosis.ai](https://docs.osmosis.ai)**.

- [Quickstart](https://docs.osmosis.ai/platform/quickstart) — run the multiply example end to end, from onboarding to evaluation run to training run
- [CLI command reference](https://docs.osmosis.ai/cli/command-reference) — every `osmosis` command and flag, plus the `--json` / `--plain` output contract for AI agents and CI/CD
- [Workspace setup](https://docs.osmosis.ai/cli/workspace/overview) — repository layout, config files, and Git Sync
- [Rollouts](https://docs.osmosis.ai/cli/rollout/overview) — AgentWorkflow, Grader, integrations, and execution backends
- [Releases](https://github.com/Osmosis-AI/osmosis-sdk-python/releases) — version history and breaking changes between releases

Building on or contributing to the SDK itself? See the code-anchored developer docs in [`docs/`](docs/) (start with [`docs/architecture.md`](docs/architecture.md)) alongside [CONTRIBUTING.md](CONTRIBUTING.md).

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, linting, and PR guidelines.

## License

MIT License - see [LICENSE](LICENSE) file for details.
