Add your description here
Project description
Orcheo
Orcheo is a tool for creating and running workflows.
For users
Quick start
The project ships with everything needed to spin up the FastAPI runtime on SQLite for local development.
-
Install dependencies
For development (from source):
uv sync --all-groups
Or install from PyPI:
uv add orcheo orcheo-backend orcheo-sdk
-
Activate the virtual environment (optional but recommended)
source .venv/bin/activate # On macOS/Linux # or .venv\Scripts\activate # On Windows
Once activated, you can run commands without the
uv runprefix. -
Run the API server
orcheo-dev-server
If you enable authentication, configure a bootstrap token first to create your initial service tokens:
# Generate a secure random token python -c "import secrets; print(secrets.token_urlsafe(32))" # Configure bootstrap token and authentication export ORCHEO_AUTH_BOOTSTRAP_SERVICE_TOKEN="your-secure-random-token" export ORCHEO_AUTH_BOOTSTRAP_TOKEN_EXPIRES_AT="2025-05-01T12:00:00Z" # optional expiry export ORCHEO_AUTH_MODE=required # Start the server orcheo-dev-server
Bootstrap tokens are special environment-based service tokens for initial setup only:
- Not stored in the database - read directly from environment
- Full admin access by default (configurable with
ORCHEO_AUTH_BOOTSTRAP_TOKEN_SCOPES) - Optional expiration via
ORCHEO_AUTH_BOOTSTRAP_TOKEN_EXPIRES_AT - Should be removed after creating persistent tokens
After the server starts, use the bootstrap token to create persistent service tokens:
export ORCHEO_SERVICE_TOKEN="your-secure-random-token" # Use bootstrap token orcheo token create --id production-token \ --scope workflows:read \ --scope workflows:write \ --scope workflows:execute
Then switch to the new persistent token and remove the bootstrap token:
export ORCHEO_SERVICE_TOKEN="<new-token-from-previous-command>" unset ORCHEO_AUTH_BOOTSTRAP_SERVICE_TOKEN
-
Verify the setup
orcheo-test
CLI
Orcheo ships with a LangGraph-friendly CLI for node discovery, workflow inspection, credential management, and reference code generation.
Getting Started
After activating the virtual environment, get started with:
orcheo --help
Shell Auto-Completion
Enable fast shell auto-completion for commands and options:
orcheo --install-completion
This installs completion for your current shell (bash, zsh, fish, or PowerShell). After installation, restart your shell or source your shell configuration file.
Available Commands
| Command | Description |
|---|---|
orcheo node list [--tag <tag>] |
List registered nodes with metadata (name, category, description). Filter by tag. |
orcheo node show <node> |
Display detailed node schema, inputs/outputs, and credential requirements. |
orcheo agent-tool list [--category <category>] |
List available agent tools with metadata. Filter by category. |
orcheo agent-tool show <tool> |
Display detailed tool schema and parameter information. |
orcheo workflow list [--include-archived] |
List workflows with owner, last run, and status. |
orcheo workflow show <workflow> |
Print workflow summary, Mermaid graph, and latest runs. |
orcheo workflow run <workflow> [--inputs <json>] |
Trigger a workflow execution and stream status to the console. |
orcheo workflow upload <file> [--name <name>] |
Upload a workflow from Python or JSON file. |
orcheo workflow download <workflow> [-o <file>] |
Download workflow definition as Python or JSON. |
orcheo workflow delete <workflow> [--force] |
Delete a workflow with confirmation safeguards. |
orcheo credential list [--workflow-id <id>] |
List credentials with scopes, expiry, and health status. |
orcheo credential create <name> --provider <provider> |
Create a new credential with guided prompts. |
orcheo credential delete <credential> [--force] |
Revoke a credential with confirmation safeguards. |
orcheo token create [--id <id>] [--scope <scope>] |
Create a service token for CLI/API authentication. |
orcheo token list |
List all service tokens with their scopes and status. |
orcheo token show <token-id> |
Show detailed information for a specific service token. |
orcheo token rotate <token-id> [--overlap <seconds>] |
Rotate a service token with grace period overlap. |
orcheo token revoke <token-id> [--reason <reason>] |
Immediately invalidate a service token. |
orcheo code template [-o <file>] [--name <name>] |
Generate a minimal Python LangGraph workflow template file. |
orcheo code scaffold <workflow> |
Generate Python SDK code snippets to invoke an existing workflow. |
Offline Mode
Pass --offline to reuse cached metadata when disconnected:
orcheo node list --offline
orcheo workflow show <workflow-id> --offline
Authentication
Orcheo supports flexible authentication to protect your workflows and API endpoints.
Authentication Modes
Configure via the ORCHEO_AUTH_MODE environment variable:
- disabled: No authentication (development only)
- optional: Validates tokens when provided but not required
- required: All requests must include valid credentials (recommended for production)
export ORCHEO_AUTH_MODE=required
Service Tokens
Service tokens are ideal for CLI usage, CI/CD pipelines, and automated integrations.
Create a token:
# Basic token
orcheo token create
# Token with scopes and workspace access
orcheo token create --id my-ci-token \
--scope workflows:read \
--scope workflows:execute \
--workspace ws-production
Use with CLI:
export ORCHEO_SERVICE_TOKEN="your-token-secret-here"
orcheo workflow list
Use with Python SDK:
from orcheo_sdk import OrcheoClient
client = OrcheoClient(
api_url="https://orcheo.example.com",
token=os.environ["ORCHEO_SERVICE_TOKEN"]
)
Rotate tokens:
orcheo token rotate my-ci-token --overlap 300
JWT Authentication
For production deployments with Identity Providers (Auth0, Okta, Keycloak):
# Symmetric key (HS256)
export ORCHEO_AUTH_JWT_SECRET="your-secure-secret-key"
# Asymmetric key (RS256) with JWKS
export ORCHEO_AUTH_JWKS_URL="https://your-idp.com/.well-known/jwks.json"
export ORCHEO_AUTH_AUDIENCE="orcheo-production"
export ORCHEO_AUTH_ISSUER="https://your-idp.com/"
For detailed configuration, security best practices, and troubleshooting, see docs/authentication_guide.md.
MCP (Model Context Protocol)
Orcheo SDK includes an MCP server that allows AI assistants like Claude to interact with your workflows.
Claude Desktop
To configure it in Claude Desktop, add the following to your claude_desktop_config.json:
"Orcheo": {
"command": "/path/to/uvx",
"args": ["--from", "orcheo-sdk@latest", "orcheo-mcp"],
"env": {
"ORCHEO_API_URL": "http://localhost:8000"
}
}
Note: This configuration requires the Orcheo development backend to be running locally (see Run the API server).
Claude CLI
To configure the MCP server in Claude CLI:
claude mcp add-json Orcheo --scope user '{
"command": "/path/to/uvx",
"args": [
"--from",
"orcheo-sdk@latest",
"orcheo-mcp"
],
"env": {
"ORCHEO_API_URL": "http://localhost:8000"
}
}'
Note: Replace /path/to/uvx with your actual uvx binary path (find it with which uvx).
Codex CLI
To configure the MCP server in Codex CLI:
codex add server Orcheo \
/path/to/uvx \
--from orcheo-sdk@latest orcheo-mcp \
--env ORCHEO_API_URL=http://localhost:8000
Note: Replace /path/to/uvx with your actual uvx binary path (find it with which uvx).
For developers
Repository layout
src/orcheo/– core orchestration engine and FastAPI implementationapps/backend/– deployment wrapper exposing the FastAPI ASGI apppackages/sdk/– lightweight Python SDK for composing workflow requestsapps/canvas/– React + Vite scaffold for the visual workflow designer
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 for Docker Compose and managed
PostgreSQL deployment recipes.
Seed environment variables
To set up your development environment:
orcheo-seed-env
Pass --force to overwrite an existing .env file.
Configuration
The CLI reads configuration from:
- Environment variables:
ORCHEO_API_URL,ORCHEO_SERVICE_TOKEN - Config file:
~/.config/orcheo/cli.toml(profiles for multiple environments) - Command flags:
--api-url,--service-token,--profile
See docs/cli_tool_design.md for detailed design,
roadmap, and future MCP server integration plans.
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: acceptssqlite(default) orinmemoryfor 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orcheo-0.10.1.tar.gz.
File metadata
- Download URL: orcheo-0.10.1.tar.gz
- Upload date:
- Size: 937.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8c90bbfae8c89e9f730c1ab96abe16c57e7f8dc084eb7a9801b6885417dd2b
|
|
| MD5 |
ae61b9854edf65fb97ae0d4b16387819
|
|
| BLAKE2b-256 |
6621d3d33adbfb55af26093453d27e82b22825557750df959120ce7f7aaf80c1
|
Provenance
The following attestation bundles were made for orcheo-0.10.1.tar.gz:
Publisher:
ci.yml on ShaojieJiang/orcheo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcheo-0.10.1.tar.gz -
Subject digest:
ba8c90bbfae8c89e9f730c1ab96abe16c57e7f8dc084eb7a9801b6885417dd2b - Sigstore transparency entry: 665656427
- Sigstore integration time:
-
Permalink:
ShaojieJiang/orcheo@7b27080441d0226cc5968e9e7cf35b900be2f75f -
Branch / Tag:
refs/tags/core-v0.10.1 - Owner: https://github.com/ShaojieJiang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@7b27080441d0226cc5968e9e7cf35b900be2f75f -
Trigger Event:
push
-
Statement type:
File details
Details for the file orcheo-0.10.1-py3-none-any.whl.
File metadata
- Download URL: orcheo-0.10.1-py3-none-any.whl
- Upload date:
- Size: 85.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da001f0f66b7db6cd3c4beb93d8a33318c8a3d10e5675977412fda5cec26f9a5
|
|
| MD5 |
b24998332e4f971160af9d55646a9515
|
|
| BLAKE2b-256 |
951db847af8a08b1cad484f1cea50f5c33f4e12c481fb210c8c28d6a369616c6
|
Provenance
The following attestation bundles were made for orcheo-0.10.1-py3-none-any.whl:
Publisher:
ci.yml on ShaojieJiang/orcheo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcheo-0.10.1-py3-none-any.whl -
Subject digest:
da001f0f66b7db6cd3c4beb93d8a33318c8a3d10e5675977412fda5cec26f9a5 - Sigstore transparency entry: 665656429
- Sigstore integration time:
-
Permalink:
ShaojieJiang/orcheo@7b27080441d0226cc5968e9e7cf35b900be2f75f -
Branch / Tag:
refs/tags/core-v0.10.1 - Owner: https://github.com/ShaojieJiang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@7b27080441d0226cc5968e9e7cf35b900be2f75f -
Trigger Event:
push
-
Statement type: