Product launch · XiaoHu explains

Linear ships Loops: write one plain-language instruction, and anyone can run loop engineering

Available on Business and Enterprise plans, billed per run — $0.07 to $0.2 a pop.

One-minute rundown
  • Loop engineering caught on among developers this June, but it's stayed a developer thing. The repetitive work product teams still babysit — engineers reading through bug reports one by one, PMs notifying teams when scope shifts, marketing adjusting launch schedules — still needs a human.
  • Linear shipped Loops on July 20: describe a task in plain language, pick a schedule or event trigger, and Linear Agent keeps running that task across your whole workspace.
  • Each run, it re-reads the instructions and decides what to do this time, pulling from issues (Linear's ticket items), projects, and docs, plus any connected codebases, attached external tools, and the loop's own past runs.
  • Permissions are a row of individual toggles — web search, reading the codebase, starting a coding session to write code, posting into externally synced threads — you flip each one on separately. Turn on web search and workspace content can go out to external services; issues created outside Linear, like from a Slack message or an email, don't trigger a loop by default.
  • It's billed per run: a run without a coding session costs $0.07 to $0.2; once it decides to touch code, a coding session to fix a small bug runs $3 to $5. Available on Business and Enterprise plans, with a promotional $20-per-seat credit thrown in through August 20.
This is Linear's own product launch page. This piece also draws on Linear's official Loops documentation and Addy Osmani's long-form piece on loop engineering for extra context; four of the product screenshots in the body come from the official docs, sourced at the end.
Launch

Linear ships Loops

Linear launched Loops on July 20, letting Linear Agent — Linear's own AI that can actually take action inside your workspace — run a task repeatedly on a schedule or in response to events.

You describe, in plain language, something you want it to keep doing, then pick a trigger: run on a schedule, or run when an issue (a ticket item in Linear) is created or changed and matches conditions you set. It then keeps running across the whole workspace, re-reading your instructions before every run and deciding for itself what to do this time.
Why it matters: This kind of scheduled and event-triggered agent loop has mostly lived inside individual-developer coding tools like Claude Code and Codex, orbiting one person's work. Loops moves the same idea up to the team level: a loop belongs to a team or a whole workspace, and anyone with access can inspect its instructions, its configuration, and what it did on every run.
The new Loops entry in Linear's sidebar
A new Loops entry now sits in the top-level sidebar navigation, with a "create new" option right on the empty state. The page describes itself this way: let Linear act automatically when an issue meets a set of conditions, to cut down on manual triage, keep work from stalling, and handle routine follow-ups. Source: Linear's official documentation
Background

Until now, only developers were building these self-running loops

Starting this June, a practice caught on among developers: build a self-running loop that keeps nudging an AI to work, instead of prompting it one request at a time. It has a name — loop engineering. In his June essay, Addy Osmani broke a loop down into five components, plus memory.

Scheduled automation
Finds and assigns work on its own schedule — no human has to kick it off.
worktree
Gives each working agent its own copy of the code, so several can edit the same repo at once without stepping on each other.
skill
Writes project knowledge down into files, so you don't have to re-explain everything every time a new session starts.
Connectors
Wires the agent into the tools you already use, so it can actually act instead of just offering suggestions.
Sub-agents
One comes up with ideas, another is dedicated to finding fault. The one doing the writing tends to grade its own work too generously.
Memory
The sixth piece. Something that lives outside any single conversation, tracking what's done and what's next. His example: a markdown file, or a Linear board.

All six pieces live inside coding tools, and the people using them are mostly developers. Loops changes the target — it plugs into the repetitive operational work product teams do every day.

What developers can already automate
  • Scan yesterday's failed builds, new issues, and recent commits on a schedule
  • Flag what's worth doing, send one agent to fix it and another to review
  • Connectors open pull requests, update tickets, and post to channels on its behalf
What product teams still babysit by hand
  • Engineers still read incoming bug reports one by one, then go dig into what's actually happening
  • PMs still have to notify affected teams whenever scope shifts
  • Marketing still adjusts the launch schedule whenever target dates move

The process behind all three items on the right is clear enough on its own — the bottleneck is that someone has to watch for the incoming change, make a judgment call, and then act. So how does Loops take over that kind of work? Start with what it actually looks like.

Related reading on this site
What exactly is this loop engineering everyone's been talking about
Want to understand the loop engineering method itself first? This site has a full breakdown that takes a different angle — from task discovery and handoff execution to independent verification, state storage, and scheduling.
What it's made of

What pieces make up a loop

Building a loop takes two steps: describe the task in plain language, then choose whether it runs on a schedule or wakes up on an event. Zoom in, and a loop is really made of four pieces.

Wait for trigger Read context Decide what to do Act Log the run A loop Build it once, it keeps running
One run walks through all five steps, then loops back to waiting for the next trigger. The dot circling the ring shows this process doesn't stop after a single pass.
Trigger
Two kinds. One is a schedule — runs on a timer. The other fires when an issue is created or changed and matches conditions you set, like a new item landing in a team's Triage queue (where new problems first sit before assignment). The "changes count too" part is easy to overlook, and it's exactly what determines how many times a day the loop gets woken up.
Instructions
A plain-language paragraph spelling out the result you want. You can also have the agent draft it for you — that option sits in the top-right corner of the instructions box.
Tools
Optional. Lets it pull information from, or act inside, other services — checking GitHub, Notion, or Sentry, posting to Slack.
Permissions
Controls what data it can touch and what actions it can take. Covered in its own section below.
A scheduled loop's configuration panel in Linear
A loop called Product standup prep, set up under the Product team. Its trigger is a schedule: starting July 15, 2026, running roughly every 2 weeks around 9 pm. The Instructions box below holds a plain-language instruction. Source: Linear's launch page
Sample instructions for a scheduled loop · Prepping the product standup agenda every two weeks (visible portion of the screenshot)
Prepare the agenda for the next Product team standup.

Review the last 2 weeks of product activity and surface the key things the team should talk about live.

Focus on:
- decisions to make
- open questions
- risky assumptions
Ownership and versioning

A loop can be assigned to a single team, a group of teams, or the whole workspace. Anyone with access can view its instructions, see how it's configured, and look back through what happened on every run. Changes save as a draft first and only take effect once you hit Publish; every published version sticks around, so you can roll back to any earlier one at any time. One exception: a removed tool can't be restored — you'll have to re-authorize it from scratch.

One run

What actually happens during a single run

On every trigger, Linear Agent re-reads the loop's instructions and decides for itself what to do this time. The context it can draw on includes Linear issues, projects, and docs; connected codebases; attached MCP tools; and the loop's own past runs. That's what lets it handle exceptions, ask first when information is incomplete, and pick a path when there are several options.

The official docs walk through a fairly complete example: a workspace called RideShare, and a loop called Bug investigation. Start with its instructions.

Sample instructions for an event-triggered loop · Auto-triaging a new bug as it enters Triage (visible portion of the screenshot)
When an issue enters Triage, run only if it either has the Bug label or uses the bug report template.

Review the issue description, labels, comments, attachments, linked issues, related customer requests, and recent relevant issues across the workspace.

First, determine whether there is enough information to continue triage. The minimum needed is:
- expected behavior
- actual behavior
- reproduction steps
- device and OS information

If materially important information is missing, leave a short comment asking the user for the missing information.

If enough information is present, assess:
- severity as critical, high, medium, or low, with a short justification
- regression risk as likely, possible, or unclear
- duplicate risk as likely, possible, or none found
- the most likely team
- the most likely owner

This instruction is worth a closer look, because it demonstrates three techniques for writing loop instructions. The first is a front gate: the opening line — "run only if it carries the Bug label or uses the bug template" — shuts out issues that aren't its business. The second is locking outputs to a fixed set of options: severity can only be critical, high, medium, or low; regression risk can only be likely, possible, or unclear. No room for improvising, which is exactly what lets downstream processes consume the result directly. The third is refusing to guess when information is thin: it spells out the minimum four things it needs up front, and asks in the comments when they're missing, rather than inventing a severity rating out of thin air.

Now look at what one actual run produced. At 11:04 pm on July 9, it worked for 3 minutes. On RIDE-10663 (trip history won't load after reconnecting from airplane mode), it posted a triage summary, linked it to RIDE-10639, and updated the team, owner, priority, and effort estimate based on its assessment. The two issues share an identical title — a suspected duplicate. Then it went a step further: it tested the existing fix against the iPhone 17-plus-iOS 27 reconnection path described in the report, and concluded the fix looked sound and needed no code changes — just one more build and one more real-device airplane-mode repro before merging.

A loop's run history interface in Linear
The run history for the Bug investigation loop. The left column lists the time of each run; the toggle above it, Show successful runs, controls whether successful runs are included in the list. The right side shows the loop's instructions up top and what this particular run did below, ending with a link to the corresponding fix branch. Source: Linear's official documentation

There's a detail in this screenshot that's easy to miss: this loop is event-triggered, so it fires quite often. On July 9 alone, the screenshot shows 16 runs, stretching from 5:49 pm to 11:12 pm. Each run leaves its own separate record, so you can go back and check exactly what it read and what it did on any given pass. That frequency comes up again later, because Loops charges by the run.

Permissions

How much access you can hand it

This is an agent running unsupervised inside a company's workspace, so the row of permission toggles decides two things: how much it can touch, and whether it can send what it finds out. Turn each one on individually when building a loop, and leave off whatever you don't need.

Team access

Which teams' data it can read and write. Workspace-level loops, and loops living in a public team, can access every public team by default; a loop in a private team can only access that team. Any loop with access to all public teams can also reach workspace-level objects like Initiatives and Customers.

Web search

Once on, it can look up any website — useful for things like tracking what competitors have shipped or digging through the docs of a connected service.

Turning this on means allowing workspace content to be sent to external services. Skip it for any loop that touches sensitive data.

Code Intelligence

Linear's own code comprehension capability. Once on, a loop can search through codebases connected to the workspace — it's what powers root-cause digging and answering code-related questions.

Coding sessions

Once on, it can spin up a coding session directly and, once done, open a draft pull request for a human to review. Only loops actually handing off implementation work need this.

Posting in externally synced threads (Externally synced issues and comments)

Once on, it can write into issues or comment threads that are two-way synced with external apps.

These threads can be visible to people outside the workspace. For example, if GitHub sync is turned on for a public repo, it can post comments straight into that repo's GitHub Issues.

External-source triggers

Issues can be created from outside Linear — a Slack message, an email sent to a designated address. For security reasons, these don't trigger a loop by default. To let one trigger a loop, you have to explicitly turn on that source for that specific loop; which external sources are even allowed is set by the workspace owner in security settings.

Editing beyond the issue that triggered it

With this off, a single run can only write to the issue that triggered it. With it on, it can write to any issue within its team-access scope.

The permissions panel when creating a new loop in Linear
The permissions panel from the final step of building a new loop shows six items; the seventh listed above, "editing beyond the issue that triggered it," isn't in this panel — it's only described in the documentation's body text. Also note: this screenshot labels the second toggle Web search, while the documentation's body text calls the same setting Web access. In this screenshot, both the externally synced threads and external-source triggers toggles are switched off. Source: Linear's official documentation

Tools are another point of access, but a narrower one than the permission toggles. Attaching a tool to a loop authorizes that loop to act inside that service; how far it can go is the intersection of two boundaries — what the integration itself is configured to allow, and how wide the loop's own data scope is. Every tool also needs workspace approval before it can be used at all — the workspace admin maintains an allowlist in security settings.

A loop's tool configuration interface in Linear
This loop has three tools attached — Datadog, GitHub, and Intercom. The gray banner below carries a warning: connecting an MCP server with personal credentials means giving this loop access to your personal data. Source: Linear's official documentation
Use cases

What teams are using it for right now

The bug-triage loop from the last section is the first use case, and won't be repeated here. Beyond that, the launch page and official docs list a few more, four of which are ready-made templates on the docs page — one click on "Build this loop" and you have your own.

Spinning off follow-up tasks · one-click template

Once a new feature request is created, the loop decides whether it needs separate iOS, Android, and Web work, and if so, creates issues for each platform and assigns them to the right teams.

Keeping plans and docs in sync

At the end of each day, the loop checks running projects and Initiatives (a planning unit a level above projects) against a central launch plan. If it finds the timeline or scope has shifted, it updates the doc and leaves a note explaining why.

Closing out incidents · one-click template

Once an issue tagged incident is marked done, it runs a root-cause analysis and creates new issues for whatever needs following up.

Drafting customer-facing notes · one-click template

Once an issue is closed, it reads the PR (pull request) that closed it and drafts a customer-facing note for support to use.

Three example loop instructions from the official docs (from the Overview at the top of the docs, not the four one-click templates)
When an issue enters this team's triage queue, investigate its likely root cause with Code Intelligence. If you think you can fix it, start a coding session.

Every Monday afternoon, review projects that had their first update in the last week or were mentioned as newly kicked off in @Weekly sync document. Send a Slack message to the #product-marketing channel so they're aware of what's coming.

When an issue is created in team Mobile, create separate issues for the iOS and Android teams, if relevant.
Getting started

What a single Loops run actually costs

Loops is available on Business and Enterprise plans. Starting July 20, every run draws from the workspace's AI credits. That pool isn't bundled into the plan — an admin has to top it up separately — and not every AI feature draws from it either; only coding sessions and Loops do, everything else AI-related is covered by the plan. It charges by actual usage, not by seat.

$0.07 – $0.2
Running a loop once, as long as it doesn't start a coding session
$3 – $5
A coding session to fix a small bug; lighter work like copy or style tweaks runs $0.5 to $1
$20/seat
A promotional credit for Business and Enterprise workspaces, pooled per workspace and applied automatically, expiring August 20
$10 / $50
A manual top-up is at least $10; turning on auto-refill requires at least $50

Put this price list next to the number from the last section, and the actual cost of an event-triggered loop comes into focus. That bug-triage loop got woken up 16 times on July 9 alone — at $1.1 to $3.2 a day if none of those runs open a coding session. But its instructions explicitly say to start a coding session and fix things once the path is clear, and a single one of those runs costs $3 to $5. That's also why the instructions open with "run only on issues carrying the Bug label or using the bug template" — the front-end filter isn't just about accuracy, it's about not burning money.

A few more things worth knowing about the money side: using AI credits is opt-in — a workspace that never tops up simply can't use Loops or coding sessions, and is never charged; loops pause once credits hit zero or a promotional credit expires, unless an admin has turned on auto-refill or bought more, and only workspaces with auto-refill turned on get charged automatically; top-ups run through Stripe and are billed separately from the Linear subscription; and the billing page in settings shows a live breakdown of spend by feature and by person.

There are two ways to build a loop

The first path is to work it out in chat first, then turn it into a loop once you're happy with it: hit ⌘/Ctrl + J to open Linear Agent chat, dial in the result you want, keep pushing back until the format and content are right, then have Linear turn that exchange into a loop — it'll prompt you to fill in whatever fields are missing. The docs give a ready-made opener, for someone who runs a weekly Thursday project check-in:

An opener for testing the result in Agent chat before turning it into a loop
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 [...]

The second path is building it directly in the interface: click Loops under the workspace group in the sidebar for a workspace-level loop, or click into a team and choose its Loops tab for a team-level one. From there, pick a trigger, write the instructions, optionally attach tools, and step through scope and permissions.

Who can build and manage loops is also controllable: workspace owners manage workspace-level loops in security settings, and team owners manage their team's loops under the team's access and permissions.

Linear plans to add more trigger types and context sources down the line, along with governance controls for workspace and team admins.

🧰 Quick-start card · Linear Loops
Accesslinear.app/docs/loops; inside the product it lives in the sidebar, but it's invisible without a Business or Enterprise workspace
PricingCharged per run against AI credits: $0.07 to $0.2 without a coding session, more once one starts (fixing a small bug runs $3 to $5); a promotional $20-per-seat credit is included through August 20
RequirementsRequires a Business or Enterprise workspace; AI credits only work once an admin actively tops up, with a $10 minimum per manual top-up, and loops pause once the balance hits zero
Four real loop instructions, shown in English alongside a Chinese translation — tweak and reuse them directly (two of the four are copied from what's legible in official screenshots)
Source
Introducing LoopsNan Yu (Linear)·Launch page (original)·2026-07-20
A note from this site
Among the product screenshots in this piece, the scheduling-panel one comes from the launch page, and the other four come from the official Loops documentation. The permissions-panel screenshot labels the second toggle Web search, while the documentation's body text calls the same setting Web access — both are kept as they appeared. All pricing figures come from Linear's AI credits billing documentation, and appear in neither the launch page nor the Loops docs. The six-part breakdown of a loop in the second section comes from Addy Osmani's June 2026 essay, not from Linear's launch page. The daily-cost figure — 16 runs multiplied by the per-run price — is this site's own estimate, based on the official price list.