# Workstreams

Hand a large project to an orchestrator that splits it across a team of agents, keeps them coordinated, and brings the work back as pull requests.

<Note>
  Workstreams is in beta. It's currently available on Pro, Plus, Max, and Teams plans, not yet on Business or Enterprise, and we're rolling it out further.
</Note>

![A workstream in the Factory App: the orchestrator chat on the left and the Agents tab on the right, with agents under Waiting on you, Working, and Idle](/docs-assets/images/workstreams/workstream-overview.webp)

A workstream takes on work that would keep a team busy for days or weeks: a framework migration, a feature that spans several services, a backlog of bugs. You describe the goal to an **orchestrator**. It breaks the goal into areas, puts an **agent** on each one, and keeps them coordinated while they work in parallel. The work comes back as pull requests for you to review.

You start and steer workstreams in the Factory App.

## How a workstream is organized

<PropertyList>
  <Property name='Orchestrator'>
    The lead session you talk to. It plans the work, delegates it to agents, keeps them coordinated, and asks you when a decision is yours.
  </Property>
  <Property name='Agents'>
    Droid sessions the orchestrator starts. Each owns one piece of the work, reports back to the orchestrator, and can open pull requests. You can open any agent and talk to it directly.
  </Property>
  <Property name='Machines'>
    Where the orchestrator and agents run: a fresh cloud computer from an environment, a Droid Computer (a managed cloud computer or your own computer connected through Remote Control), or this computer.
  </Property>
  <Property name='Shared folder'>
    Documents the orchestrator and every agent read and write, on every machine they run on, such as plans, notes, findings, and deliverables. You browse it and add files in the **Files** tab.
  </Property>
  <Property name='Pull requests'>
    Pull requests the orchestrator and agents open or work on, with their CI status. You review them in the **PRs** tab.
  </Property>
</PropertyList>

## When to use a workstream

Use a workstream when the work is too big for one session: it spans hours or days, touches several areas that can move in parallel, or needs ongoing coordination. A workstream keeps going as you add work, so you can hand the orchestrator new tasks instead of starting over.

For quick, one-off work, start a regular session. Workstreams use more tokens than a single session, so save them for large work.

If you're choosing between a workstream and [Factory Missions](/missions/overview): Missions plan features and milestones up front and run them from Mission Control. A workstream starts with a conversation, and the orchestrator delegates as the work unfolds.

## How it works

<Steps>
  <Step title="Start a workstream">
    Click **New Workstream** in the sidebar, name it after the goal, and choose the machine the orchestrator runs on.
  </Step>
  <Step title="Tell the orchestrator the goal">
    The orchestrator waits for your first message. Describe what you want, the constraints that matter, and what done looks like.
  </Step>
  <Step title="The orchestrator delegates">
    It starts agents for each area of the work, on the machines you allow, and tells each one what to do and where to put its results.
  </Step>
  <Step title="Agents work and report back">
    Agents report progress, blockers, and finished work to the orchestrator. When an agent needs your input, it shows up under **Waiting on you** in the **Agents** tab.
  </Step>
  <Step title="Review the results">
    Review pull requests in the **PRs** tab and documents in the **Files** tab. Keep giving the orchestrator new work in the same workstream, or [set up an automation](/workstreams/automations) for work that repeats.
  </Step>
</Steps>

## Your configuration carries over

Agents are regular Droid sessions, so they use the same models, [skills](/harness/skills), [MCP servers](/harness/mcp), [hooks](/harness/hooks), and [AGENTS.md](/harness/agents-md) files as any other session on the machine they run on. The orchestrator and agents start with your default autonomy level, capped by your organization's policy.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/workstreams/quickstart">
    Start your first workstream and steer it.
  </Card>
  <Card title="Steer a workstream" icon="diagram-project" href="/workstreams/steer">
    How delegation works and how to follow and steer agents.
  </Card>
  <Card title="Machines" icon="computer" href="/workstreams/machines">
    Choose where the orchestrator and agents run.
  </Card>
  <Card title="Shared folder" icon="folders" href="/workstreams/shared-folder">
    How agents share documents across machines.
  </Card>
  <Card title="Pull requests" icon="code-branch" href="/workstreams/pull-requests">
    Track the PRs agents open.
  </Card>
  <Card title="Settings and usage" icon="gear" href="/workstreams/settings">
    Models, defaults, organization controls, and usage limits.
  </Card>
</CardGroup>
