Linear Agent
ChannelDelegate 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/linearEnvironment variables
- LINEAR_AGENT_ACCESS_TOKEN
- posts Agent Activities and creates proactive sessions
- LINEAR_WEBHOOK_SECRET
- verifies Linear-Signature
Capabilities
- Human-in-the-loop — Human-in-the-loop (HITL) input requests render as Linear elicitation activities.
- Proactive sessions — Start a session without an inbound webhook with receive(linear, { target }).
- Attachments — Inbound 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@latestQuick 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.