Awesome-omni-skill linear
Manage Linear issues, projects, and cycles. Maintains session memory across conversations for context continuity.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/product/linear" ~/.claude/skills/diegosouzapw-awesome-omni-skill-linear-1fc1d0 && rm -rf "$T"
skills/product/linear/SKILL.mdLinear Skill
Manage your Linear workspace from the command line with persistent session memory.
Project Configuration
Before using this skill, read
for project-specific values:config.json
- The team key to use (e.g., "WIL")team
- Default project ID for new issuesdefaultProject
- Named project shortcuts with IDs and descriptionsprojects
- What priority levels mean for this project's current phasepriorityContext
- Label name to ID mappingslabels
- Default states/priorities for different issue typesworkflows
Use these values instead of the generic
TEAM placeholders in examples below.
Project Conventions
This section documents agreed-upon conventions for using Linear. Customize these for your project.
Priority Definitions
| Priority | Value | Meaning | Usage |
|---|---|---|---|
| Urgent | 1 | Hot fix to production | Blocking work on production, drop everything |
| High | 2 | Critical for current release | Required before next production deployment |
| Medium | 3 | Standard priority | Scheduled alongside feature work |
| Low | 4 | Nice-to-have, deferred | Revisit when ahead of schedule |
| None | 0 | Not yet prioritized | Needs review |
Key behaviors:
- Urgent: Developer patches immediately; stakeholders notified
- High: Must be completed before production deployment
- Medium: Scheduled alongside feature work
- Low: Kept in backlog, won't delay deadlines
Status Workflow
┌─────────────────┐ ┌─────────────┐ │ CLIENT REVIEW │ │ TRIAGE │ │ (Client Inbox) │ │ (Dev Inbox) │ └────────┬────────┘ └──────┬──────┘ │ │ └──────────┬──────────┘ ▼ ┌───────────┐ │ TO DO │ └─────┬─────┘ ▼ ┌───────────┐ │IN PROGRESS│ └─────┬─────┘ ▼ ┌───────────┐ │ DEV DONE │ └─────┬─────┘ ▼ ┌─────────────┐ │READY TO TEST│ └──────┬──────┘ ▼ ┌──────────┐ │ DONE │ └──────────┘
| Status | Owner | Meaning |
|---|---|---|
| Client Review | Client | Developer-created tickets awaiting client approval of priority/details |
| Triage | Developer | Client-reported bugs/issues awaiting developer review |
| To Do | Both | Approved, prioritized, ready to be worked on |
| In Progress | Developer | Actively being developed |
| Dev Done | Developer | Code complete (PR merged), not yet deployed to staging |
| Ready to Test | Client | Deployed to staging, awaiting client testing |
| Done | Both | Client tested and approved |
| Canceled | Both | Work determined to be unnecessary |
Transition responsibilities:
: Developer creates ticket from planning/meetings→ Client Review
: Client approves after reviewingClient Review → To Do
: Client reports bug directly→ Triage
: Developer reviews, sets priorityTriage → To Do
: Developer picks up workTo Do → In Progress
: Code completeIn Progress → Dev Done
: Deployed to stagingDev Done → Ready to Test
: Client tests successfullyReady to Test → Done
Inbox goal: Both
Client Review and Triage should trend toward empty.
Projects
Organize work into projects based on your needs:
| Project Type | Purpose |
|---|---|
| Support & Maintenance | Bug fixes, polish, production support |
| Feature Development | New feature work by phase or milestone |
| Infrastructure | Technical improvements, refactoring |
Assignment rules:
- Production bugs → Support project
- New features → Appropriate feature project
- Urgent hot fixes → May skip project assignment (priority is enough)
Labels
| Label | Usage |
|---|---|
| Something broken that needs fixing |
| New functionality |
| Enhancement to existing functionality |
Communication
- Linear is the primary channel for project work
- Use comments within tickets for discussion
- @ mentions notify via inbox
- Check inbox regularly for messages
Creating Issues from Transcripts
When generating issues from meeting transcripts:
- Set status to
(not Triage) - Client needs to approveClient Review - Include in description:
- Context from discussion
- Location in app (if applicable)
- Steps to reproduce (for bugs)
- Acceptance criteria (for features)
- Set priority based on meeting discussion
- Assign to project based on type
- Add appropriate label (bug/feature/improvement)
Checking Your Inbox
Your Linear inbox contains notifications about issues you're assigned to, mentioned in, or have subscribed to. This is how client feedback and updates reach you.
Commands:
# View all notifications (most recent first) npx linear-skill inbox # View only unread notifications npx linear-skill inbox --unread # Limit to specific count npx linear-skill inbox --unread --limit 10
Notification types include:
- You were assigned to an issueissueAssignedToYou
- Someone commented on an issue you followissueNewComment
- You were @mentioned in a commentissueMention
- Status changed on an issue you followissueStatusChanged- And many more...
Workflow tip: Check your inbox at the start of each session to see client feedback and updates since your last session. This is especially useful for catching comments on recently completed work.
Reading Comments & Client Feedback
Comments contain important client feedback, clarifications, and discussion history. Use them strategically to stay context-efficient.
When to use
flag or --comments
command:comments
- Planning implementation for specific tickets (1-5 tickets)
- Reviewing client feedback before starting work
- Checking for clarifications or scope changes
- Preparing spec documents that need client context
When NOT to fetch comments:
- Broad searches across many tickets (
)issues --team TEAM - Filtering/triaging tickets by status or priority
- Quick status checks or updates
- Bulk operations
Commands:
# Lightweight - just comments for quick review npx linear-skill comments TEAM-123 # Full context - issue details + comments for implementation planning npx linear-skill issue TEAM-123 --comments
Workflow tip: When moving tickets from
To Do to In Progress, fetch comments first to ensure you have the latest client context before writing implementation specs.
Viewing Screenshots & Attachments
Issues often include screenshots showing bugs, UI states, or expected behavior. The skill returns signed URLs that are publicly accessible for 1 hour.
Output fields when using
:--comments
- Images embedded in description or comments (extracted from markdowninlineImages
)
- Files attached to the issueattachments
Workflow to view screenshots:
-
Fetch the issue with comments to get signed URLs:
npx linear-skill issue TEAM-123 --comments -
Download images to the skill's cache directory:
# Create cache directory if needed mkdir -p ~/.linear-skill/images # Download each image (use the signed URL from output) curl -s -o ~/.linear-skill/images/screenshot-1.png "<signed-url>" -
View the image using the Read tool:
# Claude can view the downloaded image Read ~/.linear-skill/images/screenshot-1.png -
Clean up after reviewing (images are not auto-deleted):
rm ~/.linear-skill/images/*.png
Important notes:
- Signed URLs expire after 1 hour - re-fetch the issue if URLs have expired
- macOS does NOT auto-clean
, so use/tmp
for predictable cleanup~/.linear-skill/images/ - Always review screenshots before implementing bug fixes to understand the exact issue
- Multiple screenshots may show different states (before/after, different views, etc.)
Release Workflow
For staging → production releases:
- All
priority items must beHighDone
items are optional for current releaseMedium
items are explicitly deferredLow- Once all required items are
, deploy to productionDone
Semantic versioning may be adopted for tracking releases.
Starting a Session
Always load context first to see what you were working on:
npx linear-skill context
This shows:
- Recent session summaries
- Focus tickets from last session
- Recent actions taken
- Any notes you left
Quick Start
# Setup (one time) cp .env.example .env cp config.example.json config.json # Edit .env with your LINEAR_API_KEY npm install && npm run build # Load previous context npx linear-skill context # List your assigned issues npx linear-skill issues --assignee me # Create an issue (for transcript-generated tickets, use Client Review state) npx linear-skill create "Fix login bug" --team TEAM --state "Client Review" # Update an issue npx linear-skill update TEAM-123 --state "In Progress" # Quick actions npx linear-skill start TEAM-123 # Move to "In Progress" npx linear-skill done TEAM-123 # Move to "Done" # Mark tickets as current focus npx linear-skill focus TEAM-123 TEAM-456 # Save session before ending npx linear-skill session-save "Completed auth work, PR ready for review"
Session Memory
The skill remembers your recent work across conversations:
- Auto-tracking: All issue interactions are logged automatically
- Focus tickets: Mark what you're actively working on
- Session summaries: 2-3 recent session summaries are kept
- Context command: Loads this into new conversations
Command Categories
Read Commands
- List all teamsteams
- List users (useusers
for current user)--me
- List workflow statesstates --team TEAM
- List projectsprojects
- List cycles (cycles --team TEAM
for current)--active
- List issues with filtersissues
- Get issue detailsissue TEAM-123
- Get issue details with commentsissue TEAM-123 --comments
- Get comments for an issuecomments TEAM-123
- Search issuessearch "query"
- List notifications from your inboxinbox
- List only unread notificationsinbox --unread
Write Commands
- Create issuecreate "title" --team TEAM
- Update issueupdate TEAM-123 --state "Done"
- Assign issueassign TEAM-123 me
- Add commentcomment TEAM-123 "comment text"
- Move to "In Progress"start TEAM-123
- Move to "Done"done TEAM-123
Session Commands
- Load session context (use at start)context
- Set focus ticketsfocus TEAM-123 TEAM-456
- Set session notesnotes "reminder text"
- Save session summarysession-save "summary"
- View session historysessions
- Clear old datasession-clear --older-than 7
Config Commands
- Initialize configurationinit
- Show current configconfig
- Refresh teams/users/states cachecache-refresh
- Show cache statuscache-status
Issue Filtering
The
issues command supports flexible filtering with multiple values for most parameters.
Available Filter Options
| Option | Alias | Description | Multiple Values |
|---|---|---|---|
| | Filter by team key or ID | No |
| | Filter by project ID(s) | Yes (comma-separated) |
| | Filter by cycle ID | No |
| | Filter by assignee (ID, email, or "me") | No |
| | Filter by state name(s) | Yes (repeat flag or comma) |
| | Filter by priority (1-4 or names) | Yes (repeat flag or comma) |
| | Filter by label name(s) | Yes (repeat flag) |
| | Maximum issues to return (default: 50) | No |
Priority Values
| Value | Name | Meaning |
|---|---|---|
| 1 | urgent | Hot fix to production |
| 2 | high | Critical for current release |
| 3 | medium | Standard priority |
| 4 | low | Nice-to-have |
| 0 | none | Not yet prioritized |
Filtering Examples
# Basic filters npx linear-skill issues --team TEAM npx linear-skill issues --assignee me npx linear-skill issues --state "To Do" # Priority filtering (CRITICAL for hotfix workflow) npx linear-skill issues --team TEAM --priority 1 # Urgent only npx linear-skill issues --team TEAM --priority urgent # Same as above npx linear-skill issues --team TEAM --priority 1,2 # Urgent and High npx linear-skill issues --team TEAM -P urgent -P high # Same as above # Multiple states npx linear-skill issues --team TEAM -s "To Do" -s "In Progress" npx linear-skill issues --state "Triage,Client Review" # Comma syntax # Label filtering (matches issues with ANY of the labels) npx linear-skill issues --team TEAM --label "Bug" npx linear-skill issues --team TEAM -L "Bug" -L "Feature" # Combined filters npx linear-skill issues --team TEAM --priority 1 --state "To Do" npx linear-skill issues --team TEAM --assignee me --priority 1,2 --limit 20 # Find all inbox items (Triage + Client Review) npx linear-skill issues --team TEAM -s "Triage" -s "Client Review" # Production hotfix query npx linear-skill issues --team TEAM --priority urgent --state "To Do"
Bulk Operations for Transcript Processing
When creating multiple issues from a meeting transcript:
# Create each ticket with Client Review status npx linear-skill create "Ticket title" --team TEAM --state "Client Review" --priority 2 -d "Description here" # After client reviews, they move approved tickets to To Do npx linear-skill update TEAM-123 --state "To Do"
Setup
- Copy
to.env.example.env - Add your Linear API key:
LINEAR_API_KEY=lin_api_xxxx - Copy
toconfig.example.jsonconfig.json - Set your default team in
config.json - Run
npm install && npm run build - Test:
npx linear-skill teams
Skill Initialization
If this skill has not been configured for the current project, help the user set it up:
Check if initialized
npx linear-skill config
If
team is "YOUR_TEAM_KEY" or missing, initialization is needed.
Initialization steps
-
Verify
has.env
setLINEAR_API_KEY -
Discover workspace:
npx linear-skill teams # Get team key npx linear-skill projects # Get project IDs and names npx linear-skill states --team TEAM_KEY # Check workflow states -
Ask the user:
- Which team to use as default?
- How to categorize their projects (support, feature phases)?
- What does "High priority" mean for their current work?
- What is their current project phase?
-
Update
with discovered valuesconfig.json -
Check for missing workflow states (Client Review, Dev Done, Ready to Test) and guide user to create them in Linear UI
-
Refresh cache:
npx linear-skill cache-refresh
Documentation
- README.md - Developer setup guide
- REFERENCE.md - Full command reference
- CONFIG.md - Configuration guide
- SESSION.md - Session memory details