Metadata-Version: 2.4
Name: orcheo
Version: 0.10.0
Summary: Add your description here
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: aiosqlite>=0.21.0
Requires-Dist: croniter>=2.0.0
Requires-Dist: cryptography>=43.0.1
Requires-Dist: dynaconf>=3.2.4
Requires-Dist: fastapi>=0.104.0
Requires-Dist: fastmcp>=2.10.5
Requires-Dist: feedparser>=6.0.11
Requires-Dist: langchain-community>=0.0.10
Requires-Dist: langchain-google-genai>=3.0.0
Requires-Dist: langchain-mcp-adapters>=0.1.12
Requires-Dist: langchain-openai>=0.0.5
Requires-Dist: langchain>=1.0.3
Requires-Dist: langgraph-checkpoint-postgres>=3.0.0
Requires-Dist: langgraph-checkpoint-sqlite>=3.0.0
Requires-Dist: langgraph>=1.0.2
Requires-Dist: mcp[cli]>=1.12.0
Requires-Dist: openai-chatkit<2,>=1.0.2
Requires-Dist: openai>=1.0.0
Requires-Dist: py-mini-racer>=0.6.0
Requires-Dist: pydantic>=2.4.2
Requires-Dist: pymongo>=4.13.2
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-telegram-bot>=22.0
Requires-Dist: restrictedpython>=7.2
Requires-Dist: selenium>=4.32.0
Requires-Dist: uvicorn>=0.24.0
Requires-Dist: websockets>=12.0
Description-Content-Type: text/markdown

# Orcheo

[![CI](https://github.com/ShaojieJiang/orcheo/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/ShaojieJiang/orcheo/actions/workflows/ci.yml?query=branch%3Amain)
[![Coverage](https://coverage-badge.samuelcolvin.workers.dev/ShaojieJiang/orcheo.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/ShaojieJiang/orcheo)
[![PyPI - Core](https://img.shields.io/pypi/v/orcheo.svg?label=core)](https://pypi.org/project/orcheo/)
[![PyPI - Backend](https://img.shields.io/pypi/v/orcheo-backend.svg?label=backend)](https://pypi.org/project/orcheo-backend/)
[![PyPI - SDK](https://img.shields.io/pypi/v/orcheo-sdk.svg?label=sdk)](https://pypi.org/project/orcheo-sdk/)

Orcheo is a tool for creating and running workflows.

## Repository layout

- `src/orcheo/` – core orchestration engine and FastAPI implementation
- `apps/backend/` – deployment wrapper exposing the FastAPI ASGI app
- `packages/sdk/` – lightweight Python SDK for composing workflow requests
- `apps/canvas/` – React + Vite scaffold for the visual workflow designer

## Quick start

The project ships with everything needed to spin up the FastAPI runtime on
SQLite for local development.

1. **Install dependencies**

   ```bash
   uv sync --all-groups
   ```

2. **Seed environment variables**

   ```bash
   uv run orcheo-seed-env
   ```

   Pass `-- --force` to overwrite an existing `.env` file.

3. **Run the API server**

   ```bash
   uv run orcheo-dev-server
   ```

4. **Verify the setup**

   ```bash
   uv run orcheo-test
   ```

Opening the repository inside VS Code automatically offers to start the included
dev container with uv and Node.js preinstalled. The new quickstart flows in
`examples/quickstart/` demonstrate the visual designer and SDK user journeys,
and `examples/ingest_langgraph.py` shows how to push a Python LangGraph script
directly to the backend importer, execute it, and stream live updates.

See [`docs/deployment.md`](docs/deployment.md) for Docker Compose and managed
PostgreSQL deployment recipes.

## CLI

Orcheo ships with a LangGraph-friendly CLI for node discovery, workflow
inspection, credential management, and reference code generation. Install the
workspace dependencies and invoke the CLI via uv:

```bash
uv run orcheo --help
```

Example commands:

- `uv run orcheo node list` – enumerate registered nodes and their metadata
- `uv run orcheo workflow show <workflow-id>` – inspect workflows, graph
  versions, and recent runs
- `uv run orcheo credential create <name> --provider <provider> --secret <value>` –
  manage vault credentials
- `uv run orcheo code scaffold <workflow-id>` – generate Python snippets that
  trigger workflows via the SDK

Pass `--offline` to reuse cached metadata when disconnected. See
[`docs/cli_tool_design.md`](docs/cli_tool_design.md) for roadmap details and
future MCP server integration plans.

## Frontend experience plan

The path to a production-quality canvas is captured in
[`docs/frontend_plan.md`](docs/frontend_plan.md), outlining research, design
system development, architectural refactors, and QA milestones for the React
application. Start there when kicking off frontend workstreams so design and
engineering stay aligned.

## Workflow repository configuration

The FastAPI backend now supports pluggable workflow repositories so local
development can persist state without depending on Postgres. By default the app
uses a SQLite database located at `~/.orcheo/workflows.sqlite`. Adjust the
following environment variables to switch behaviour:

- `ORCHEO_REPOSITORY_BACKEND`: accepts `sqlite` (default) or `inmemory` for
  ephemeral testing.
- `ORCHEO_REPOSITORY_SQLITE_PATH`: override the SQLite file path when using the
  SQLite backend.

Refer to `.env.example` for sample values and to `docs/deployment.md` for
deployment-specific guidance.

## Releasing packages

Follow [`docs/releasing.md`](docs/releasing.md) for the step-by-step guide to
version, tag, and publish the `orcheo`, `orcheo-backend`, and `orcheo-sdk`
packages independently via the automated CI workflows.
