Skip to content

Repository files navigation

Conductor

A CLI tool for defining and running multi-agent workflows with the GitHub Copilot SDK and Anthropic Claude.

CIPython 3.12+

Why Conductor?

A single LLM prompt can answer a question, but it can't review its own work, research from multiple angles, or pause for human approval. You need multi-agent workflows—but building them means coding custom solutions, managing state, handling failures, and hoping you don't create infinite loops.

Conductor provides the patterns that work: evaluator-optimizer loops for iterative refinement, parallel execution with failure modes, and human-in-the-loop gates. Define them in YAML with built-in safety limits. Version control your workflows like code.

Features

  • YAML-based workflows - Define multi-agent workflows in readable YAML
  • Multiple providers - GitHub Copilot or Anthropic Claude with seamless switching
  • Parallel execution - Run agents concurrently (static groups or dynamic for-each)
  • Script steps - Run shell commands and route on exit code without an AI agent
  • Conditional routing - Route between agents based on output conditions
  • Human-in-the-loop - Pause for human decisions with Rich terminal UI
  • Safety limits - Max iterations and timeout enforcement
  • Web dashboard - Real-time workflow visualization with interactive DAG graph, live streaming, and in-browser human gates
  • Validation - Validate workflows before execution

Installation

Using uv (Recommended)

# Install from GitHub
uv tool install git+https://github.com/microsoft/conductor.git
# Run the CLI
conductor run workflow.yaml
# Or run directly without installing
uvx --from git+https://github.com/microsoft/conductor.git conductor run workflow.yaml
# Install a specific branch, tag, or commit
uv tool install git+https://github.com/microsoft/conductor.git@branch-name
uv tool install git+https://github.com/microsoft/conductor.git@v1.0.0
uv tool install git+https://github.com/microsoft/conductor.git@abc1234

Using pipx

pipx install git+https://github.com/microsoft/conductor.git
conductor run workflow.yaml
# Install a specific branch or tag
pipx install git+https://github.com/microsoft/conductor.git@branch-name

Using pip

pip install git+https://github.com/microsoft/conductor.git
conductor run workflow.yaml
# Install a specific tag or commit
pip install git+https://github.com/microsoft/conductor.git@v1.0.0

Quick Start

1. Create a workflow file

# my-workflow.yamlworkflow:
name: simple-qadescription: A simple question-answering workflowentry_point: answereragents:
- name: answerermodel: gpt-5.2prompt: | Answer the following question: {{ workflow.input.question }}output:
answer:
type: stringroutes:
- to: $endoutput:
answer: "{{ answerer.output.answer }}"

2. Run the workflow

conductor run my-workflow.yaml --input question="What is Python?"

3. View the output

{
"answer": "Python is a high-level, interpreted programming language..."
}

Web Dashboard

Conductor includes a built-in real-time web dashboard that lets you visualize and interact with your workflows as they run. Launch it with --web:

conductor run workflow.yaml --web --input question="What is Python?"

Web Dashboard

Key features:

  • Interactive DAG graph — Zoomable, draggable workflow graph with animated edges showing execution flow and conditional routing
  • Live agent streaming — Watch agent reasoning, tool calls, and outputs stream in real-time as each step executes
  • Three-pane layout — Resizable panels for the graph, agent detail, and a tabbed output pane (Log, Activity, Output)
  • In-browser human gates — Respond to human-in-the-loop decision points directly in the dashboard, no terminal needed
  • Per-node detail — Click any node to see its prompt, metadata (model, tokens, cost), activity stream, and output
  • Background mode — Run with --web-bg to start the dashboard in the background, print the URL, and exit. Use conductor stop to shut it down later.
# Run in background — prints dashboard URL and exits
conductor run workflow.yaml --web-bg --input topic="AI in healthcare"# Stop a background workflow
conductor stop

Providers

Conductor supports multiple AI providers. Choose based on your needs:

FeatureCopilotClaude
PricingSubscription ($10-39/mo)Pay-per-token
Context Window8K-128K tokens200K tokens
Tool Support (MCP)YesPlanned
StreamingYesPlanned
Best ForHeavy usage, toolsLarge context, pay-per-use

Using Claude

workflow:
runtime:
provider: claudedefault_model: claude-sonnet-4.5

Set your API key: export ANTHROPIC_API_KEY=sk-ant-...

See also:Claude Documentation | Provider Comparison | Migration Guide

CLI Reference

conductor run

Execute a workflow from a YAML file.

conductor run <workflow.yaml> [OPTIONS]
OptionDescription
-i, --input NAME=VALUEWorkflow input (repeatable)
-p, --provider PROVIDEROverride provider
--dry-runPreview execution plan
--skip-gatesAuto-select at human gates
--webStart real-time web dashboard
--web-bgRun in background, print dashboard URL, exit
--web-port PORTPort for web dashboard (0 = auto)
-q, --quietSuppress progress output
-s, --silentSuppress all output except errors
-l, --log-file PATHWrite logs to file

conductor validate

Validate a workflow file without executing.

conductor validate <workflow.yaml>

conductor init

Create a new workflow from a template.

conductor init <name> --template <template> --output <path>

conductor templates

List available workflow templates.

conductor templates

Full CLI documentation:docs/cli-reference.md

Examples

See the examples/ directory for complete workflows:

ExampleDescription
simple-qa.yamlBasic single-agent Q&A
for-each-simple.yamlDynamic parallel processing
parallel-research.yamlStatic parallel execution
design-review.yamlHuman gate with loop pattern
script-step.yamlScript step with exit_code routing

More examples and running instructions:examples/README.md

Documentation

DocumentDescription
Workflow SyntaxComplete YAML schema reference
CLI ReferenceFull command-line documentation
Parallel ExecutionStatic parallel groups
Dynamic ParallelFor-each groups and array processing
Claude ProviderClaude setup and configuration
Provider ComparisonCopilot vs Claude decision guide

Development

Prerequisites

  • Python 3.12+
  • uv for dependency management

Setup

git clone https://github.com/microsoft/conductor.git
cd conductor
make dev

Windows

On Windows, use uv directly instead of make:

uv sync --all-extras # instead of make dev
uv run pytest tests/# instead of make test
uv run ruff check .# instead of make lint
uv run ruff format .# instead of make format

Copilot CLI path: Windows subprocess cannot resolve .bat/.ps1 wrappers by name alone. If you see [WinError 2] The system cannot find the file specified when running workflows, set the full path to the Copilot CLI:

# Find your copilot CLIGet-Command copilot*|Format-Table Name, Source
# Set the path (use the .cmd variant from npm)$env:COPILOT_CLI_PATH="C:\Users\<you>\AppData\Roaming\npm\copilot.cmd"

Common Commands

make test# Run tests
make test-cov # Run tests with coverage
make lint # Check linting
make format # Auto-fix and format code
make typecheck # Type check
make check # Run all checks (lint + typecheck)
make validate-examples # Validate all example workflows

Code Style

  • Ruff for linting and formatting
  • ty for type checking
  • Google-style docstrings

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit Contributor License Agreements.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

To submit a pull request, follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and checks (make test && make check)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

License

MIT License - see LICENSE for details.

About

A CLI tool for defining and running multi-agent workflows with the GitHub Copilot SDK and Anthropic Agents SDK.

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages