# Linear

Connect your Linear workspace to Factory and delegate issues to Droid using your organization's remote delegation configuration.

Assign a Linear issue to Factory or mention `@Factory` in an issue comment to have Droid investigate, implement, and test the work. Droid runs on a remote computer and posts progress and results in Linear.

<Info>
  This guide covers the Private Preview remote delegation flow. Contact your Factory account team to request access and confirm that your organization can configure shared execution for Linear.
</Info>

You delegate directly from an issue; you do not need to create a Software Factory automation. The [Remote delegations](/remote-delegations) settings control the shared execution configuration.

A personal [Linear connector](/harness/connectors) gives Droid tools to use inside a session. It does not install the Factory agent in Linear or enable issue delegation.

## Prerequisites

To connect and configure Linear delegation, you need:

- Permission to install and authorize apps in your Linear workspace.
- The **Manager** or **Owner** role in the Factory organization you want to connect.
- Access to **Settings → Remote Delegations**, including Linear app setup.
- Service-account access and an active service account for shared execution.
- An execution template for **Dynamic** compute, or service-account-owned Droid Computers for **Persistent** compute.

Team members who delegate work need a Factory account in the connected organization and access to the Linear issue. Use the same work email in Linear and Factory so Factory can match the person making the request.

## Connect your Linear workspace

<Steps>
  <Step title="Open Linear delegation settings">
    In Factory, open <a href="https://app.factory.ai/settings/remote-delegations">**Settings → Remote Delegations**</a>. Under **Delegation Apps**, find **Linear** and select **Set Up for Org**.

    If Linear is already connected, select **Configure** to open its setup page.
  </Step>
  <Step title="Authorize Factory in Linear">
    Select **Connect** on the Linear setup page. Sign in to Linear and choose the workspace you want to connect.

    Review the requested permissions, including issue and comment access and the ability to assign and mention the Factory agent. Select **Authorize**. Ask a Linear administrator to approve the app if your workspace requires it.
  </Step>
  <Step title="Verify the connection">
    Return to Factory and confirm that Linear is connected. In Linear, open an issue in a team the app can access and check that **Factory** appears in the assignee picker with an **Agent** label.

    Review the app's team access in Linear before delegating work from private or restricted teams. A connected app still needs the execution configuration below before it can use shared compute.
  </Step>
</Steps>

## Configure shared execution

In **Settings → Remote Delegations**, find **Remote Delegation Configs** and select **Edit** on **Apps**.

