Loops

Overview
Available on paid plans. Loops that use Linear Agent draw from your workspace’s AI credits.
Loops let Linear drive work forward automatically. They can run on a set schedule or when supported triggering events occur on issues, projects, initiatives, or cycles.
Loops follow your written instructions, along with any triggering changes to an issue’s status, priority, assignee, cycle, project, or labels.
They can do work in your Slack workspace, through Linear’s Slack integration and with other optional MCP connectors.
Example loops
Consider creating loops for repeatable tasks, like:
- When an issue enters a team’s triage queue, use Code Intelligence to investigate its likely root cause. If a fix is possible, start a coding session.
- Every Friday afternoon, review a project’s recent updates and add a summary and any follow-up work to its document.
- Every Monday afternoon, review projects that received their first update in the past week or were identified as newly kicked off in
@Weekly sync document. Post a summary to the#product-marketingSlack channel. - When an issue is created in the Mobile team, create separate issues for the iOS and Android teams, if relevant.
Here are some basic loops that are useful for most workspaces. Create custom loops for your team by prompting Linear, or get started with one of these examples.
Investigate and delegate bug reports
When new bugs arrive in Triage, check the codebase for a root cause. Delegate the issue to Linear to fix if the cause is found. (Build this loop ↗)
Create follow-up issues from resolved incidents
When an issue with an incident label is marked done, do a root cause analysis and create follow-up issues. (Build this loop ↗)
Create platform specific versions of incoming requests
When a new incoming issue is created, determine if new issues also need to be created for multiple platforms. (Build this loop ↗)
Create user-facing messaging after issues close
After an issue closes, check the PR that closed it and generate user-facing messaging that Support can share with customers. (Build this loop ↗)
Create loops with Linear Agent
The best way to create loops is to first achieve the outcome you want in a Linear Agent chat, then continue to refine it into a loop. For example, you might be the lead of a project that has check-in meetings each Thursday morning. You’re about to write the agenda, but realize you could automate this instead.
- Press ⌘/Ctrl + J to open a Linear Agent chat
- Prompt Linear: Check the project Slack channel, open questions in the last update, and any issue threads that seem relevant. Add a new section in the Meetings project document with those details, using a format like [...]
- Review the result to make sure it looks right. If it doesn’t, continue prompting Linear until the agenda looks complete, and in the desired format.
- Then, ask Linear to create the loop. You’ll be prompted to add any missing details.
Create loops manually
You can also create a new loop directly in the interface.
- In your sidebar, click Loops under the workspace group to start a new workspace-level loop. To create a new team loop, click the team name in your sidebar, then choose the Loops tab on that page.
- Click New loop
- Choose a trigger: a supported event on an issue, project, initiative, or cycle, or a schedule.
- Add instructions describing the outcome you want Linear to achieve
- Optionally, add MCP connectors
- Review the loop’s scope and permissions
- Click Create loop
Update loops
Prompt Linear to update an existing loop, or make changes directly in the interface:
- Open the list of Loops
- Select the loop you want to update
- Click Edit
- Update the loop fields as needed. These changes are saved as a draft, and not yet live.
- Click on Publish to apply all changes at once to the loop
Review a loop’s runs
Each loop has a run history to let you audit its behavior.
Open a completed run from Run history, then ask Linear Agent follow-up questions or request additional actions using the run’s context.
- Open Loops from the workspace or team that contains the loop
- Open the loop you want to review
- Select Run history
- Review recent runs to see when the loop executed and what actions it took
Restoring a previous version
All published versions of a loop are saved and can be restored. Please note that removed connectors cannot be restored as they need to be authenticated again manually.
- Start editing a loop as usual
- Click on Published versions
- Select a past version you want to restore
- Click on Restore version
Use Slack with Loops
Connect a Loop to your workspace’s Slack integration to let it work in Slack as Linear. A Loop can use one connected Slack workspace. You must link your Slack account to Linear and be a full member of the workspace to connect.
To connect Slack to a Loop:
- A Linear admin must first turn on Enable Linear Agent, and Allow Loops access via Settings > Integrations > Slack > Workspace.
- In the Loop draft, open the connector menu and select Slack
- Select the appropriate Slack workspace
The Slack integration uses your workspace’s shared Slack connection, rather than a personal Slack MCP connection. It is intended for shared automation with defined public-channel access. You should use a personal Slack MCP connector when a Loop needs access based on an individual’s Slack authorization or broader Slack tools.
What Loops can do in Slack
- Loops can find public channels by name, including Slack Connect channels, and read their message history. They can also read messages from Slack links, post new messages, and add or remove emoji reactions. Messages posted to Slack by a loop are identifiable by a direct link to its run.
- Loops can send direct messages to full members in Slack, and those messages are one-way.
- In a public-channel thread started by a Loop, anyone with access to the loop run can reply from there to continue the conversation.
Slack access and limitations
- Loops cannot access private channels, direct-message history, or group direct messages.
- Loops cannot search messages across the workspace, create channels, edit or delete messages, upload files, or manage Slack canvas documents.
- Replying to a loop message in Slack Connect channels, direct messages and unrelated threads do not continue a conversation.
- When automatic channel joining is disabled in Slack, Loops can only use public channels that Linear has already joined. If message history is unavailable, Loops can send messages into those channels but cannot read their history, or continue conversations through replies.
MCP Connectors
MCP connectors extend what Linear Agent can do during a loop run. When a connected MCP is available to a loop, Linear can use it to gather context or take supported actions in other services. For example:
- Search or retrieve content from connected sources such as GitHub, Notion, or Sentry
- Post comments or updates to external services like Slack
- Fetch documentation, pull request details, or error reports to enrich an issue
An MCP connector can only access data and perform actions that are permitted by the available MCP’s configuration and the loop’s data scope. When a user connects an MCP to a loop, they authorize that loop to act in the other service, so connector access should be granted thoughtfully.
Managing available Connectors
Owners (Enterprise) or workspace Admins (Business) can elect to let users connect any MCP connector, or only allowlisted servers.
If Only specific connectors are selected, each MCP must first be approved in your workspace before it can be used in a loop.
Workspace admins and owners can configure the full set of MCP connectors allowed in a workspace in Security settings. Once an MCP server has been added, users can add it when creating or updating a loop. Adding one directly to a loop requires the configuring user to authenticate with the connector, and it will use their personal account’s connection.
Setup
- Workspace owners can manage who can create and manage workspace loops in Settings → Security → Workspace management → Manage loops.
- Team owners can control who can create and manage loops in Settings → Teams → [Team name] → Access and permissions → Loop management.
- To change who can edit a specific loop, open it and then select Who can edit. Choose between all members, workspace admins or team owners, or only the loop owner.
Permissions
Loops support a range of permissions to control what they can access and do. Enable only the permissions your loop needs to fulfil its intended purpose, and consider the impact of each one before enabling it.
Team access
Controls which teams the loop can access. It can read and write data only in those teams. By default, a loop at the workspace level or in a public team will have access to all public teams, while a loop inside a private team will have access only to that team.
Loops that can access all public teams can also access workspace-level objects like Initiatives and Customers.
Web access
If enabled, the loop can query any website. You can use this to set up loops that can take actions like researching competitor announcements, or checking the documentation of services your product integrates with.
Use caution when enabling web access. Web access can send workspace content to external services. Do not enable it for loops that may process sensitive data unless you are comfortable with that data leaving Linear.
Code Intelligence
If enabled, the loop can use Code Intelligence to browse and analyze repositories configured in your workspace. Enable Code Intelligence for loops designed to investigate bugs or answer questions about your code.
Coding sessions
If enabled, the loop will be able to start a coding session to open a draft pull request. Allow coding session access for loops that delegate implementation work to Linear.
Externally synced issues and comments
If enabled, the loop will be able to write data on issues or comment threads that are synced with external applications, like issues created from Slack with bi-directionally synced threads.
Enable this with care, as some synced threads may be visible outside your workspace — if you use GitHub sync in a public repo for instance, the loop would be able to post comments to that repo’s GitHub Issues.
External sources
Issues can be created from sources outside Linear, like Slack messages or emails received to a particular address. For security reasons, loops will only run by default on issues created from within Linear.
If you want a loop to run on issues created from external sources, you can enable specific external sources on a per-loop basis. Workspace owners can configure the list of allowed external sources in Security settings. After that, configured external sources can be enabled for individual loops.
Allow changes outside of triggering entity
If enabled, the loop can write data to other entities included in the Team access scope. If disabled, the loop can only write data on the entity that triggered the loop for a given run. This setting does not apply to scheduled loops.
AI credits
Loops use AI credits, which workspace admins can purchase and manage in Settings. Purchased credits expire 12 months after the purchase date. If a workspace runs out of credits, Loops pause unless an admin purchases more credits or enables auto top-ups. Workspaces are charged automatically only when auto top-ups are enabled.
Promotional Loops AI credits
Some workspaces may receive promotional Loops AI credits with separate expiration terms. Eligible workspaces will be notified by email.
FAQ
Clearly describe the intended outcome and any actions Linear Agent should avoid.
For example:
Investigate the issue using the available context. Add a comment summarizing the likely cause and recommend the next action. Do not change the issue’s assignee or status.
For best results:
- Use Linear Agent chat to help build your instructions. See Create loops with Linear Agent for guidance.
- Describe the outcome, not only an action
- Specify which context or connected tools Linear Agent should use
- State which changes are permitted
A loop can only use MCP connectors that are connected to your workspace, enabled for Linear Agent, and allowed by your workspace admins. Access also depends on the loop’s scope and permissions.
Enable web access only when a loop needs information from external websites.
A good fit is research on public information, like competitor announcements, documentation, or API references, where the loop does not need to send sensitive workspace content to external services.
Enable this intentionally, since allowing external web access can increase the risk of exposing workspace data outside Linear.
First, a workspace admin must enable Code Intelligence and configure code access for the workspace. Then, enable the Code Intelligence permission on the loop itself.
First, a workspace admin must enable coding sessions and configure code access for the workspace. Then, enable the Coding Sessions permission on the loop itself.
Workspace admins can review credits and usage via Settings under AI & Agents > AI usage & credits
If your workspace runs out of AI credits, loops that use Linear Agent stop running until more credits are added. Loops that only apply configured issue updates can continue to run without AI credits.
To troubleshoot, open the loop’s Run history to check recent runs and any visible failures.
Common causes a loop run might fail include missing permissions, untrusted external sources, or your workspace running out of AI credits.
To get a more detailed description of what went wrong, you can also ask Linear. Press ⌘/Ctrl + J while looking at the run history and ask for a detailed description of why the loop run failed.
You can use Run now for enabled loops that use Linear Agent and have a schedule, issue, project, or initiative trigger.
For issue, project, and initiative triggers, choose the entity you want to use for the run. Run now is not available for cycle triggers or loops that only apply configured issue updates.
Scheduled loops can run hourly, daily, weekly, monthly, or yearly. Choose the timezone and when the loop should first run.
Weekly schedules can run on one or more days of the week. The first run date cannot be in the past.
Triage loops are created for a specific team and require triage to be enabled for that team. They run when an issue enters the team’s triage queue and begins matching the configured conditions.
Triage loops do not support schedules or non-issue triggers.
Teams can create up to 100 loops, and workspaces can create up to 500 workspace-level loops. Each person can keep up to 100 unpublished loop drafts.
Loop names can be up to 64 characters, and descriptions can be up to 255 characters. A loop can include up to eight conditions and eight actions.
Deleting a loop is permanent and cannot be undone. Consider disabling the loop instead if you may need to restore it in the future.

















