linear
Manage Linear issues: Create issues, update issues, search issues. Best when combined with GitHub CLI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Manage Linear issues: Create issues, update issues, search issues. Best when combined with GitHub CLI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Web search, content extraction, and product image discovery via real browser. Searches with Google, Bing, DuckDuckGo, or Brave (auto-fallback). Extracts page content as markdown including image URLs. Handles SPAs, anti-bot detection, and logged-in sessions. Requires one-time browser setup.
Analyze past session files to find recurring AI agent issues and fix them via AGENTS.md updates, new skills, or code/infra changes. Use when asked to improve agent workflow, find recurring problems, optimize AGENTS.md, create skills from session patterns, or understand what went wrong across sessions.
Use tmux instead of bash tool to run commands that take more than ~30 seconds, like bulk operations, db migrations, dev servers.
Gather recent Slack messages, read threads, and send replies. Use when the user asks about Slack activity or wants to interact with Slack.
Use when AWS CLI commands fail with SSO token expiration errors like "Token has expired", "SSO session has expired", or "Error when retrieving credentials".
| name | linear |
| description | Manage Linear issues: Create issues, update issues, search issues. Best when combined with GitHub CLI |
Track your work, link PRs to issues, update issues as you progress.
npm install -g linearis
Check if authentication is configured:
# Check file first (preferred)
cat ~/.linear_api_token 2>/dev/null || echo "No token file"
# Or environment variable
echo $LINEAR_API_TOKEN
If neither exists, guide the user:
echo "lin_api_..." > ~/.linear_api_token
Or add to shell profile: export LINEAR_API_TOKEN="lin_api_..."Before you use this skill for anything, run linearis usage to get an overview of all available commands. Note that linearis output is always JSON.
On first use, also fetch user context to enable filtering by assignee and team:
curl -s -X POST https://api.linear.app/graphql \
-H "Content-Type: application/json" \
-H "Authorization: $LINEAR_API_TOKEN" \
-d '{"query": "{ viewer { id name teamMemberships { nodes { team { key name } } } } }"}' | jq
This gives you:
--assignee filtering ("show MY issues")ENG, DEV for --team filteringAlso fetch available labels:
linearis labels list | jq '.labels[].name'
Keep this context for the session.
Always link PRs to Linear issues: this creates traceability and auto-updates issue status when PRs merge.
Linear's GitHub integration handles this automatically when the issue ID appears in your branch name or PR title. Setup guide
When you begin work on an issue in a branch, make sure to bake the issue ID into your branch name:
# Get the branch name from Linear (includes issue ID)
linearis issues read ENG-123 | jq -r '.branchName'
# → feature/eng-123-fix-login-timeout
# Create the branch
git checkout -b $(linearis issues read ENG-123 | jq -r '.branchName')
Reinforce the link by including the issue ID in your PR:
# Use magic "Closes" in the PR body
gh pr create --title "Fix login timeout" --body "Description here...
Closes ENG-123"
Already created a PR without the issue ID? Link it manually:
linearis comments create ENG-123 --body "PR: $(gh pr view --json url -q .url)"
The daily driver. Show issues assigned to the user, filtered by status.
# Active work (in progress + todo)
linearis issues search "" --assignee <user-id> --status "In Progress,Todo"
# Only in progress, scoped to the ENG team
linearis issues search "" --assignee <user-id> --status "In Progress" --team ENG
Present results clearly: issue ID, title, status, team.
Quick capture of new work. The --team flag is required.
# Simple (assigned to yourself)
linearis issues create "Fix login timeout" --team ENG -a <user-id> -d "Users report session expires"
# With labels and priority (1=urgent, 4=low)
linearis issues create "Fix login timeout" --team ENG \
-d "Users report session expires too quickly" \
--labels "Bug" --priority 1
# Multi-line description using bash $'...' syntax
linearis issues create "Refactor auth module" --team ENG \
-d $'## Problem\n\nAuth code is tangled.\n\n## Proposal\n\nExtract to separate service.'
# Sub-issue (use --parent-ticket)
linearis issues create "Write auth tests" --team ENG --parent-ticket ENG-123
Before creating, search to check for duplicates, and broader context.
Keep issues in sync with your work. Read issues before writing: never lose information.
Before updating, understand what's there:
# Full issue with description and comments
linearis issues read ENG-123
Summarize key information: title, status, assignee, description, recent comments, parent/child issues.
Move issues through workflow stages:
linearis issues update ENG-123 --status "In Progress"
linearis issues update ENG-123 --status "In Review"
linearis issues update ENG-123 --status "Done"
To update issues, update progress, checkboxes, assumptions, you must use a sequence of read → modify → write to ensure you don't lose information or details.
Use these three commands in sequence:
# Get a fresh view of issue and comments
linearis issues read ENG-123
# Modify whatever after you read
linear issues update ENG-123 --description "My new description..."
You can also add updates via commenting:
# Progress note
linearis comments create ENG-123 --body "This issue doesn't make any sense, sorry"
Use comments when:
Use description updates when:
Combine updates to issue description and adding comments as you see fit.
Search issues by title and description:
# Search by keyword (returns array, not object with .issues)
linearis issues search "login timeout" --team ENG | jq -r '.[] | "\(.identifier) [\(.state.name)] \(.title)"'
Fallback if keyword search returns nothing: List all team issues, then filter locally:
# Step 1: Fetch all team issues to a temp file
linearis issues search "" --team ENG > /tmp/issues.json
# Step 2: List identifier, title, status
jq -r '.[] | "\(.identifier) [\(.state.name)] \(.title)"' /tmp/issues.json
# Step 3: Read the specific issue you need
linearis issues read ENG-123
Note: searching without --team searches ALL workspace teams.
See active initiatives and their status.
linearis projects list
Projects can be used with --project when creating issues or filtering searches.