> For the complete documentation index, see [llms.txt](https://notara-1.gitbook.io/notara-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notara-1.gitbook.io/notara-docs/connectors/linear.md).

# Linear

The Linear connector gives the Notara agent access to your Linear workspace — searching issues, creating tickets, updating status, and listing projects. It's one of the most commonly used connectors for engineering teams.

## What It Enables

| Tool                   | Capability | Description                                    |
| ---------------------- | ---------- | ---------------------------------------------- |
| `linear_search_issues` | `read`     | Full-text search across issues                 |
| `linear_get_issue`     | `read`     | Retrieve a specific issue by ID or URL         |
| `linear_list_projects` | `read`     | List all projects in the workspace             |
| `linear_list_teams`    | `read`     | List teams and their statuses                  |
| `linear_create_issue`  | `write`    | Create a new issue                             |
| `linear_update_issue`  | `write`    | Update title, status, assignee, priority, etc. |
| `linear_add_comment`   | `write`    | Add a comment to an issue                      |

Read tools execute immediately. Write tools (`create_issue`, `update_issue`, `add_comment`) require admin approval by default.

## Setup

1. In the Notara dashboard, go to **Tools**.
2. Click the **Linear** tile.
3. Go to [linear.app → Settings → API](https://linear.app/settings/api) and create a **Personal API Key**.
4. Paste the key into the Linear connector's credential field.
5. Click **Verify & Save**. Notara will confirm the key is valid.

Your Linear API key is encrypted at rest with AES-256-GCM.

## Usage Examples

**Search for recent bugs:**

```
@Notara Find all P1 bugs in Linear from the last two weeks.
```

**Get a specific issue:**

```
@Notara What's the status of SUPENG-42?
```

**Create a ticket (with review):**

```
@Notara Create a Linear issue: "API rate limiting not applying to batch endpoints" 
— P2 bug, assign to the backend team.
```

This triggers an approval request to an admin before the ticket is created.

**Update issue status:**

```
@Notara Mark SUPENG-42 as In Progress and assign it to Max.
```

## The Approval Flow for Issue Creation

The `linear_create_issue` tool has `write` capability, which means it requires approval by default. When a team member asks the agent to create an issue:

1. The agent describes what it intends to create and asks the user to confirm intent.
2. An approval request is sent to the first available admin's Slack DM, with an **Approve** / **Deny** Block Kit prompt.
3. If approved, the issue is created in Linear and the result is posted back to the original thread.
4. If denied, the reason is posted to the original thread.

This flow exists to prevent accidental or duplicated ticket creation. If you want to reduce friction for trusted channels, you can set `linear_create_issue` to `open` for a specific channel via per-channel permission overrides.

## Review Intent

The agent is built to respect explicit review requests. If a user says phrases like:

* "create a ticket but let me review it first"
* "draft the issue for my approval"
* "before you post, show me what you're going to create"

The agent will describe the proposed ticket and stop — it will NOT call `linear_create_issue` until the user explicitly says to proceed. This behavior is enforced at the system-prompt level and applies regardless of permission settings.

## Tips for Engineering Teams

* **Link Linear to your channel**: configure your `#engineering` channel to have Linear tools enabled. Team members can then ask for issue lookups without switching to the Linear UI.
* **Use with GitHub**: the agent can correlate Linear issues with GitHub PRs if both connectors are active.
* **Skill for sprint reviews**: fork the `eng-error-digest` platform skill to create a weekly sprint-status digest that pulls from both Linear and Slack.
