linear
Manage Linear issues, projects, and teams via the GraphQL API.
Skill by Tommy-yw
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/tommy-yw-linear
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.
About
Use cases: backend, security, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/linear
What's inside
- Skill name
linear- Description
- Manage Linear issues, projects, and teams via the GraphQL API. Create, update, search, and organize issues. Uses API key auth (no OAuth needed). All operations via curl — no dependencies.
- License
- MIT
- Instructions
- 285 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Linear — Issue & Project Management
Manage Linear issues, projects, and teams directly via the GraphQL API using `curl`. No MCP server, no OAuth flow, no extra dependencies.
## Setup
1. Get a personal API key from **Linear Settings > API > Personal API keys**
2. Set `LINEAR_API_KEY` in your environment (via `hermes setup` or your env config)
## API Basics
- **Endpoint:** `https://api.linear.app/graphql` (POST)
- **Auth header:** `Authorization: $LINEAR_API_KEY` (no "Bearer" prefix for API keys)
- **All requests are POST** with `Content-Type: application/json`
- **Both UUIDs and short identifiers** (e.g., `ENG-123`) work for `issue(id:)`
Base curl pattern:
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { id name } }"}' | python3 -m json.tool
```
## Workflow States
Linear uses `WorkflowState` objects with a `type` field. **6 state types:**
| Type | Description |
|------|-------------|
| `triage` | Incoming issues needing review |
| `backlog` | Acknowledged but not yet planned |
| `unstarted` | Planned/ready but not started |
| `started` | Actively being worked on |
| `completed` | Done |
| `canceled` | Won't do |
Each team has its own named states (e.g., "In Progress" is type `started`). To change an issue's status, you need the `stateId` (UUID) of the target state — query workflow states first.
**Priority values:** 0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low
## Common Queries
### Get current user
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { id name email } }"}' | python3 -m json.tool
```
### List teams
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ teams { nodes { id name key } } }"}' | python3 -m json.tool
```
### List workflow states for a team
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ workflowStates(filter: { team: { key: { eq: \"ENG\" } } }) { nodes { id name type } } }"}' | python3 -m json.tool
```
### List issues (first 20)
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ issues(first: 20) { nodes { identifier title priority state { name type } assignee { name } team { key } url } pageInfo { hasNextPage endCursor } } }"}' | python3 -m json.tool
```
### List my assigned issues
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { assignedIssues(first: 25) { nodes { identifier title state { name type } priority url } } } }"}' | python3 -m json.tool
```
### Get a single issue (by identifier like ENG-123)
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ issue(id: \"ENG-123\") { id identifier title description priority state { id name type } assignee { id name } team { key } project { name } labels { nodes { name } } comments { nodes { body user { name } createdAt } } url } }"}' | python3 -m json.tool
```
### Search issues by text
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ issueSearch(query: \"bug login\", first: 10) { nodes { identifier title state { name } assignee { name } url } } }"}' | python3 -m json.tool
```
### Filter issues by state type
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ issues(filter: { state: { type: { in: [\"started\"] } } }, first: 20) { nodes { identifier title state { name } assignee { name } } } }"}' | python3 -m json.tool
```
### Filter by team and assignee
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ issues(filter: { team: { key: { eq: \"ENG\" } }, assignee: { email: { eq: \"user@example.com\" } } }, first: 20) { nodes { identifier title state { name } priority } } }"}' | python3 -m json.tool
```
### List projects
```bash
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \From Tommy-yw/RunbookHermes, MIT.
More from Tommy-yw/RunbookHermes
- 0.609score
fastmcp
Tommy-yw
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
ascii-video
Tommy-yw
Production pipeline for ASCII art video — any format.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
fitness-nutrition
Tommy-yw
Gym workout planner and nutrition tracker.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
neuroskill-bci
Tommy-yw
Connect to a running NeuroSkill instance and incorporate the user's real-time cognitive and emotional state (focus, relaxation, mood, cognitive load…
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
concept-diagrams
Tommy-yw
Generate flat, minimal light/dark-aware SVG diagrams as standalone HTML files, using a unified educational visual language with 9 semantic color ramps…
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
hermes-atropos-environments
Tommy-yw
Build, test, and debug Hermes Agent RL environments for Atropos training.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
baoyu-infographic
Tommy-yw
Generate professional infographics with 21 layout types and 21 visual styles.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
manim-video
Tommy-yw
Production pipeline for mathematical and technical animations using Manim Community Edition.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
drug-discovery
Tommy-yw
Pharmaceutical research assistant for drug discovery workflows.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
godmode
Tommy-yw
Jailbreak API-served LLMs using G0DM0D3 techniques — Parseltongue input obfuscation (33 techniques), GODMODE CLASSIC system prompt templates, ULTRAPLINIAN…
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
oss-forensics
Tommy-yw
Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
baoyu-comic
Tommy-yw
Knowledge comic creator supporting multiple art styles and tones.
SkillCFreshness: C★ 510Claude Code +9
Signals
- Stars
- 510
- Forks
- 36
- Open issues
- 2
- Last commit (this folder)
- May 1, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Tommy-yw/RunbookHermes
- Website
- kheish.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from Tommy-yw
- 0.609score
godmode
Tommy-yw
Jailbreak API-served LLMs using G0DM0D3 techniques — Parseltongue input obfuscation (33 techniques), GODMODE CLASSIC system prompt templates, ULTRAPLINIAN…
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
manim-video
Tommy-yw
Production pipeline for mathematical and technical animations using Manim Community Edition.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
baoyu-infographic
Tommy-yw
Generate professional infographics with 21 layout types and 21 visual styles.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
drug-discovery
Tommy-yw
Pharmaceutical research assistant for drug discovery workflows.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
oss-forensics
Tommy-yw
Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.
SkillCFreshness: C★ 510Claude Code +9 - 0.609score
concept-diagrams
Tommy-yw
Generate flat, minimal light/dark-aware SVG diagrams as standalone HTML files, using a unified educational visual language with 9 semantic color ramps…
SkillCFreshness: C★ 510Claude Code +9
Cite this page
linear skill. Agent Mart. https://agentmart.dev/skills/tommy-yw-linear (last updated 2026-10-24)