Skip to content
Talk to an Engineer Dashboard

Linear

Connect to Linear. Manage issues, projects, sprints, and development workflows

Connect to Linear. Manage issues, projects, sprints, and development workflows

Linear logo

Supports authentication: OAuth 2.0

Register your Scalekit environment with the Linear connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

  1. Set up auth redirects

    • In Scalekit dashboard, go to Agent AuthCreate Connection. Find Linear and click Create. Copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

      Copy redirect URI from Scalekit dashboard

    • Log in to Linear and go to SettingsAPIOAuth applications.

    • Click New application, enter an application name and description, then paste the redirect URI from Scalekit into the Callback URLs field. Click Create application.

      Create OAuth application in Linear

  2. Get client credentials

    • In your Linear OAuth application, copy the Client ID and Client Secret.
  3. Add credentials in Scalekit

    • In Scalekit dashboard, go to Agent AuthConnections and open the connection you created.

    • Enter your credentials:

      Add credentials in Scalekit dashboard

    • Click Save.

Connect a user’s Linear account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.

You can interact with Linear in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.

Proxy API Calls

import { ScalekitClient } from '@scalekit-sdk/node';
import 'dotenv/config';
const connectionName = 'linear'; // get your connection name from connection configurations
const identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
const scalekit = new ScalekitClient(
process.env.SCALEKIT_ENV_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;
// Authenticate the user
const { link } = await actions.getAuthorizationLink({
connectionName,
identifier,
});
console.log('🔗 Authorize Linear:', link);
process.stdout.write('Press Enter after authorizing...');
await new Promise(r => process.stdin.once('data', r));
// Make a GraphQL request via Scalekit proxy
const result = await actions.request({
connectionName,
identifier,
path: '/graphql',
method: 'POST',
body: JSON.stringify({ query: '{ viewer { id name email } }' }),
});
console.log(result);

Scalekit Tools

Execute a custom GraphQL query or mutation against the Linear API. Allows running any valid GraphQL operation with variables support for advanced use cases.

NameTypeRequiredDescription
querystringYesThe GraphQL query or mutation to execute
variablesobjectNoVariables to pass to the GraphQL query

Create a new issue in Linear using the issueCreate mutation. Requires a team ID and title at minimum.

NameTypeRequiredDescription
assigneeIdstringNoID of the user to assign the issue to
descriptionstringNoDescription of the issue
estimatestringNoStory point estimate for the issue
labelIdsarray<string>NoArray of label IDs to apply to the issue
prioritystringNoPriority level of the issue (1-4, where 1 is urgent)
projectIdstringNoID of the project to associate the issue with
stateIdstringNoID of the workflow state to set
teamIdstringYesID of the team to create the issue in
titlestringYesTitle of the issue

Update an existing issue in Linear. You can update title, description, priority, state, and assignee.

NameTypeRequiredDescription
assigneeIdstringNoID of the user to assign the issue to
descriptionstringNoNew description for the issue
issueIdstringYesID of the issue to update
prioritystringNoPriority level of the issue (1-4, where 1 is urgent)
stateIdstringNoID of the workflow state to set
titlestringNoNew title for the issue

List issues in Linear using the issues query with simple filtering and pagination support.

NameTypeRequiredDescription
afterstringNoCursor for pagination (returns issues after this cursor)
assigneestringNoFilter by assignee email (e.g., ‘user@example.com’)
beforestringNoCursor for pagination (returns issues before this cursor)
firstintegerNoNumber of issues to return (pagination)
labelsarray<string>NoFilter by label names (array of strings)
prioritystringNoFilter by priority level (1=Urgent, 2=High, 3=Medium, 4=Low)
projectstringNoFilter by project name (e.g., ‘Q4 Goals’)
statestringNoFilter by state name (e.g., ‘In Progress’, ‘Done’)