# Linear for Raycast

URL: https://www.raycast.com/linear/linear

> Bring Linear to every corner of your Mac. Create, search, and modify your issues. Stay on top of your notifications in the menu bar.

- Install: raycast://extensions/linear/linear
- Author: [Linear](https://www.raycast.com/linear)
- Installs: 416,527
- Platforms: macOS, Windows
- Categories: Developer Tools, Productivity, AI Extensions
- Updated: 2026-11-13
- Source: https://github.com/raycast/extensions/tree/21e8de2e4439d2b56f0fdfd5f40135f2481aa3af/extensions/linear/

## Commands

- **Create Issue**: Create and assign new issues.
- **Search Issues**: Search issues globally in all projects.
- **My Issues**: View and modify issues that are assigned to you.
- **Created Issues**: View and modify issues that you have created.
- **Active Cycle**: View and modify issues that are in the active cycle.
- **Search Projects**: Explore projects for your Linear team.
- **Search Custom Views**: Browse custom views and their issues.
- **Search Documents**: Explore documents for your Linear team.
- **Create Project**: Create projects for your Linear team.
- **Notifications**: Read your latest Linear notifications.
- **Unread Notifications**: Show unread notifications in the Menu Bar.
- **Create Issue for Myself**: Create and assign a new issue to yourself.
- **Quick Add Comment to Issue**: Quickly add a comment to an issue using its ID.
- **Favorites**: Browse through your Linear favorites.

## AI tools

- **Create Initiative Label**: Create a new Linear initiative label
- **Users**: Search active Linear users by name, display name, or email to mention in AI Chat.
- **Issues**: Search Linear issues by identifier or text to mention in AI Chat. Shows recently updated issues when the query is empty.
- **Projects**: Search Linear projects by name to mention in AI Chat. Shows your active projects first when the query is empty.
- **Full Text Search Issues**: Relevance-ranked keyword search across Linear issue content. Use it when the user searches by topic or phrase; it cannot filter by team or project, so check each result's scope. Use list-issues for structured criteria. Supports cursor pagination and returns nextCursor when more results are available.
- **Filter Issues**: Filter Linear issues with a raw GraphQL IssueFilter for criteria list-issues cannot express, such as priority ranges, due-date ranges, estimates, completion dates, or OR conditions. Prefer list-issues for team, status, assignee, label, cycle, project, or priority filters. Supports cursor pagination and returns nextCursor when more results are available.
- **Get Notifications**: Retrieve the current user's Linear notifications (their Linear inbox). Pass unreadOnly for unread notifications. Supports cursor pagination and returns nextCursor when more results are available.
- **Add Label to Issue**: Add one label to an existing Linear issue while keeping its other labels.
- **Remove Label from Issue**: Remove one label from an existing Linear issue while keeping its other labels.
- **Search Documentation**: Search Linear's documentation to learn about features and usage
- **List Agent Skills**: List Linear Agent skills available to the authenticated user.
- **Get Agent Skill**: Retrieve a Linear Agent skill by ID, including its full markdown instructions.
- **Get Attachment**: Retrieve an attachment's content by ID.
- **List Comments**: List comments on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. Provide exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId`. For issues, projects, and initiatives this returns both top-level discussion threads and inline description comments. Inline (anchored) comments carry a non-null `quotedText` set to the snippet of description text they reference. Returned comments include `author` and nullable `onBehalfOf`; when set, `onBehalfOf` identifies the user the agent author acted for.
- **Delete Comment**: Delete a Linear comment. Inline description comments (those with non-null `quotedText`) anchor a mark in the editor, so their root cannot be deleted — delete the replies individually or resolve the thread instead.
- **List Cycles**: List Linear cycles, optionally scoped to a team and filtered to the current, previous, or next cycle. Without a team, returns cycles across all teams with each cycle's teamId. Supports cursor pagination and returns nextCursor when more results are available.
- **List Teams**: List teams in the Linear workspace. Every input is optional; call it without arguments to get all teams, or pass query to match a team name or key.
- **Get Team**: Retrieve details of a specific Linear team
- **List Users**: Retrieve users in the Linear workspace
- **Get User**: Retrieve details of a specific Linear user
- **Get Workspace**: Retrieve the connected Linear workspace
- **List Release Pipelines**: List release pipelines in the workspace.
- **List Releases**: List releases in the workspace, with optional filtering by pipeline, stage, version, and text.
- **Get Release**: Retrieve details of a release by ID or slug.
- **Save Release**: Create or update a release. If `id` is provided, updates the existing release; otherwise creates a new one. When creating, `name` and `pipeline` are required. Release status is modeled as the release pipeline stage.
- **List Release Notes**: List release notes in the workspace, optionally filtered by pipeline or covered release.
- **Get Release Notes**: Retrieve release notes by ID or slug, including markdown content.
- **Save Release Notes**: Create or update release notes. If `id` is provided, updates the existing release notes; otherwise creates a new one. When creating, `pipeline` and either `releases` or a release range are required. To change parts of the content without resending all of it, pass `patch` instead of `content`.
- **Get Document**: Retrieve a Linear document by ID or slug
- **List Documents**: List documents in the user's Linear workspace
- **Save Document**: Create or update a Linear document. If `id` is provided, updates the existing document; otherwise creates a new one. When creating, `title` is required and exactly one parent (`project`, `issue`, `initiative`, `cycle`, or `team`) must be specified. On update, passing a parent reparents the document. To change parts of the content without resending all of it, pass `patch` instead of `content`.
- **List Issue Labels**: List available issue labels in a Linear workspace or team
- **Create Issue Label**: Create a new Linear issue label
- **List Projects**: List projects in the user's Linear workspace
- **Get Project**: Retrieve details of a specific project in Linear
- **Save Project**: Create or update a Linear project. If `id` is provided, updates the existing project; otherwise creates a new one. When creating, `name` and at least one team (via `addTeams` or `setTeams`) are required. To change parts of the description without resending all of it, pass `patch` instead of `description`.
- **List Project Labels**: List available project labels in the Linear workspace
- **List Project Milestones**: List Linear project milestones, optionally scoped to a project. Without a project, returns milestones across all projects with each milestone's projectId. Supports cursor pagination and returns nextCursor when more results are available.
- **Get Milestone**: Retrieve details of a specific milestone by ID or name
- **Save Milestone**: Create or update a milestone in a Linear project. If `id` is provided, updates the existing milestone; otherwise creates a new one. When creating, `name` is required.
- **List Initiative Labels**: List available initiative labels in the Linear workspace
- **Create Attachment**: Upload a local file and attach it to an existing Linear issue. Pass the absolute local file path; the extension handles reading, uploading, and linking the file.
- **Delete Attachment**: Delete an attachment by ID
- **Save Comment**: Create or update a comment on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. If `id` is provided, updates the existing comment; otherwise creates a new one. To start a new thread, pass `body` and exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId` — comments on issues/projects/initiatives become top-level discussion threads; comments on documents/milestones become description comments. A status update holds a single thread, so a comment on an update that already has one is added to it as a reply. To reply to an existing thread, pass `parentId` and `body`; the reply inherits the parent's thread type, so no entity reference is needed. Parent reference fields are ignored when `id` or `parentId` is provided (`statusUpdateType` is rejected instead).
- **Extract Images**: Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. Pass the markdown content (e.g., issue description) and receive the images as viewable data.
- **Get Issue**: Retrieve detailed information about an issue by ID, including attachments, git branch name, and active Triage Intelligence suggestions when the issue is in triage
- **List Issues**: List issues in the user's Linear workspace, including active Triage Intelligence suggestions for issues in triage. For my issues, use "me" as the assignee. Use "null" for no assignee. Filter by status name or type with state; without a team it matches that status in every team.
- **Save Issue**: Create or update a Linear issue. If `id` is provided, updates the existing issue; otherwise creates a new one. When creating, `title` and `team` are required. Note: use `assignee` (not `assigneeId`) to set the assignee — it accepts a user ID, name, email, or "me".
- **Delete Issue**: Delete (trash) a Linear issue by ID or identifier. Deleted issues can be restored from the team's Recently deleted issues for 30 days before permanent removal. This is different from closing an issue by moving it to a completed or canceled status.
- **List Issue Statuses**: List Linear issue statuses (workflow states), optionally scoped to a team. Statuses are team-specific, so pass team before using a status ID in a write. Without a team, returns statuses across all teams with each status's teamId. Supports cursor pagination and returns nextCursor when more results are available.
- **Get Issue Status**: Retrieve detailed information about an issue status in Linear by name or ID
- **List Initiatives**: List initiatives in the user's Linear workspace
- **Get Initiative**: Retrieve detailed information about a specific initiative in Linear
- **Save Initiative**: Create or update a Linear initiative. If `id` is provided, updates the existing initiative; otherwise creates a new one. When creating, `name` is required. To change parts of the description without resending all of it, pass `patch` instead of `description`.
- **Get Status Updates**: List or get project and initiative status updates. Pass id to get one update. type defaults to initiative when only initiative is given, otherwise project.
- **Save Status Update**: Create or update a project/initiative status update. Omit `id` to create, provide `id` to update.
- **Delete Status Update**: Delete (archive) a project or initiative status update.

## README

<p align="center">
    <img src="https://github.com/raycast/extensions/raw/21e8de2e4439d2b56f0fdfd5f40135f2481aa3af/extensions/linear//assets/linear-app-icon.png" width="150" height="150" />
</p>

### Linear

_Create, search and modify your issues from anywhere on your **Mac** or **Windows** device._

The Linear extension brings the speed, quality and joy of the app to every corner of your **Mac** or **Windows** device.

#### ❓ FAQs

**Q1. How do I log in?**

**Ans.** The extension securely uses OAuth to authenticate with Linear.

**Q2. How do I switch workspaces?**

**Ans.** You can't switch workspaces on the fly; however, you can go to `Preferences`, `click` "Logout" then run any `command` now selecting the appropriate workspace.
