01
Scenario this guide covers
AudienceExternal Linear workspaces via OAuth
Registration pathCustom OAuth application registered in Linear workspace settings
- The agent needs programmatic issue access via GraphQL API
- The developer's Linear workspace is used to register the OAuth app, but end users are in their own workspaces
02
Choose managed or custom
Composio lists Linear as a managed OAuth2 toolkit. Exact managed scopes were not verified in this research pass.
Choose custom when: Use a custom registration when you need specific scopes, custom branding, or workspace-level actor tokens.
03
Before you start
A Linear workspace where you have Admin privilegesAlways
DeveloperA callback / redirect URI for your applicationAlways
Developer04
Permissions in plain language
readRead access for the user's account dataAlways included by default; needed for any data retrieval.
StandardSource ↗writeGeneral write access to the user's accountNeeded if the agent updates issues, labels, or project settings.
BroadSource ↗issues:createCreate new issues and attachments onlyA narrower alternative to full write access when the agent only files new issues.
Narrow writeSource ↗comments:createCreate new issue commentsUseful for agents that add context or updates to existing issues without broader write access.
Narrow writeSource ↗05
Your setup path
Create the OAuth application
In Linear, go to Settings > API > OAuth applications, click the + icon, fill in the app name, developer URL, and callback URI.
Expected result: A Client ID and Client Secret for your application.Open official page ↗Official source · LinearEnable public access and refresh tokens
Toggle the Public switch to ON so other workspaces can authorize your app. Enable refresh token support for token rotation.
Expected result: The app is publicly installable and supports long-lived sessions.Official source · LinearImplement the OAuth flow
Redirect users to https://linear.app/oauth/authorize with your client_id, redirect_uri, response_type=code, and comma-separated scopes. Exchange the returned code at https://api.linear.app/oauth/token.
Expected result: An access_token and refresh_token pair for GraphQL API access.Open official page ↗Official source · LinearTest against the GraphQL API
Use the access token in an Authorization: Bearer header against https://api.linear.app/graphql to run a test query.
Expected result: A successful GraphQL response confirming issue access.Open official page ↗Official source · Linear06
Review and waiting
Linear does not require provider review for OAuth applications. Any workspace can install a public app immediately.
Prepare this evidence
07
When you get blocked
Cannot find the OAuth applications section in Settings.+
Likely cause: You may not have Workspace Admin privileges in your Linear workspace.
Recovery: Ask a Workspace Admin to grant you admin access, or create a dedicated developer workspace.
Official help ↗External workspaces cannot see or authorize the app.+
Likely cause: The Public toggle may not be enabled on the OAuth application.
Recovery: Edit the app in Settings > API > OAuth applications and toggle Public to ON.
08
Who does what
Can prepare
- Map agent actions to the narrowest Linear scopes
- Construct the OAuth authorize URL
- Draft GraphQL queries for issue operations
Must complete
- Register the OAuth app with Workspace Admin access
- Secure client credentials
- Implement token exchange and refresh
Decides
- Each user or workspace admin decides whether to authorize the app
09
Sources and limits
Linear OAuth authenticationLinear · checked 2026-10-21
↗02Working with the GraphQL APILinear · checked 2026-10-21
↗- No Linear OAuth application was registered or tested by this project.
- Linear's scoping model uses comma-separated values, not space-separated as noted in some earlier documentation.