Open-Inspect's Linear integration starts coding sessions from Linear issues. Mention or assign the Linear Agent to start work, then use Linear for progress, results, and follow-ups.
This guide is for people using the Linear integration day to day. If you are installing the Linear OAuth app or deploying the worker, start with the Linear Bot setup guide.
- Open the Linear issue you want Open-Inspect to work on.
- Mention the agent in a comment:
@OpenInspect please implement this issue and open a pull request - Or assign the issue to the Linear Agent when the issue already explains the work.
- Include
owner/repoif the issue could match more than one repository. - Use View Session to watch the full session.
- Send follow-ups through the same active Linear Agent session.
| Workflow | How it works |
|---|---|
| Start from an issue mention | Mention the Linear Agent on an issue |
| Start from assignment | Assign the issue to the Linear Agent |
| Continue active work | Send a follow-up through the same active Linear Agent session |
| Stop or cancel work | Stop or cancel the Linear Agent session to stop the Open-Inspect session |
| Resolve the repository | Let Open-Inspect infer the repo, or include owner/repo when asked |
| Follow progress | Watch Linear activities or open the full session with View Session |
Start work by mentioning or assigning the Linear Agent. Regular issue comments only continue work when they are part of an active Linear Agent session.
Mention the Linear Agent on an issue when you want Open-Inspect to start work from that issue:
@OpenInspect can you fix the failing invite flow described above?
Open-Inspect uses the issue and recent comments as context. The triggering comment becomes the agent instruction, so include the concrete work you want done.
Assign the issue to the Linear Agent when the title and description already describe the work.
Assignment works best when the issue includes:
- A clear title and description
- Acceptance criteria or expected result
- The target repository, if it is ambiguous
- Whether the agent should open a pull request
Follow-up prompts on an issue with an active Open-Inspect session go to that session. When available, Open-Inspect adds recent agent output as context.
Issue-to-session mappings are kept for several days. If the mapping has expired, or if the previous session was stopped or cancelled, a new Linear Agent request may start a new Open-Inspect session.
Stopping or cancelling the Linear Agent session stops the associated Open-Inspect sandbox session and clears the issue's session mapping.
Before starting work, Open-Inspect chooses a repo from the Linear project, team, labels, issue text, comments, and repo metadata.
If the issue could match more than one repository, include the intended repository name in the issue or trigger comment:
Please handle this in acme/billing-api.
If Open-Inspect asks for clarification, reply with owner/repo. That answer is used on the next
resolution attempt.
Admins can map Linear projects or teams to repositories. See Configure Repo Mapping for details.
If the resolved repo is outside the selected Linear scope, Linear shows an error and no session starts.
| Activity | What it means |
|---|---|
| Thinking | Open-Inspect is analyzing the issue or choosing a repo |
| Working | A session has started |
| Tool progress | Optional updates for file reads, edits, and commands |
| Clarification | Open-Inspect needs more information, usually the repo name |
| Completion or error | The session finished, failed, or could not continue |
When a session starts, Linear receives a View Session link. If the agent opens a pull request, Linear receives a Pull Request link when the session finishes.
Open the web session for live output, logs, artifacts, and file changes. For a human-initiated
session, Open-Inspect moves an unstarted issue to the team's lowest-position started workflow
state only after the initial prompt reaches a live sandbox. It leaves automation-initiated,
already-started, completed, and canceled issues unchanged. Follow-up prompts do not change issue
status.
Open-Inspect does not update labels, assignee, priority, or project. Pull-request workflow changes remain the responsibility of Linear's GitHub integration and the team's PR automation settings.
Open the web app and go to Settings > Integrations > Linear to configure the Linear Agent.
| Setting | What it controls |
|---|---|
| Default model and effort | Model and reasoning depth for Linear-started sessions |
| Repository Scope | Whether Linear can run in all accessible repos or selected repos |
| Issue Session Instructions | Extra guidance appended to Linear issue prompts |
| Allow user model preferences | Whether admin-managed user preferences can override the model |
Allow model labels (model:*) |
Whether Linear issue labels can choose the model |
| Tool progress activities | Whether Linear shows intermediate file and command activity |
| Repository Overrides | Per-repository defaults for model, reasoning, and Linear behavior |
If no Linear settings are configured, all accessible repositories are in scope, user preferences and model labels are allowed, and tool progress is enabled.
Model selection uses this priority, highest to lowest:
model:*issue label, when allowed.- Linear user preference, when allowed.
- Repository override or global Linear default.
- Deployment default model.
Linear user preferences are currently admin/API-managed, not set from a self-service Linear screen.
- Linear webhooks are verified before Open-Inspect acts on them.
- Linear client credentials, runtime access tokens, webhook secrets, and callback secrets stay server-side. Runtime access tokens are cached and replaced automatically; refresh tokens are not used for runtime API access.
- Runtime tokens are cached under
oauth:client-credentials:{organizationId}with their verified workspace/app identity and expire with the provider lease. Do not edit cached token values manually. - Linear does not provide Git credentials. Repository access still comes from the deployment's configured source-control integration, such as the GitHub App installation.
- Repository scope in Linear settings controls which resolved repositories can receive Linear-started sessions.
- Linear issue titles, descriptions, comments, and agent prompts may be sent to the coding agent. Do not include secrets.
Confirm the Linear OAuth app is installed in the workspace and that the app was installed with the agent scopes required for mentions and assignment. Setup details live in the Linear Bot setup guide.
Make sure the request mentions or assigns the Linear Agent on an issue. Also check that the issue belongs to a repo Open-Inspect can resolve and access.
If the Worker logs a client-credentials failure, confirm Client credentials tokens is enabled for the application in Linear Settings → API → Applications. Existing eligible installations do not need to be uninstalled and reinstalled. A client-credentials viewer-organization mismatch means the application credentials resolve to a different workspace than the incoming webhook and must be corrected before the deployment is eligible.
Reply with owner/repo. To avoid future prompts, add the repo to the issue or ask an admin to map
the Linear project or team.
Open View Session. Linear shows status and completion activity, while detailed logs, transcripts, artifacts, and file changes live in the Open-Inspect web session.
Linear leaves Working only after the bot delivers a terminal response or error activity. If the
web session has completed but Linear has not:
- Find the Open-Inspect session ID from View Session.
- Confirm the Linear bot logged
agent_session.followupfor the follow-up webhook. - In control-plane logs, find
prompt.enqueuefor the follow-up message. A healthy Linear prompt hashas_callback_context:true;falsemeans completion had no Linear callback destination. - Confirm control-plane
prompt.complete, followed by linear-botcallback.complete. If the first exists without the second, inspect callback routing and context. If both exist, inspectdelivery_outcome,linear.emit_activity_failed, credential identity failures, and GraphQL errors. Onlydelivery_outcome:successconfirms the terminal activity reached Linear.
A completion that was skipped cannot repair itself later. After deploying a callback-context fix, send another follow-up through the same Linear Agent session to produce a new terminal activity, or start a new Agent session if the issue mapping has expired.
Deploy the replacement LINEAR_CLIENT_SECRET promptly. Linear invalidates tokens minted with the
old secret; the Worker replaces the cached token after a cache miss, expiry, or HTTP 401 and retries
the rejected API request once. A reinstall is not normally required.
Check Settings > Integrations > Linear. Repository overrides, user preferences, and model:*
labels can affect model selection. Changes apply to new Linear-started sessions.
Check project and team repo mappings, issue labels, repository metadata, and the selected repository
scope. If an issue is ambiguous, include the intended owner/repo in the issue or trigger comment.
Limit the source-control installation to intended repositories, or set Repository Scope to Selected repositories in the Linear integration settings.