---
title: "Linear connector"
description: "Connect Linear to Overlane: Read and change Linear issues from Overlane tasks and loops. Auth, setup, typed actions with their autonomy class, and events."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.overlane.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Linear connector

{/* Generated from the connector's declaration and setup text by `pnpm --filter @overlane/sdk generate`. Do not edit. */}

Read and change Linear issues from Overlane tasks and loops. The native path is Overlane issues, projects, cycles and views; this connects an existing Linear team.

Connectors are optional on every plan. The Overlane-native path is Overlane issues, projects, cycles and views; nothing in Overlane needs Linear connected. Read [how connectors work](/developers/connectors/) first.

## Auth

OAuth. Scopes: `read`, `write`, `issues:create`.

## Set it up

1. In Linear, create an OAuth application (or a personal API key for a single team) with the read and write scopes listed above.
2. Authorize it for your workspace and copy the access token.
3. Store it with the connect command below.

```sh
overlane connector connect linear --secret-env LINEAR_TOKEN
overlane connector show linear
```

The credential is read from the environment variable (or standard input with `--secret-stdin`), stored in your team's encrypted vault and never shown again. Storing, rotating or revoking a credential is in the `secrets` [autonomy class](/developers/approval-rule/). Revoke it with `overlane connector revoke`, which deletes the stored secret.

## Actions

Run one with `overlane connector run`. The class says what the call needs from the autonomy gate; see [the approval rule](/developers/approval-rule/).

| Action | Kind | Autonomy class | What it does |
| --- | --- | --- | --- |
| `list_issues` | read | none | List recent issues |
| `pull_issues` | read | none | List one page of the workspace's issues with their state, priority, labels, assignee and project |
| `import_issue` | read | none | Read one issue as the starting point of a task |
| `write_back_status` | write | `issue_triage` | Report a task's state in the Linear agent session it came from |
| `create_issue` | write | `issue_triage` | Create an issue in a team |
| `update_issue` | write | `issue_triage` | Change an issue's title, description or state |
| `archive_issue` | destructive | `deletion` | Archive an issue |

```sh
overlane connector run linear list_issues
```

## Events

Create a webhook in Linear's API settings pointing to `https://api.overlane.app/webhooks/connectors/<team>/linear`, then store its signing secret with `overlane connector connect linear --webhook --secret-env LINEAR_WEBHOOK_SECRET`.

| Event type | Meaning |
| --- | --- |
| `Issue.create` | An issue was created |
| `Issue.update` | An issue changed |
| `Issue.remove` | An issue was removed |
| `Comment.create` | A comment was added |
| `AgentSessionEvent.created` | An agent session was started on an issue |
| `AgentSessionEvent.prompted` | A person replied in an agent session |

Each event is verified against the stored webhook secret and kept once by the provider's event ID, so a replay changes nothing. List them with `overlane connector events`.

## Limits and content

Overlane makes at most 120 Linear calls a minute for one team, to protect the provider's own quota. A call over it returns `429` with `Retry-After`. A rate limit from the provider itself is waited out with its `Retry-After` and retried.

Everything Linear returns is data, labelled `untrusted_data`, never instructions. If the text looks like it is written to instruct an AI reader, the label says so and the text is returned unchanged; nothing in it changes what Overlane does.

## Sources

- [Linear: webhooks](https://linear.app/developers/webhooks)
- The connector follows the provider's documentation as of 2026-10-01.

Source: https://docs.overlane.app/developers/connectors/linear/index.mdx
