All integrations

Linear Agent

Channel

Delegate Linear issues and comments to your agent through Linear's Agent Sessions.

At a glance

From Eve docs · synced Jul 22, 2026

Webhook route

POST /eve/v1/linear

Environment variables

LINEAR_AGENT_ACCESS_TOKEN
posts Agent Activities and creates proactive sessions
LINEAR_WEBHOOK_SECRET
verifies Linear-Signature

Capabilities

  • Human-in-the-loopHuman-in-the-loop (HITL) input requests render as Linear elicitation activities.
  • Proactive sessionsStart a session without an inbound webhook with receive(linear, { target }).
  • AttachmentsInbound file attachments are not supported on this channel today.

Derived from Eve's Linear Agent docs.

Install

Install the framework. The Linear channel ships with it:

npm install eve@latest

Quick start

Create agent/channels/linear.ts:

// agent/channels/linear.tsimport { linearChannel } from "eve/channels/linear";export default linearChannel({  credentials: {    accessToken: () => process.env.LINEAR_AGENT_ACCESS_TOKEN!,    webhookSecret: () => process.env.LINEAR_WEBHOOK_SECRET!,  },});

Configure

Create a Linear OAuth app with Agent Session events enabled, make the app assignable and mentionable, and point the webhook at eve's route (/eve/v1/linear). Provide the app access token and webhook secret through environment variables. See the Linear channel docs for scopes and Agent Activity behavior.

How it behaves

Excerpts from Eve's Linear Agent docs. Prefer the source when something looks out of date.

Dispatch

The default hook dispatches created and prompted Agent Session events. eve adds a Linear context block with the agent session, issue, comment, and organization identifiers, then continues the same session with agent-session:<id>.

Delivery

Turn start posts an ephemeral thought, tool calls post ephemeral action activities, final assistant text posts a durable response, and failures post error activities. When the model emits text before a tool call, eve buffers the first non-empty line and uses it as the next ephemeral Linear thought, mirroring Slack's typing-status behavior.

Human-in-the-loop (HITL)

Human-in-the-loop (HITL) input requests render as Linear elicitation activities. When the user replies to the Agent Session, the channel resolves that prompt back to the pending eve input request and resumes with inputResponses.

Proactive sessions

Start a session without an inbound webhook with receive(linear, { target }). See Proactive sessions below for the target shape and examples.

Attachments

Inbound file attachments are not supported on this channel today.

API handle

Event handlers receive channel.linear, which exposes createActivity, listActivities, and updateSession for custom Agent Activity delivery and Agent Session metadata.

Agents using Linear Agent