본문으로 건너뛰기
cccskills
무료GitHub에 공개

linear

Manages Linear issues, teams, and projects via CLI. Lists issues, creates tasks, views details, links issues, and runs GraphQL queries. Must use for "my Linear issues", "create Linear task", "link issues in Linear", "Linear API query", or any Linear project management request.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Linear
설치 방법 보기

포함된 파일(5)

  • SKILL.md9.3 KB
  • graphql-recipes.md6.0 KB
  • QA.md11.0 KB
  • skill-report.json229.9 KB
  • troubleshooting.md5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Linear CLI

Interacts with Linear for issue tracking and project management using the linear command.

Scope

  • Use for Linear issue/project/teams management via the CLI or GraphQL (linear gql).
  • Prefer built-in commands over raw GraphQL unless functionality is missing.
  • Keep defaults in sync with the user's config; do not hard-code team IDs/outputs.

Install & Setup

  • Install: npm install -g @0xbigboss/linear-cli
  • Auth: linear auth set or set LINEAR_API_KEY
  • Defaults: linear config set default_team_id TEAM_KEY, linear config set default_output json|table, linear config set default_state_filter completed,canceled
  • Inspect or reset defaults: linear config show, linear config unset default_output
  • Config path: ~/.config/linear/config.json (override with --config PATH or LINEAR_CONFIG)

Prerequisites

  • CLI installed and on PATH
  • Valid Linear API key available
  • Team defaults set or provided per command (team key/UUID)

Hygiene

  • Branches: Name as {TICKET}-{short-name} (e.g., ENG-123-fix-auth); prefer git worktrees for parallel work
  • Commits: Use conventional commits; ticket ID in body or trailer, not subject
  • Assignment: Assign yourself when starting work (linear issue update ENG-123 --assignee me --yes)
  • Sub-issues: Set parent to associate related work (requires UUID: linear issue update ENG-123 --parent PARENT_UUID --yes)
  • Scope creep: Create separate issues for discovered work; link with blocks relation (linear issue link ENG-123 --blocks ENG-456 --yes)
  • Cycles/projects: Ask user preference when creating issues

Quick Recipes

List my issues

linear issues list --team TEAM_KEY --assignee me --human-time

Search issues

linear search "keyword" --team TEAM_KEY --limit 10

Create an issue

linear issue create --team TEAM_KEY --title "Fix bug" --yes
# Returns identifier (e.g., ENG-123)

View issue details

linear issue view ENG-123

Download attachments from issues

# Download a specific file (requires LINEAR_API_KEY)
linear download "https://uploads.linear.app/..." --output screenshot.png

# Auto-download attachments when viewing an issue
linear issue view ENG-123 --attachment-dir /tmp

# Disable auto-download
linear issue view ENG-123 --attachment-dir ""

Get issue as JSON for processing

linear issue view ENG-123 --json

Get issue with full context (for agents/analysis)

linear issue view ENG-123 --fields identifier,title,state,assignee,priority,url,description,parent,sub_issues,comments --json

List all teams

linear teams list

Verify authentication

linear auth test

List projects

linear projects list --limit 10

View or change CLI defaults

linear config show
linear config set default_output json
linear config unset default_state_filter

Add a comment to an issue

linear issue comment ENG-123 --body "Comment text here" --yes

# Or from a file/stdin
cat notes.md | linear issue comment ENG-123 --body-file - --yes

Create and manage a project

# Create project (team UUID required)
linear project create --team TEAM_UUID --name "My Project" --state planned --yes

# Update project state
linear project update PROJECT_ID --state started --yes

# Add issue to project
linear project add-issue PROJECT_ID ISSUE_UUID --yes

Command Reference

CommandPurpose
linear issues listList issues with filters
linear search "keyword"Search issues by text
linear issue view IDView single issue
linear issue createCreate new issue
linear issue update IDUpdate issue (assign, state, priority, parent*)
linear issue link IDLink issues (blocks, related, duplicate)
linear issue comment IDAdd comment to issue
linear issue delete IDArchive an issue
linear projects listList projects
linear project view IDView project details
linear project createCreate new project
linear project update IDUpdate project (state, name, dates)
linear project delete IDArchive a project
linear project add-issueAdd issue to project
linear project remove-issueRemove issue from project
linear teams listList available teams
linear meShow current user
linear gqlRun raw GraphQL
linear downloadDownload uploads.linear.app attachments
linear help CMDCommand-specific help

*--parent requires UUIDs, not identifiers. See Finding IDs.

Common Flags

  • --team ID\|KEY - Specify team (required for most commands)
  • --json - Output as JSON
  • --yes - Confirm mutations without prompt
  • --human-time - Show relative timestamps
  • --fields LIST - Select specific fields
  • --help - Show command help

Workflow: Creating and Linking Issues

Note: --parent requires UUIDs. Get UUID with linear issue view ID --json | jq -r '.issue.id'

