← marketplace
engineersplatformsha:d38f497cdcad1897manual
linear-claude-skill
Use when driving Linear from Claude Code — MCP tools plus GraphQL automation, sub-issue hierarchies, subagent worktrees, and an esbuild-compiled CLI for 18x faster startup.
Install confidence
curl --create-dirs -fsSL https://skillmake.xyz/i/linear-claude-skill -o ~/.claude/skills/linear-claude-skill/SKILL.md
Pinned content
sha:d38f497cdcad1897
Generated with
manual
Source
github.com
The file served at /api/marketplace/linear-claude-skill-d38f497c/raw matches this hash. Inspect before install, then copy the command.
4,926 chars · ~1,232 tokens
--- name: linear-claude-skill description: Use when driving Linear from Claude Code — MCP tools plus GraphQL automation, sub-issue hierarchies, subagent worktrees, and an esbuild-compiled CLI for 18x faster startup. source: https://github.com/wrsmith108/linear-claude-skill generated: 2026-05-17T04:18:28.217Z category: platform audience: engineers --- ## When to use - Managing Linear issues, projects, and initiatives from Claude Code - Creating sub-issues, parents, and initiative trees programmatically - Bulk-syncing issue states across many tickets at once - Posting Linear project status reports with health (onTrack/atRisk/offTrack) - Attaching external resource links to projects or initiatives - Spawning subagents to update issues in parallel without blocking the main thread - Avoiding deprecated community Linear MCP servers ## Key concepts ### Official MCP server (mcp.linear.app) The skill standardizes on Linear's official MCP server hosted at mcp.linear.app and explicitly warns against deprecated community servers: 'Always use Linear's official MCP server...Do NOT use deprecated community servers like linear-mcp-server (npm).' This avoids stale schemas and broken auth flows. ### GraphQL automation layer On top of MCP, the skill exposes direct GraphQL access for operations MCP does not cover well: project status mutations using workspace-specific status UUIDs, external resource links attached to projects/initiatives, project milestones for Definition-of-Done tracking, and status report creation with health indicators. ### Subagent worktree workflow Long-running sync jobs spawn subagents via Task tools so the primary agent stays responsive. Pattern: kick off 'Update ENG-432,433,434 to Done' as a subagent, keep coding in the main thread, and let the subagent reconcile state asynchronously. ### esbuild pre-compilation Running npm run build pre-compiles the CLI with esbuild and yields '18x faster CLI startup (~50ms vs ~1s).' If the build artifact is missing, a shared runner script transparently falls back to tsx so functionality is preserved without manual intervention. ### description vs content fields Linear projects carry two text fields the skill keeps distinct: description (max 255 chars, shown in list views) and content (unlimited, rendered in the main project panel). Conflating them is a common source of truncated or duplicated copy. ### Workspace-specific status UUIDs Status IDs (e.g., 'Done', 'In Review') are not global — they vary per Linear workspace and must be queried per environment before mutations. The skill bakes this lookup into its ops commands so updates do not hardcode the wrong UUID. ## API reference ``` Installation ``` Clone the skill into ~/.claude/skills/linear, install dependencies, validate config, optionally build the fast CLI. ``` git clone <repo> ~/.claude/skills/linear cd ~/.claude/skills/linear npm install npm run setup npm run build # optional, enables esbuild fast path ``` ``` npm run ops -- create-initiative <name> ``` Create a Linear initiative from the CLI. ``` npm run ops -- create-initiative "My Project" ``` ``` npm run ops -- create-sub-issue <parent> <title> ``` Create a sub-issue under an existing Linear issue. ``` npm run ops -- create-sub-issue ENG-100 "Add tests" ``` ``` npm run ops -- set-parent <child> <parent> ``` Re-parent an existing issue under another issue. ``` npm run ops -- set-parent ENG-100 ENG-101 ``` ``` npm run ops -- status <state> <id...> ``` Move one or more issues to a named workflow state. State name is resolved to the workspace-specific UUID at call time. ``` npm run ops -- status Done ENG-123 ``` ``` npm run sync -- --issues <ids> --state <name> ``` Bulk-sync issue states. Designed to be invoked as a subagent so the main agent does not block. ``` npm run sync -- --issues ENG-432,ENG-433 --state Done ``` ## Gotchas - ALWAYS check Linear before creating projects or issues — the skill explicitly warns about duplicate creation when agents skip discovery - Issue descriptions may be outdated or speculative — verify against the codebase before acting, since APIs or features may already be implemented - description (255 chars, list view) and content (unlimited, main panel) are different fields; mixing them is a common bug - Status UUIDs are workspace-specific — never hardcode them, always resolve by name per workspace - Do not use deprecated community servers like linear-mcp-server (npm); the official MCP at mcp.linear.app is the only supported path - Without npm run build, the CLI runs through tsx (~1s startup); run the build step before driving many operations in a row - Image uploads go to Linear's S3 storage — large attachments and rate limits apply, batch them when bulk-syncing --- Generated by SkillMake from https://github.com/wrsmith108/linear-claude-skill on 2026-05-17T04:18:28.217Z. Verify against source before relying on details.
File: ~/.claude/skills/linear-claude-skill/SKILL.md