jeremylongshore/claude-code-plugins-plus-skills
linear-pack
plugins/saas-packs/linear-pack/skills/linear-hello-world/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/linear-pack/skills/linear-hello-world/SKILL.md -a claude-code --skill linear-hello-worldInstallation paths:
.claude/skills/linear-hello-world/# Linear Hello World
## Overview
Create your first issue and execute basic queries with the Linear API.
## Prerequisites
- Linear SDK installed (`@linear/sdk`)
- Valid API key configured
- Access to at least one Linear team
## Instructions
### Step 1: Query Your Teams
```typescript
import { LinearClient } from "@linear/sdk";
const client = new LinearClient({ apiKey: process.env.LINEAR_API_KEY });
// Get all teams you have access to
const teams = await client.teams();
console.log("Your teams:");
teams.nodes.forEach(team => {
console.log(` - ${team.name} (${team.key})`);
});
```
### Step 2: Create Your First Issue
```typescript
// Get the first team
const team = teams.nodes[0];
// Create an issue
const issueCreate = await client.createIssue({
teamId: team.id,
title: "My first Linear issue from the API",
description: "This issue was created using the Linear SDK!",
});
if (issueCreate.success) {
const issue = await issueCreate.issue;
console.log(`Created issue: ${issue?.identifier} - ${issue?.title}`);
console.log(`URL: ${issue?.url}`);
}
```
### Step 3: Query Issues
```typescript
// Get recent issues from your team
const issues = await client.issues({
filter: {
team: { key: { eq: team.key } },
},
first: 10,
});
console.log("Recent issues:");
issues.nodes.forEach(issue => {
console.log(` ${issue.identifier}: ${issue.title} [${issue.state?.name}]`);
});
```
## Output
- List of teams you have access to
- Created issue with identifier and URL
- Query results showing recent issues
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `Team not found` | Invalid team ID or no access | Use `client.teams()` to list accessible teams |
| `Validation error` | Missing required fields | Ensure title and teamId are provided |
| `Permission denied` | Insufficient permissions | Check API key scope in Linear settings |
| `Rate limited` | Too many requests | Add delays between requests |
## Examples
### Complete Hello Wor