Progress:
- [ ] List teams to get TEAM_KEY: `linear teams list`
- [ ] Create parent issue: `linear issue create --team KEY --title "Epic" --yes`
- [ ] Create child issue: `linear issue create --team KEY --title "Task" --yes`
- [ ] Get parent UUID: `linear issue view PARENT_ID --json | jq -r '.issue.id'`
- [ ] Set parent (UUID required): `linear issue update CHILD_ID --parent PARENT_UUID --yes`
- [ ] Create another issue to link: `linear issue create --team KEY --title "Blocked" --yes`
- [ ] Link blocking issue: `linear issue link ISSUE_ID --blocks OTHER_ID --yes`
- [ ] Verify: `linear issue view ISSUE_ID --json`

Common Gotchas

ProblemCauseSolution
Empty resultsNo team specifiedAdd --team TEAM_KEY
401 UnauthorizedInvalid/missing API keyRun linear auth test
Mutation does nothingMissing confirmationAdd --yes flag
Can't find issueWrong ID or missing accessissue view accepts identifier or UUID; verify spelling and permissions
--parent failsUsing identifier--parent flag requires UUID, not identifier

ID format summary: Most commands accept identifiers (ENG-123). Exception: --parent requires UUIDs.

Advanced Operations

For operations not covered by built-in commands, use linear gql with GraphQL:

  • Add attachments - See graphql-recipes.md → "Attach URL to Issue"
  • Upload files - See graphql-recipes.md → "Upload File"

Note: Adding comments is now available via linear issue comment. Setting parent is available via issue update --parent, but requires UUIDs. Use linear issue view ID --json to get UUIDs.

Finding IDs

Important: issue update --parent requires UUIDs.

# Get issue UUID from identifier
linear issue view ENG-123 --json | jq -r '.issue.id'

# Current user UUID
linear me --json | jq -r '.viewer.id'

# All teams with UUIDs
linear teams list --json

# Issue full details including UUID
linear issue view ENG-123 --json

Or in Linear app: Cmd/Ctrl+K → "Copy model UUID"

JSON Output Structures

Commands with --json return nested structures. Use these jq paths:

CommandRoot pathItems path
issue view ID.issueN/A (single object)
issue view ID --fields ....N/A (flat object of selected fields)
issues list.issues.issues.nodes[]
project view ID.projectN/A (single object)
projects list.projects.projects.nodes[]
teams list.teams.teams.nodes[]
me.viewerN/A (single object)
search.issues.issues.nodes[]

Null handling: Many fields can be null (name, description, dates, assignee). Use null-safe filters.

jq Patterns

# List all projects (correct path)
linear projects list --json | jq '.projects.nodes[]'

# Filter projects by name (null-safe)
linear projects list --json | jq '.projects.nodes[] | select(.name) | select(.name | ascii_downcase | contains("keyword"))'

# Get project names as array
linear projects list --json | jq '[.projects.nodes[].name]'

# Filter issues by title
linear issues list --team TEAM --json | jq '.issues.nodes[] | select(.title | ascii_downcase | contains("bug"))'

# Extract specific fields
linear issues list --team TEAM --json | jq '.issues.nodes[] | {id: .identifier, title, state: .state.name}'

# Get issue UUID from identifier
linear issue view ENG-123 --json | jq -r '.issue.id'

Common mistakes:

  • .[] on root - use .projects.nodes[] or .issues.nodes[]
  • test("pattern"; "i") on null - filter nulls first with select(.field)
  • Escaping != in shells - use select(.field) instead of select(.field != null)

Reference Files

  • graphql-recipes.md - GraphQL mutations for attachments, relations, comments, file uploads
  • troubleshooting.md - Common errors and debugging steps

External Links

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Trigger for: explaining current FAR, DFARS, or agency-supplement text; determining documented acquisition-policy status for an agency and FAR part; comparing codified text, RFO model text, and agency deviations; tracing acquisition rulemaking; finding procurement comment periods; analyzing public comments; refreshing prior policy analysis; or producing an Acquisition Policy Impact Brief. Use published federal sources and supplied policy documents without making legal or procurement-specific applicability determinations. Do not use for clause selection, market research execution, opportunities, pricing, grants, or cooperative agreements.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Systematic framework for extracting actionable items from documents and organizing them into prioritized, trackable checklists. Use when converting reports, meeting notes, audits, or any document with embedded action items into structured TODO lists.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Run AI apps via inference.sh CLI - image generation, video creation, LLMs, search, 3D, Twitter automation. Models: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter, and many more. Use when running AI apps, generating images/videos, calling LLMs, web search, or automating Twitter. Triggers: inference.sh, infsh, ai model, run ai, serverless ai, ai api, flux, veo, claude api, image generation, video generation, openrouter, tavily, exa search, twitter api, grok

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Agile ceremonies and sprint management specialist. Use when running standups, retrospectives, sprint planning, or tracking sprint progress.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

aiskillstore의 스킬 모두 보기

이 스킬의 문제 신고