Openclaw-master-skills linear
Query and manage Linear issues, projects, and team workflows.
install
source · Clone the upstream repo
git clone https://github.com/LeoYeAI/openclaw-master-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/linear" ~/.claude/skills/leoyeai-openclaw-master-skills-linear && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/linear" ~/.openclaw/skills/leoyeai-openclaw-master-skills-linear && rm -rf "$T"
manifest:
skills/linear/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- references API keys
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
Linear
Manage issues, check project status, and stay on top of your team's work.
Setup
export LINEAR_API_KEY="your-api-key" # Optional: default team key used when a command needs a team export LINEAR_DEFAULT_TEAM="TEAM"
Discover team keys:
{baseDir}/scripts/linear.sh teams
If
LINEAR_DEFAULT_TEAM is set, you can omit the team key in team and call:
{baseDir}/scripts/linear.sh create "Title" ["Description"]
Quick Commands
# My stuff {baseDir}/scripts/linear.sh my-issues # Your assigned issues {baseDir}/scripts/linear.sh my-todos # Just your Todo items {baseDir}/scripts/linear.sh urgent # Urgent/High priority across team # Browse {baseDir}/scripts/linear.sh teams # List available teams {baseDir}/scripts/linear.sh team <TEAM_KEY> # All issues for a team {baseDir}/scripts/linear.sh project <name> # Issues in a project {baseDir}/scripts/linear.sh issue <TEAM-123> # Get issue details {baseDir}/scripts/linear.sh branch <TEAM-123> # Get branch name for GitHub # Actions {baseDir}/scripts/linear.sh create <TEAM_KEY> "Title" ["Description"] {baseDir}/scripts/linear.sh comment <TEAM-123> "Comment text" {baseDir}/scripts/linear.sh status <TEAM-123> <todo|progress|review|done|blocked> {baseDir}/scripts/linear.sh assign <TEAM-123> <userName> {baseDir}/scripts/linear.sh priority <TEAM-123> <urgent|high|medium|low|none> # Overview {baseDir}/scripts/linear.sh standup # Daily standup summary {baseDir}/scripts/linear.sh projects # All projects with progress
Common Workflows
Morning Standup
{baseDir}/scripts/linear.sh standup
Shows: your todos, blocked items across team, recently completed, what's in review.
Quick Issue Creation (from chat)
{baseDir}/scripts/linear.sh create TEAM "Fix auth timeout bug" "Users getting logged out after 5 min"
Triage Mode
{baseDir}/scripts/linear.sh urgent # See what needs attention
Git Workflow (Linear ↔ GitHub Integration)
Always use Linear-derived branch names to enable automatic issue status tracking.
Getting the Branch Name
{baseDir}/scripts/linear.sh branch TEAM-212 # Returns: dev/team-212-fix-auth-timeout-bug
Creating a Worktree for an Issue
# 1. Get the branch name from Linear BRANCH=$({baseDir}/scripts/linear.sh branch TEAM-212) # 2. Pull fresh main first (main should ALWAYS match origin) cd /path/to/repo git checkout main && git pull origin main # 3. Create worktree with that branch (branching from fresh origin/main) git worktree add .worktrees/team-212 -b "$BRANCH" origin/main cd .worktrees/team-212 # 4. Do your work, commit, push git push -u origin "$BRANCH"
⚠️ Never modify files on main. All changes happen in worktrees only.
Why This Matters
- Linear's GitHub integration tracks PRs by branch name pattern
- When you create a PR from a Linear branch, the issue automatically moves to "In Review"
- When the PR merges, the issue automatically moves to "Done"
- Manual branch names break this automation
- Keeping main clean = no accidental pushes, easy worktree cleanup
Quick Reference
# Full workflow example ISSUE="TEAM-212" BRANCH=$({baseDir}/scripts/linear.sh branch $ISSUE) # Always start from fresh main cd ~/workspace/your-repo git checkout main && git pull origin main # Create worktree (inside .worktrees/) git worktree add .worktrees/${ISSUE,,} -b "$BRANCH" origin/main cd .worktrees/${ISSUE,,} # ... make changes ... git add -A && git commit -m "fix: implement $ISSUE" git push -u origin "$BRANCH" gh pr create --title "$ISSUE: <title>" --body "Closes $ISSUE"
Priority Levels
| Level | Value | Use for |
|---|---|---|
| urgent | 1 | Production issues, blockers |
| high | 2 | This week, important |
| medium | 3 | This sprint/cycle |
| low | 4 | Nice to have |
| none | 0 | Backlog, someday |
Teams (cached)
Team keys and IDs are discovered via the API and cached locally after the first lookup. Use
linear.sh teams to refresh and list available teams.
Notes
- Uses GraphQL API (api.linear.app/graphql)
- Requires
env varLINEAR_API_KEY - Issue identifiers are like
TEAM-123
Attribution
Inspired by schpet/linear-cli by Peter Schilling (ISC License). This is an independent bash implementation for Clawdbot integration.