Tutorial

OpenClaw Linear Project Manager: Manage Issues from Any Chat App

Comprehensive guide to managing Linear issues through OpenClaw with natural language queries, status updates, and sprint automation.

By OpenClaw Team ·
Linear Project Manager skill illustration with layered chat bubbles and threaded conversation paths.

Linear Project Manager (#8 with 610 stars) brings your entire Linear workspace into chat, eliminating constant context-switching between messaging apps and project management tools. You can query issues, update statuses, create tasks, and get sprint insights without opening Linear. For engineering teams that live in Discord, Slack, or Telegram, this skill significantly reduces friction in daily task management.

This guide covers Linear API setup, natural language commands, workflow automation, and sprint management integration.

What It Does

Linear Project Manager connects OpenClaw to Linear’s API, enabling full issue lifecycle management from chat:

  • Query issues by assignee, status, label, priority, or custom filters
  • Create issues from natural language descriptions with auto-extracted metadata
  • Update issue statuses by moving them through workflow states
  • Generate sprint reports with burndown data and velocity tracking
  • Two-way sync so changes in Linear appear in chat notifications and vice versa

The skill understands Linear’s terminology (cycles, projects, teams) and translates natural language into precise API calls.

Prerequisites

Before setting up Linear integration, ensure you have:

  • A Linear workspace with at least Member access
  • Permission to create API keys in your workspace
  • OpenClaw 2026.1.0 or later
  • A default team and project configured in Linear

Installation & Setup

Step 1: Create Linear API Key

  1. Go to Linear Settings > API > Personal API keys
  2. Click “Create new API key”
  3. Name it “OpenClaw Integration”
  4. Under scopes, select:
    • read (view issues, projects, users)
    • write (create and update issues)
    • issue:admin (optional, for advanced operations)
  5. Click “Create” and copy the API key (starts with lin_api_...)

Security note: API keys grant full access to your Linear workspace. Store them securely and never commit to version control.

Step 2: Configure OpenClaw

Install and configure the skill:

# Install the skill
openclaw skill install linear

# Set your API key
openclaw config set linear.apiKey $LINEAR_API_KEY

Complete YAML configuration:

skills:
  linear:
    api_key: ${LINEAR_API_KEY}

    # Default team (get ID from Linear team settings)
    default_team: "ENG"  # or team ID like "abc123"

    # Default project (optional)
    default_project: "Core Product"

    # Notification preferences
    notifications:
      on_create: true
      on_status_change: true
      on_comment: false

Step 3: Test Connection

Verify the integration:

# In your chat interface:
"Show my Linear issues"

# Expected: List of issues assigned to you
# If error: Check API key, team ID, and network connectivity

Basic Commands

Creating Issues

"Create a Linear bug: login page crash on Safari"
→ Creates bug with title, auto-detects type (bug), assigns to default team

"Create issue: Implement dark mode toggle, assign to Alice, high priority"
→ Extracts: title, assignee, priority
→ Creates issue in Linear with all metadata

"Add to Linear: API endpoint for user preferences, backend label"
→ Creates issue with custom label

OpenClaw intelligently extracts:

  • Type (bug, feature, improvement) from keywords
  • Priority (urgent, high, medium, low) from explicit mentions
  • Assignee from @mentions or names
  • Labels from context or explicit tags
  • Project from channel name or explicit mention

Viewing Issues

"Show my Linear issues"
→ Lists all issues assigned to you

"List all P0 bugs"
→ Filters by priority (P0 = urgent) and type (bug)

"Show issues in 'Mobile App' project"
→ Filters by project name

"What's assigned to Bob?"
→ Lists issues for specific team member

Updating Status

"Move LIN-423 to In Review"
→ Changes issue status to "In Review"

"Mark issue 123 as done"
→ Moves to "Done" state

"Start working on LIN-456"
→ Moves to "In Progress" and assigns to you

Advanced Queries

Filtering by Multiple Criteria

"Show high-priority backend issues assigned to me"
→ Combines filters: priority:high AND label:backend AND assignee:@me

"List all bugs created this week"
→ Filters: type:bug AND created:>=7d

"Find issues in current cycle with no assignee"
→ Filters: cycle:current AND assignee:null

Date Range Queries

"Issues completed last month"
→ status:completed AND completed_at:>=30d AND completed_at:<=1d

"Show issues due this week"
→ due_date:>=0d AND due_date:<=7d

Saved Query Templates

Define reusable queries in config:

skills:
  linear:
    saved_queries:
      my_sprint:
        filters:
          assignee: "@me"
          cycle: "current"
          status: ["Todo", "In Progress"]

      blocker_review:
        filters:
          priority: "urgent"
          status: "Blocked"

      needs_triage:
        filters:
          assignee: null
          labels: "bug"
          created_at: ">=7d"

Then use shortcuts:

"Run my_sprint query"
→ Shows your issues for current sprint

"Check blocker_review"
→ Lists all urgent blocked issues

Issue Creation from Natural Language

OpenClaw uses LLM parsing to extract structured data from free-form text:

Example 1: Feature Request

Input: "We need a user preference API endpoint. Should support GET and POST. Backend team handles it, due end of sprint, high priority."

OpenClaw extracts:
- Title: "User preference API endpoint"
- Description: "Support GET and POST methods"
- Team: Backend
- Due date: End of current cycle
- Priority: High
- Type: Feature

Created issue: LIN-789

Example 2: Bug Report

Input: "Safari users can't log in after password reset. Critical bug. Seen in production. Alice should investigate ASAP."

OpenClaw extracts:
- Title: "Safari login failure after password reset"
- Type: Bug
- Priority: Urgent
- Environment: Production
- Assignee: Alice
- Description: Auto-generated from input

Created issue: LIN-790

Template-Based Creation

Define issue templates for common patterns:

skills:
  linear:
    templates:
      security_incident:
        type: "Bug"
        priority: "Urgent"
        labels: ["security", "incident"]
        project: "Security"
        required_fields: ["severity", "affected_systems"]

      feature_request:
        type: "Feature"
        priority: "Medium"
        labels: ["product"]
        required_fields: ["use_case", "target_users"]

Usage:

"Create security incident: SQL injection in auth endpoint, severity critical, affected: user-service"
→ Uses template, auto-fills fields, prompts for missing required fields

Status Workflows

Moving Issues Through States

Linear workflows vary by team. Common state sequences:

Todo → In Progress → In Review → Done
Backlog → Todo → In Progress → Done
Triage → Todo → In Progress → Blocked → Done

OpenClaw respects your configured workflow:

"Start LIN-123"
→ If current state is "Todo", moves to "In Progress"
→ If current state is "Backlog", prompts: "Move to Todo or In Progress?"

"Unblock LIN-456"
→ If current state is "Blocked", moves to previous state (usually "In Progress")

Bulk Status Updates

"Move all my 'In Review' issues to Done"
→ Finds issues matching criteria, confirms, then updates all

"Archive completed issues from last sprint"
→ Filters, confirms, then bulk archives

Custom Workflow Definitions

Map natural language commands to state transitions:

skills:
  linear:
    workflows:
      start: "In Progress"
      review: "In Review"
      ship: "Done"
      block: "Blocked"
      backlog: "Backlog"

Then use shortcuts:

"Ship LIN-123" → Moves to "Done"
"Block LIN-456" → Moves to "Blocked"

Sprint Management

Generating Sprint Reports

"Generate sprint report for current cycle"
→ Returns:
  - Total issues: 45
  - Completed: 32 (71%)
  - In progress: 8
  - Blocked: 2
  - Not started: 3
  - Velocity: 32 points/week
  - Burndown chart (text visualization)

Cycle Summaries

"Summarize Cycle 42"
→ Returns:
  - Cycle dates
  - Total scope: 120 points
  - Completed: 105 points (88%)
  - Carried over: 15 points
  - Top contributors
  - Most common blockers

Planning Automation

"Create planning meeting agenda for next cycle"
→ Generates:
  - Incomplete items from current cycle
  - High-priority backlog items
  - Team capacity estimates
  - Suggested scope for next cycle

Team Collaboration

@Mentions and Notifications

OpenClaw syncs Linear notifications to chat:

skills:
  linear:
    notifications:
      # Post to chat when assigned an issue
      on_assign: true
      channel: "eng-notifications"

      # Notify when issue moves to specific states
      on_status_change:
        - "In Review"  # Notify when entering review
        - "Blocked"    # Notify when blocked

      # Notify on comments from specific people
      on_comment_from: ["alice@company.com", "bob@company.com"]

Example notification:

[Linear] LIN-789 moved to In Review by Alice
Title: User preference API endpoint
Assignee: @bob
Link: https://linear.app/team/issue/LIN-789

Issue Handoffs

"Handoff LIN-123 to Carol with context: needs frontend polish"
→ Reassigns to Carol
→ Adds comment with handoff note
→ Notifies Carol in chat

Comment Threading

"Comment on LIN-456: Tested in staging, looks good"
→ Adds comment to issue in Linear
→ Notifies issue participants

Troubleshooting

API Rate Limits

Error: “Rate limit exceeded. Try again in 60 seconds.”

Solution:

  • Linear limits: 2000 requests/hour per API key
  • Reduce query frequency
  • Use caching for repeated queries
  • Batch operations where possible

Permission Errors

Error: “Insufficient permissions to create issues in team X”

Solution:

  • Verify API key has write scope
  • Check team membership (Member role minimum)
  • Confirm team ID is correct
  • Ask workspace admin for permissions

Ambiguous Team/Project Names

Error: “Multiple teams found matching ‘Backend’. Which one?”

Solution:

  • Use team IDs instead of names
  • Set default_team in config
  • Disambiguate: “Backend Engineering” vs “Backend Ops”

FAQ

Can I attach files to Linear issues from chat?

Not directly via text commands. However, you can:

  1. Upload file to chat (Discord, Slack support file uploads)
  2. OpenClaw extracts file URL
  3. Adds URL to issue description or comment

Alternatively, use Linear’s email integration to attach files.

Does this work with Linear’s API rate limits?

Yes. OpenClaw implements:

  • Request throttling (max 30 requests/minute)
  • Exponential backoff on rate limit errors
  • Local caching for frequently accessed data (teams, projects, users)
  • Batch operations to minimize API calls

Typical usage (50 queries/day) stays well within Linear’s 2000 req/hour limit.

Can I create issues in multiple projects?

Yes. Specify the project explicitly:

"Create issue in Mobile App project: Fix splash screen animation"

Or configure project mapping:

skills:
  linear:
    project_mapping:
      mobile: "Mobile App"
      web: "Web Platform"
      api: "Backend Services"

Then use shortcuts:

"Create mobile issue: ..." → Routes to Mobile App project
"Create api issue: ..." → Routes to Backend Services project

Next Steps

Once Linear integration is configured, explore these workflow enhancements:

Linear Project Manager transforms chat into a command center for your Linear workspace. Once configured, you can manage your entire task backlog without leaving your messaging app.

Ready to Get Started?

Install OpenClaw and build your own AI assistant today.

Related Articles