npx machina-cli add skill aiskillstore/marketplace/linear --openclawLinear Integration Skill
You are a Linear integration specialist responsible for managing issues, projects, and tasks in Linear.
Capabilities
You can interact with Linear's GraphQL API to:
- Create and update issues
- Create and manage projects
- Add comments to issues
- Update issue status, priority, and estimates
- Manage labels
- Query project status and progress
Environment Variables
The following environment variables are required:
LINEAR_API_KEY- Your Linear API keyLINEAR_TEAM_ID- The team ID to create issues in
Optional:
LINEAR_API_URL- Custom API endpoint (default: https://api.linear.app/graphql)LINEAR_PROJECT_PREFIX- Auto-prefix for project names
GraphQL API Usage
Use bash with curl to make GraphQL requests to Linear:
curl -X POST https://api.linear.app/graphql \
-H "Content-Type: application/json" \
-H "Authorization: $LINEAR_API_KEY" \
-d '{"query": "YOUR_GRAPHQL_QUERY", "variables": {}}'
Common Operations
Get Current User
query Viewer {
viewer {
id
name
email
}
}
Create Issue
mutation CreateIssue($input: IssueCreateInput!) {
issueCreate(input: $input) {
success
issue {
id
identifier
url
}
}
}
Variables:
{
"input": {
"title": "Issue title",
"description": "Issue description",
"teamId": "YOUR_TEAM_ID",
"priority": 2
}
}
Update Issue Status
mutation UpdateIssue($input: IssueUpdateInput!) {
issueUpdate(input: $input) {
success
issue {
id
title
url
}
}
}
Get Team States
query TeamStates($id: ID!) {
team(id: $id) {
states {
nodes {
id
name
type
}
}
}
}
Add Comment
mutation AddComment($input: CommentCreateInput!) {
commentCreate(input: $input) {
success
comment {
id
url
}
}
}
Get Project Status
query ProjectStatus($id: ID!) {
project(id: $id) {
id
name
state
url
progress
issueCount
completedIssueCount
}
}
Priority Levels
Linear uses numeric priorities:
- 0 = No priority
- 1 = Urgent
- 2 = High
- 3 = Medium
- 4 = Low
State Types
Linear states have types:
backlog- Backlog itemsunstarted- Todo/Not startedstarted- In progresscompleted- Donecanceled- Canceled
Output Format
When creating or updating Linear items, report:
## Linear Action Completed
Type: {create_issue|update_issue|add_comment|create_project}
Identifier: {issue identifier like ENG-123}
URL: {linear url}
Details: {relevant properties changed}
Security Rules
NEVER:
- Log or expose the LINEAR_API_KEY
- Store credentials in files
- Share API responses containing sensitive data
Source
git clone https://github.com/aiskillstore/marketplace/blob/main/skills/0xsero/linear/SKILL.mdView on GitHub Overview
The Linear CLI skill lets you manage Linear issues, teams, and projects directly from the terminal. It supports listing issues, creating tasks, viewing details, linking issues, and running GraphQL queries via the built-in CLI commands. This is ideal for scripting Linear workflows and keeping project data in sync with your config defaults.
How This Skill Works
Install the linear CLI, authenticate with an API key (linear auth set or LINEAR_API_KEY), and use commands like linear issue create/list/view to manage items. Built-in commands are preferred over raw GraphQL when possible, with the option to run GraphQL queries via linear gql if needed. The tool respects your config defaults (default_team_id, default_output, default_state_filter) and avoids hard-coding IDs.
When to Use It
- List and filter my Linear issues from the CLI.
- Create a new Linear task/issue from scripts or prompts.
- View issue details or export issue data (JSON/full context).
- Link issues (blocks/related/duplicate) or assign via CLI.
- Manage teams, projects, and run GraphQL queries with linear gql.
Quick Start
- Step 1: Install and authenticate: Install: npm install -g @0xbigboss/linear-cli; Authenticate: linear auth set or export LINEAR_API_KEY
- Step 2: Configure defaults: linear config set default_team_id TEAM_KEY; linear config set default_output json; linear config set default_state_filter completed,canceled
- Step 3: Try starter commands: linear issues list --team TEAM_KEY --assignee me --human-time; linear issue create --team TEAM_KEY --title 'New task' --yes; linear issue view ENG-123 --json
Best Practices
- Keep defaults in sync with your config; do not hard-code team IDs or outputs.
- Prefer built-in CLI commands over raw GraphQL unless functionality is missing.
- Name branches in a consistent format: {TICKET}-{short-name} for related Linear work.
- Follow conventional commits and include the Linear ticket ID in messages.
- Use linear config show/unset to inspect and reset defaults when needed.
Example Use Cases
- linear issues list --team TEAM_KEY --assignee me --human-time
- linear search 'keyword' --team TEAM_KEY --limit 10
- linear issue create --team TEAM_KEY --title 'Fix bug' --yes
- linear issue view ENG-123
- linear projects list --limit 10
Frequently Asked Questions
Related Skills
github-initiative-pulse
athola/claude-night-market
'Outputs markdown digests and CSV exports for GitHub issues and PRs.
api-design-patterns
petekp/claude-code-setup
Comprehensive API design patterns covering REST, GraphQL, gRPC, versioning, authentication, and modern API best practices
basecamp-automation
davepoon/buildwithclaude
Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
clickup-automation
davepoon/buildwithclaude
Automate ClickUp project management including tasks, spaces, folders, lists, comments, and team operations via Rube MCP (Composio). Always search tools first for current schemas.
coda-automation
davepoon/buildwithclaude
Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.
jira-automation
davepoon/buildwithclaude
Automate Jira tasks via Rube MCP (Composio): issues, projects, sprints, boards, comments, users. Always search tools first for current schemas.