Agent skill
linear
Create, read, update, and list Linear issues. Use when user requests to create, read, update, or list Linear projects, issues, tickets, or tasks.
Install this agent skill to your Project
npx add-skill https://github.com/thomasmol/opencode-config/tree/main/skill/linear
SKILL.md
What I do
- Create, read, update, and list Linear issues via GraphQL API using CURL commands.
- Always give the title or some short description of the issue when showing it, not just the identifier.
- Be careful with creating and updating issues: confirm the details before submitting.
Authentication
Use LINEAR_API_KEY environment variable or Authorization: <API_KEY> header.
Endpoint: https://api.linear.app/graphql
List issues
If you don't know the team ID, you can list all teams first and then query issues for a specific team.
query Teams {
teams {
nodes {
id
name
}
}
}
query Issues($teamId: String!) {
team(id: $teamId) {
issues {
nodes {
id
identifier
title
description
priority
assignee { name }
state { name }
}
}
}
}
Input:
{"teamId": "9cfb482a-81e3-4154-b5b9-2c805e70a02d"}
Search issues
query SearchIssues($filter: IssueFilter) {
issues(filter: $filter) {
nodes {
id
identifier
title
description
priority
assignee { name }
state { name }
}
}
}
Input (search by title):
{
"filter": {
"title": { "containsIgnoreCase": "bug" }
}
}
Input (search by description):
{
"filter": {
"description": { "containsIgnoreCase": "login" }
}
}
Read issue
query Issue($id: String!) {
issue(id: $id) {
id
identifier
title
description
priority
assignee { id name }
state { id name }
createdAt
updatedAt
}
}
Input:
{"id": "ENG-123"}
Use identifier (ENG-123) or UUID.
Create issue
mutation CreateIssue($teamId: String!, $title: String!, $description: String, $priority: Int) {
issueCreate(
input: {
teamId: $teamId
title: $title
description: $description
priority: $priority
}
) {
success
issue {
id
identifier
title
url
}
}
}
Input:
{
"teamId": "9cfb482a-81e3-4154-b5b9-2c805e70a02d",
"title": "New feature request",
"description": "Add dark mode",
"priority": 2
}
Update issue
mutation UpdateIssue($id: String!, $title: String, $description: String, $stateId: String, $priority: Int) {
issueUpdate(
id: $id
input: {
title: $title
description: $description
stateId: $stateId
priority: $priority
}
) {
success
issue {
id
identifier
title
}
}
}
Input:
{
"id": "ENG-123",
"title": "Updated title",
"priority": 3
}
Use identifier (ENG-123) or UUID for id.
Priority values
- 0: No priority
- 1: Urgent
- 2: High
- 3: Medium
- 4: Low
Error handling
Check errors array in response:
{
"errors": [
{
"message": "Issue not found",
"path": ["issue"]
}
]
}
GraphQL returns 200 with partial data + errors. Always validate success field in mutations and check for errors array.
Example request
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: $LINEAR_API_KEY" \
--data '{"query": "{ viewer { name } }"}' \
https://api.linear.app/graphql
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
ui-design
Opinionated constraints for building better interfaces with agents. Use when user mentions UI, design, UX, or interface.
pr-creation
Create (draft) pull requests on GitHub. Use when user requests to create a pr, pull request, draft pr, draft pull request.
Hono Documentation Search
Use the hono CLI to search and view Hono framework documentation. Use this when planning or building with Hono.
agent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
handoff
Compact the current conversation into a handoff document for another agent to pick up.
Didn't find tool you were looking for?