Skip to content
Agentmart
Submit a tool
This entry duplicates linear, which is the one we list in search.

linear

Manage Linear issues, projects, and cycles via the Linear GraphQL API

Skill by taracodlabs

IndexedApache-2.0★ 863
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/taracodlabs-linear-5d4471

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Manage Linear issues, projects, and cycles via the Linear GraphQL API

Use cases: backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
linear
Description
Manage Linear issues, projects, and cycles via the Linear GraphQL API
License
Apache-2.0
Instructions
99 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • skill.json

SKILL.md (first lines)

# Linear Issue Tracking

Query and mutate Linear data — issues, projects, cycles, and teams — using the Linear GraphQL API. Requires `LINEAR_API_KEY` set as an environment variable.

## When to Use

- User wants to list open issues in a Linear team or project
- User wants to create a new Linear issue
- User wants to update issue status or priority
- User wants to see issues assigned to them
- User wants to look up current cycle/sprint progress

## How to Use

### 1. Set API key

Generate a Personal API key at https://linear.app/settings/api — select `read` and `write` scopes.

```powershell
$env:LINEAR_API_KEY = "lin_api_..."
```

### 2. Run a GraphQL query helper

All Linear API calls are POST to `https://api.linear.app/graphql`.

```powershell
function Invoke-Linear($query, $variables = @{}) {
  $body    = @{ query = $query; variables = $variables } | ConvertTo-Json -Depth 10
  $headers = @{ "Authorization" = $env:LINEAR_API_KEY; "Content-Type" = "application/json" }
  (Invoke-RestMethod -Uri "https://api.linear.app/graphql" -Method Post -Headers $headers -Body $body).data
}
```

### 3. List my assigned issues

```powershell
$q = '{ viewer { assignedIssues(first: 20, filter: { state: { type: { in: ["started","unstarted"] } } }) { nodes { identifier title priority state { name } } } } }'
(Invoke-Linear $q).viewer.assignedIssues.nodes | Format-Table identifier, title, priority
```

### 4. List issues in a team

```powershell
$q = 'query($key:String!) { team(key:$key) { issues(first:30, filter:{state:{type:{in:["started","unstarted"]}}}) { nodes { identifier title assignee { name } state { name } } } } }'
(Invoke-Linear $q @{ key = "ENG" }).team.issues.nodes | Format-Table identifier, title
```

### 5. Create a new issue

```powershell
# First get teamId
$teamQ = '{ teams { nodes { id key name } } }'
$teams = (Invoke-Linear $teamQ).teams.nodes
$teamId = ($teams | Where-Object key -eq "ENG").id

$mutation = 'mutation($input:IssueCreateInput!) { issueCreate(input:$input) { issue { identifier title url } } }'
$vars = @{ input = @{ teamId = $teamId; title = "Fix login timeout bug"; description = "Users are being logged out after 5 min of inactivity."; priority = 2 } }
(Invoke-Linear $mutation $vars).issueCreate.issue
```

### 6. Update issue state

```powershell
# Get state IDs for the team first
$stateQ = 'query($key:String!) { team(key:$key) { states { nodes { id name } } } }'
$states = (Invoke-Linear $stateQ @{ key = "ENG" }).team.states.nodes
$doneId = ($states | Where-Object name -eq "Done").id

$mutation = 'mutation($id:String! $stateId:String!) { issueUpdate(id:$id input:{stateId:$stateId}) { issue { identifier state { name } } } }'
(Invoke-Linear $mutation @{ id = "ENG-42"; stateId = $doneId }).issueUpdate.issue
```

### 7. List current cycle

```powershell
$q = 'query($key:String!) { team(key:$key) { activeCycle { name startsAt endsAt progress issues(first:50) { nodes { identifier title state { name } } } } } }'
(Invoke-Linear $q @{ key = "ENG" }).team.activeCycle | Select-Object name, progress
```

## Examples

**"Show me all my open Linear issues"**
→ Use steps 2–3 to list viewer's assigned unstarted/in-progress issues.

**"Create a Linear issue: 'Update onboarding flow' in the PRODUCT team"**
→ Use step 5 — fetch team ID for PRODUCT, then create with given title.

**"What's the progress on the current sprint?"**
→ Use step 7 — ask user for their team key, then show activeCycle progress.

## Cautions

- Linear API keys are personal — they act as the user who created them
- Priority values: 0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low
- Issue IDs look like `ENG-42` but mutations need the UUID — always fetch UUID from the issues list
- GraphQL depth limit is ~6 levels — avoid deeply nested queries

From taracodlabs/aiden, Apache-2.0.

More from taracodlabs/aiden

Signals

Stars
863
Forks
150
Open issues
12
Last commit (this folder)
May 3, 2026 (5 months ago)
Last release
Oct 19, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from taracodlabs

Cite this page

linear skill. Agent Mart. https://agentmart.dev/skills/taracodlabs-linear-5d4471 (last updated 2026-10-24)