Follow [Configure delegated sessions](/remote-delegations#configure-delegated-sessions) to review:

| Setting | What to configure |
| --- | --- |
| **General** | Default model, reasoning level, and instructions for delegated work. |
| **Plugins** | Plugins that delegated sessions need. |
| **Identity** | An active service account with the required Git credentials and connectors. |
| **Compute** | **Dynamic** with an execution template, or **Persistent** with computers owned by the service account. |

Eligible organizations receive a default configuration, service account, and execution template. Review those defaults to confirm that the environment can access the repositories and tools your task needs.

Linear issue delegations using the Apps configuration run with its **service-account identity, Git credentials, and connectors**, not the requester's personal connections. This configuration is shared with other delegation apps, so changes can affect more than Linear.

Team members can set a preferred model and reasoning level under **Settings → Session Defaults → Delegations**. When organization policy allows it, the requester's model preference overrides the configuration's model. Choose **Org default** to use the configuration's model and reasoning settings. A personal model preference does not change the execution identity or connector access.

## Delegate an issue

Put the repository, desired outcome, acceptance criteria, and verification steps in the issue description before assigning the work. Include important error messages, reproduction steps, and links.

For example:

> In the storefront repository, investigate the failing checkout test. Fix the cause, add a regression test, run the relevant tests, and open a pull request with a summary and test results.

Droid receives the issue title, description, labels, and comments when the session starts. Keep the issue self-contained rather than relying on context from another conversation.

### Assign Factory

1. Open the Linear issue.
2. Open the assignee picker.
3. Search for **Factory** and select the entry labeled **Agent**.

![Linear issue assignee picker with Factory shown as an Agent](/docs-assets/images/linear-assign.png)

### Mention Factory in a comment

Add an issue comment, select `@Factory` from Linear's mention picker, and describe the task. Send the comment to delegate the work.

For example:

> @Factory Implement the fix described in this issue. Run the relevant tests and open a pull request with the results.

![Linear issue showing Factory's agent activity and an @Factory comment requesting follow-on work](/docs-assets/images/linear-mention.png)

<Note>
  The **Open in Factory** attachment, when present, opens a new Factory session with the issue in context. It is a separate workflow from assigning or mentioning the Factory agent in Linear.
</Note>

## Follow progress and review results

Open Factory's agent session on the issue to review its progress, actions, and final response. For code changes, Droid is instructed to open a pull request and return its URL. Factory also attempts to attach pull request or merge request links from the final response to the issue.

When the issue is in a backlog or to-do state, Factory attempts to move it into a started state, such as **In Progress**. Review the proposed changes and test results before merging; delegation does not replace code review.

### Stop a running task

Use **Stop** in Linear's agent session to halt the run. Factory posts **Droid execution stopped** when stopping succeeds.

Stopping follows Linear's own controls and is not limited to the person who started the delegation. Anyone who can use the session's Stop control in Linear can stop the run.

Stopping does not undo work already performed. Review any changes or pull requests produced before the stop.

## Troubleshooting

<Troubleshooting>
  <TroubleshootingItem title="Remote Delegations is missing from Settings">
    Confirm that you have the **Manager** or **Owner** role and that your organization has remote delegation preview access. Contact your Factory account team if the settings page or shared configuration is unavailable. Remote Delegations settings are not available in airgapped deployments.
  </TroubleshootingItem>

  <TroubleshootingItem title="Factory does not appear in the assignee or mention picker">
    Confirm that the Factory app is connected to the same Linear workspace as the issue and can access its team. Ask a Linear administrator to review the app's access and authorization. Connecting a personal Linear connector does not install the agent.
  </TroubleshootingItem>

  <TroubleshootingItem title="The Linear workspace is already linked to another Factory organization">
    Check which Factory organization you selected. If the workspace needs to move, coordinate with a Manager or Owner of the currently connected organization before disconnecting it and linking it to the intended organization.
  </TroubleshootingItem>

  <TroubleshootingItem title="Factory cannot match my Linear account">
    Make sure your Linear work email matches your Factory account email and that you belong to the connected Factory organization. Retry the request. If matching still fails, contact Factory support; installing a personal connector does not establish this account match.
  </TroubleshootingItem>

  <TroubleshootingItem title="Droid asks me to select a computer or workspace">
    The shared Apps configuration is not being used for this request. Ask a Manager or Owner to review **Remote Delegation Configs → Apps**, including its identity and compute. Configure shared execution if the team should use a service account rather than personal selections.
  </TroubleshootingItem>

  <TroubleshootingItem title="The session cannot start">
    Check that the service account is active and has the required credentials. The execution template must have a ready build, or persistent computers must be online with a current Droid daemon. See [Remote delegations troubleshooting](/remote-delegations#troubleshooting) for compute-policy and capacity errors.
  </TroubleshootingItem>

</Troubleshooting>

<RelatedLinks>
  <RelatedLink href="/remote-delegations" title="Remote delegations">
    Configure shared identity, instructions, plugins, and compute.
  </RelatedLink>
  <RelatedLink href="/enterprise/identity-and-access" title="Identity & Access">
    Set up service accounts and Git credentials.
  </RelatedLink>
  <RelatedLink href="/droid-computers/byom" title="Bring Your Own Machine (BYOM)">
    Connect your own computers for persistent execution.
  </RelatedLink>
  <RelatedLink href="/harness/connectors" title="Connectors">
    Give the execution identity access to external tools.
  </RelatedLink>
</RelatedLinks>
