Getting Started
This guide describes how to best integrate an AI agent into Linear. It includes implementation guidelines on how to design an experience that feels native to Linear’s workflows and interaction patterns.
Developer Preview
Linear for Agents APIs are currently in active development and available as a Developer Preview. Functionality and Agent APIs may change before general availability.
Overview
Agents behave similar to other users in a workspace. They can be @mentioned, delegated issues through assignment, create and reply to comments, collaborate on projects and documents, etc. App users are installed and managed by workspace admins.
You can build agents for internal use within your own workspace or for distribution to other organizations. It does not cost anything to develop agents in Linear. To make your agent available to other workspaces, submit your agent to Linear's integration directory.
Additionally, agents installed in your workspace do not count as billable users.
We've created a demo agent built on our Typescript SDK and Cloudflare, if you want to dive straight into an example codebase.
Weather Bot is an agent that will help you look up the weather of any location within a Linear issue.
Setup
Create a new Application and configure the settings as you would for a standard OAuth application.
In the configuration, enable webhooks and make sure to select Agent session events at the bottom. Enabling this category will notify your webhook when events occur that are directly relevant to your app's user.
Note that the name and icon of your application will be how the agent appears in workspaces where it is installed (e.g. in the mention and filter menus), so it is best to choose something short, recognizable, but unique.
If you're just getting started, selecting Inbox notifications and Permission changes may also be helpful. You can read more about these in Interaction Best Practices.
Authentication
Actor and scopes
App authentication is built on top of the standard OAuth2 flow. To install your agent into a Linear workspace in the OAuth authorization url add the actor=app
parameter to switch to an app installation rather than requesting authentication as the installing user. Because this will be installed with a workspace scope admin permissions are required to complete the installation.
This new actor type supersedes any references to actor=application
and can be used for all agent, app, and service account use-cases.
Mention + assign scopes
To allow for flexibility, the ability to mention and assign your agent is optional and must be requested through the use of two new additional scopes added to the scope
query parameter:
Scope | Description |
---|---|
app:assignable | Allow the app to be assigned as a delegate on issues and made a member of projects |
app:mentionable | Allow the app to be mentioned in issues, documents, and other editor surfaces |
Assigning an issue to your app now sets it as the delegate
, not the assignee
—so humans maintain ownership while agents act on their behalf.
Customer access scopes
The ability to access customer-related entities in your workspace for your agent must be requested through scopes:
Scope | Description |
---|---|
customer:read | Allow the app to read customer data in the workspace |
customer:write | Allow the app to read and write customer data in the workspace |
Initiative access scopes
The ability to access initiative-related entities in your workspace for your agent must be requested through scopes:
Scope | Description |
---|---|
initiative:read | Allow the app to read initiative data in the workspace |
initiative:write | Allow the app to read and write initiative data in the workspace |
Admin
Note that integrations using the actor=app
mode are not able to also request admin
scope.
Installation
Your app will have a unique ID for each workspace it is installed within, you can find this ID with the following query using the OAuth access token received as part of the installation flow:
query Me {
viewer {
id
}
}
We highly recommend storing this ID alongside your access token so that you can confidently identify your app in different workspaces.
Management
The team access available to your app can be changed or revoked at any time by workspace admins. If you're subscribed to the Permission changes webhook category, a PermissionChange
webhook will be sent when access changes occur.
Agent session lifecycle
Once installed and authenticated, your agent is ready to interact in the workspace. The core interaction model centers around the Agent Session, which tracks the lifecycle of a given agent task. Sessions are created automatically when an agent is mentioned or delegated an issue.
Session state is visible to users, and updated automatically based on the agent’s emitted activities. No manual state management is required.
Receiving your first webhook
The most common entry point is delegation—when a user assigns an issue to your agent.
This triggers a created
AgentSessionEvent webhook containing an agentSession
object with the relevant issue, comment, and context.
To get started, your agent should:
- Emit a
thought
activity within 10 seconds to acknowledge the session has begun - Inspect the
issue
,comment
,previousComments
, andguidance
fields
Details on the Agent Session webhook structure and how to respond using Agent Activities in Developing the Agent Interaction.