106 lines
3.2 KiB
Markdown
106 lines
3.2 KiB
Markdown
---
|
|
name: linear
|
|
description: Access Linear issue tracker - search, view, create, update issues, list teams/projects, and manage comments. Use when the user asks about Linear issues, tasks, tickets, or project management in Linear.
|
|
---
|
|
|
|
# Linear
|
|
|
|
Manage Linear issues, projects, and teams via the Linear SDK.
|
|
|
|
## Setup
|
|
|
|
Run once before first use:
|
|
|
|
```bash
|
|
cd {baseDir} && npm install
|
|
```
|
|
|
|
Requires a `LINEAR_API_KEY` environment variable. Generate one at: https://linear.app/settings/api (Personal API keys).
|
|
|
|
Set it in your shell profile or pi settings:
|
|
|
|
```bash
|
|
export LINEAR_API_KEY=lin_api_...
|
|
```
|
|
|
|
## Current User
|
|
|
|
```bash
|
|
node {baseDir}/linear-me.js # Show authenticated user
|
|
node {baseDir}/linear-me.js --issues # Show user + their active issues
|
|
```
|
|
|
|
## Search Issues
|
|
|
|
```bash
|
|
node {baseDir}/linear-search.js "query" # Text search
|
|
node {baseDir}/linear-search.js "query" -n 20 # More results
|
|
node {baseDir}/linear-search.js "query" --team ENG # Filter by team
|
|
node {baseDir}/linear-search.js "query" --state "In Progress" # Filter by state
|
|
```
|
|
|
|
## List Issues (with filters)
|
|
|
|
```bash
|
|
node {baseDir}/linear-issues.js # All recent issues
|
|
node {baseDir}/linear-issues.js --team ENG # By team
|
|
node {baseDir}/linear-issues.js --state "In Progress" # By state
|
|
node {baseDir}/linear-issues.js --assignee me # My issues
|
|
node {baseDir}/linear-issues.js --assignee "John" # By assignee name
|
|
node {baseDir}/linear-issues.js --label "Bug" # By label
|
|
node {baseDir}/linear-issues.js --project "Q1 Goals" # By project
|
|
node {baseDir}/linear-issues.js --team ENG --state Todo -n 50 # Combined filters
|
|
```
|
|
|
|
## View Issue Details
|
|
|
|
```bash
|
|
node {baseDir}/linear-issue.js ATT-1234 # Full issue details
|
|
node {baseDir}/linear-issue.js ATT-1234 --comments # Include comments
|
|
```
|
|
|
|
## Create Issue
|
|
|
|
```bash
|
|
node {baseDir}/linear-create.js --team ENG --title "Fix login bug"
|
|
node {baseDir}/linear-create.js --team ENG --title "New feature" --description "Details here" --state Todo --priority 2 --assignee me --label "Feature"
|
|
node {baseDir}/linear-create.js --team ENG --title "Sub-task" --parent ATT-100
|
|
```
|
|
|
|
Priority values: 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
|
|
|
|
## Update Issue
|
|
|
|
```bash
|
|
node {baseDir}/linear-update.js ATT-1234 --state "In Progress"
|
|
node {baseDir}/linear-update.js ATT-1234 --assignee me --priority 2
|
|
node {baseDir}/linear-update.js ATT-1234 --title "New title" --description "Updated desc"
|
|
```
|
|
|
|
## Add Comment
|
|
|
|
```bash
|
|
node {baseDir}/linear-comment.js ATT-1234 "This is done in PR #567"
|
|
```
|
|
|
|
## List Teams
|
|
|
|
```bash
|
|
node {baseDir}/linear-teams.js
|
|
```
|
|
|
|
## List Projects
|
|
|
|
```bash
|
|
node {baseDir}/linear-projects.js # All projects
|
|
node {baseDir}/linear-projects.js --team ENG # By team
|
|
```
|
|
|
|
## Tips
|
|
|
|
- Use `--assignee me` to filter by the authenticated user
|
|
- Issue identifiers follow the pattern `TEAM-NUMBER` (e.g. `ATT-1234`, `ENG-567`)
|
|
- Descriptions support markdown formatting
|
|
- State names are case-insensitive (e.g. "todo", "Todo", "TODO" all work)
|
|
- When creating issues, the team key is required; use `linear-teams.js` to find available teams
|