linear

Manage Linear issues, projects, teams, and documents via the GraphQL API using curl.

Updated May 18, 2026
One-click install
npx skills add https://github.com/ossoolli/Nexum-Core --skill linear-ossoolli
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: linear
Source: https://github.com/ossoolli/Nexum-Core/tree/main/skills/productivity/linear
Command: npx skills add https://github.com/ossoolli/Nexum-Core --skill linear-ossoolli

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Managing Linear issues and projects normally requires switching to the web UI or setting up an MCP server and OAuth flow. This Skill lets you perform full issue and project management directly from the terminal using the Linear GraphQL API with nothing more than curl and a personal API key. ## Core Features & Use Cases - Issue Management: Create, update, search, assign, comment on, and transition issues through workflow states using GraphQL queries or the bundled Python CLI. - Project & Team Operations: List teams, projects, workflow states, labels, and members, and create new projects with team associations. - Document Access: Fetch, list, and search Linear Documents by slugId or UUID, including Markdown content extraction. - Use Case: You need to triage a bug report. Run python3 scripts/linear_api.py create-issue --title "Fix login bug" --team ENG --priority 2, then move it to In Progress with update-status ENG-42 "In Progress" and add an investigation comment, all without leaving your terminal. ## Quick Start Set the LINEAR_API_KEY environment variable and ask the agent to list your assigned Linear issues or create a new issue in a specific team.

Frequently Asked Questions about linear

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a Linear issue from the command line?▼

Use the bundled Python CLI: run `python3 scripts/linear_api.py create-issue --title "Your title" --team ENG --priority 2`. Alternatively, send a GraphQL `issueCreate` mutation with curl to https://api.linear.app/graphql using your LINEAR_API_KEY as the Authorization header.

How do I authenticate with the Linear GraphQL API?▼

Create a personal API key in Linear Settings under Account > Security & access, then set it as the LINEAR_API_KEY environment variable. Pass it directly in the Authorization header with no Bearer prefix.

How do I change a Linear issue status via API?▼

First query the team's workflow states to get the target state's UUID, then call the `issueUpdate` mutation with that stateId. The Python helper's `update-status` command resolves state names to UUIDs automatically.

Can I fetch a Linear document from its URL?▼

Yes. Extract the trailing hex slugId from the document URL and filter the documents collection with `slugId: { eq: ... }`, since the `document(id:)` query only accepts UUIDs. The helper's `get-document` command handles both forms.

What are the Linear API rate limits?▼

Linear allows 5,000 requests per hour and 3,000,000 complexity points per hour per API key. Use `first: N` to limit result sizes and monitor the X-RateLimit-Requests-Remaining response header.

Why does my Linear GraphQL request return HTTP 200 with errors?▼

GraphQL APIs return HTTP 200 even when the query fails, placing error details in the response's `errors` array. Always inspect that array before using the `data` payload.