一键导入
linear
Query and manage Linear issues. Use when the user asks about issues, tasks, projects, or wants to create/update Linear items.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Query and manage Linear issues. Use when the user asks about issues, tasks, projects, or wants to create/update Linear items.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | linear |
| description | Query and manage Linear issues. Use when the user asks about issues, tasks, projects, or wants to create/update Linear items. |
| user-invocable | true |
Use ./linear.sh in the project root to interact with the Linear API. The script takes a GraphQL query as an argument or via stdin. The LINEAR_API_KEY env var must be set (via .env + direnv).
./linear.sh '{ projects(first: 20) { nodes { id name state } } }'
./linear.sh '{ project(id: "PROJECT_ID") { issues(first: 50) { nodes { identifier title state { name } priority } } } }'
./linear.sh '{ issue(id: "ISSUE_ID") { identifier title description state { name } labels { nodes { name } } children { nodes { identifier title state { name } } } } }'
./linear.sh '{ issueSearch(query: "search terms", first: 20) { nodes { identifier title state { name } } } }'
./linear.sh 'mutation { issueCreate(input: { teamId: "TEAM_ID", title: "Issue title", description: "Description" }) { issue { identifier title url } } }'
./linear.sh 'mutation { issueCreate(input: { teamId: "TEAM_ID", title: "Sub-issue title", parentId: "PARENT_ISSUE_ID" }) { issue { identifier title url } } }'
./linear.sh 'mutation { issueUpdate(id: "ISSUE_ID", input: { stateId: "STATE_ID" }) { issue { identifier title state { name } } } }'
./linear.sh '{ teams(first: 10) { nodes { id name key } } }'
./linear.sh '{ workflowStates(first: 50) { nodes { id name type team { key } } } }'
For mutations with markdown content (mermaid diagrams, code blocks, etc.), use file mode to avoid escaping issues. Write a markdown file with YAML frontmatter and pass it to ./linear.sh --file:
---
mutation: issue-create
teamId: TEAM_UUID
projectId: PROJECT_UUID
title: Issue title
priority: 1
---
Markdown description here, with ```mermaid``` blocks and anything else.
---
mutation: issue-update
id: ISSUE_UUID
---
Updated markdown description.
---
mutation: project-create
name: Project name
description: Short description (255 char limit)
teamIds: TEAM_UUID
---
Long-form project content (unlimited markdown).
---
mutation: project-update
id: PROJECT_UUID
description: Short description (255 char limit)
---
Long-form project content (unlimited markdown).
Frontmatter keys map directly to GraphQL input fields. The markdown body becomes description for issues or content for projects. Integer values are auto-detected.
Workflow: Use the Write tool to create the temp file, then call ./linear.sh in a separate Bash call. This keeps the bash command starting with ./linear.sh so the permission allow rule matches.
# Step 1: Use the Write tool to create /tmp/my-issue.md
# Step 2: Run in Bash:
./linear.sh --file /tmp/my-issue.md | jq .
./linear.sh — never call the Linear API directly via curl (sandbox restrictions)jq for readable formatting: ./linear.sh '...' | jq .mutation { ... } syntax--file modeTEAM-123, IDs are UUIDsdescription (255 char limit) and content (unlimited markdown)description (unlimited markdown, no separate content field)