home / skills / openclaw / skills / linear-autopilot

linear-autopilot skill

/skills/vincentchan/linear-autopilot

This skill automates Linear task processing with Discord notifications and git sync to streamline kanban-to-agent workflows.

npx playbooks add skill openclaw/skills --skill linear-autopilot

Review the files below or copy the command above to add this skill to your agents.

Files (6)
SKILL.md
5.9 KB
---
name: linear-autopilot
description: Automate Linear task processing with Discord notifications and git sync. Use when setting up a kanban-to-agent workflow where Linear tasks trigger Clawdbot actions via Discord. Handles task intake, status updates, DM notifications, and auto-push to git. Supports any task type - research, content creation, code tasks, or custom workflows.
---

# Linear Autopilot

Automated pipeline: **Linear → Webhook Service → Discord → Clawdbot → Git**

Tasks created in Linear automatically trigger Clawdbot processing with real-time notifications and git sync for Obsidian/local access.

## Free Tier Limitations

Before setup, be aware of free plan limits:

| Service | Free Tier Limits | Recommendation |
|---------|------------------|----------------|
| **Linear** | 250 issues, unlimited members | Sufficient for most personal/small team use |
| **Make.com** | 1,000 ops/month, 2 scenarios, 15-min interval | ✅ **Best free option** — generous limits |
| **Pipedream** | ~100 credits (unclear reset), instant triggers | Good if you need real-time, burns credits fast |
| **Zapier** | 100 tasks/month, 5 zaps, 15-min polling, **no webhooks** | ⚠️ Paid plan required for this workflow |

**Important notes:**
- **Make.com** offers 1,000 ops/month free — our recommendation for free tier users
- **Pipedream** has instant webhooks but limited free credits that deplete quickly
- **Zapier** free plan does NOT support webhooks. You need a paid Zapier plan (Starter+)
- For budget-conscious users: **use Make.com**

## Setup

### 1. Configure Linear API

Run setup to store your Linear API key:

```bash
mkdir -p ~/.clawdbot
echo "LINEAR_API_KEY=lin_api_xxxxx" > ~/.clawdbot/linear.env
```

Get your API key from: Linear → Settings → API → Personal API keys

### 2. Get Linear IDs

Find your team and state IDs:

```bash
./scripts/linear-api.sh teams    # Get team ID
./scripts/linear-api.sh states   # Get state IDs (Todo, In Progress, Done)
```

Update `~/.clawdbot/linear-config.json`:

```json
{
  "teamId": "your-team-id",
  "states": {
    "todo": "state-id-for-todo",
    "inProgress": "state-id-for-in-progress",
    "done": "state-id-for-done"
  },
  "discord": {
    "notifyUserId": "your-discord-user-id",
    "taskChannelId": "your-linear-tasks-channel-id"
  },
  "git": {
    "autoPush": true,
    "commitPrefix": "task:"
  }
}
```

### 3. Set Up Webhook Service

Choose your preferred automation platform:

#### Option A: Make.com (Recommended for free tier)
- 1,000 operations/month free
- 15-minute minimum interval on free tier
- See `references/make-setup.md` for step-by-step guide

Quick setup:
1. Create scenario at make.com
2. Add Linear "Watch Issues" trigger
3. Add filter: state.name = "Todo"
4. Add Discord webhook action
5. Activate scenario

#### Option B: Pipedream (If you need instant triggers)
- Instant webhook triggers
- Limited free credits (deplete fast)
- See `references/pipedream-setup.md` for step-by-step guide

Quick setup:
1. Create workflow at pipedream.com with HTTP webhook trigger
2. Add Linear webhook pointing to your Pipedream URL
3. Add Discord "Send Message" step with Clawdbot bot token
4. Message template:
   ```
   <@BOT_ID>
   📋 New task: {{steps.trigger.event.data.title}}
     Status: {{steps.trigger.event.data.state.name}}
     ID: {{steps.trigger.event.data.identifier}}
   ```

#### Option B: Zapier (If you have a paid account)
- 100 tasks/month on free (very limited)
- Native Linear + Discord integrations
- See `references/zapier-setup.md` for step-by-step guide

Quick setup:
1. Create Zap: Linear (New Issue) → Discord (Send Channel Message)
2. Use webhook or bot integration for Discord
3. Map Linear fields to message template

### 4. Configure Discord Channel

Ensure Clawdbot listens to your task channel. In `clawdbot.json`:

```json
{
  "channels": {
    "discord": {
      "guilds": {
        "YOUR_GUILD_ID": {
          "channels": {
            "YOUR_TASK_CHANNEL_ID": {
              "allow": true,
              "requireMention": false
            }
          }
        }
      }
    }
  }
}
```

## Task Processing Workflow

When a task arrives in the Discord channel:

### 1. Acknowledge
- Reply in channel confirming receipt

### 2. Notify User via DM
```
Use message tool:
- action: send
- target: [user ID from config]
- message: "📋 New task: [ID] - [title]. Starting now..."
```

### 3. Process Task
- Update Linear status → "In Progress" via `./scripts/linear-api.sh start [task-id]`
- Execute the task (spawn sub-agent if complex)
- Save outputs to appropriate location (research/, content/, etc.)

### 4. Complete
- Update Linear status → "Done" via `./scripts/linear-api.sh done [task-id]`
- Add comment with results via `./scripts/linear-api.sh comment [task-id] "[summary]"`
- Send completion DM to user

### 5. Git Sync (if enabled)
```bash
git add [output files]
git commit -m "task: [ID] - [title]"
git push
```

## Script Reference

`scripts/linear-api.sh` commands:

| Command | Description |
|---------|-------------|
| `teams` | List teams and IDs |
| `states` | List workflow states |
| `get [id]` | Get task details |
| `pending` | List pending tasks |
| `start [id]` | Mark as In Progress |
| `done [id]` | Mark as Done |
| `comment [id] "text"` | Add comment to task |

## Example Task Types

This workflow handles any task type:

- **Research**: Spawn sub-agent, save to `research/[topic].md`
- **Content creation**: Generate drafts, save to `content/`
- **Code tasks**: Write/modify code, commit changes
- **Data processing**: Run scripts, output results
- **Custom**: Define your own output patterns

## Troubleshooting

**Tasks not triggering?**
- Check Pipedream workflow is enabled
- Verify Discord channel is in Clawdbot config
- Ensure `allowBots: true` if using webhook

**Linear API errors?**
- Verify API key in `~/.clawdbot/linear.env`
- Check team/state IDs are correct

**Git push failing?**
- Ensure git remote is configured
- Check SSH key or credentials

Overview

This skill automates Linear task intake into a kanban-to-agent pipeline with Discord notifications and optional git sync. It listens for new Linear issues, notifies Clawdbot via a Discord channel, manages task lifecycle (Todo → In Progress → Done), and can auto-commit outputs to a repository or Obsidian vault. Use it to convert Linear tasks into reproducible agent actions and saved artifacts.

How this skill works

A webhook service (Make.com, Pipedream, or Zapier) watches Linear for new issues and posts formatted messages to a configured Discord task channel. Clawdbot picks up those messages, acknowledges them, DMs the configured user, updates Linear status via simple scripts, runs the task (or spawns sub-agents), and stores results in designated folders. If enabled, the skill stages, commits, and pushes produced files to git automatically.

When to use it

  • You want Linear-driven automation that triggers agent work via Discord.
  • You need real-time task acknowledgements and DM progress updates.
  • You want outputs saved to Obsidian/local files and optionally pushed to git.
  • You run research, content, code, or custom workflows from Linear tasks.
  • You prefer Make.com free-tier reliability or need instant Pipedream triggers.

Best practices

  • Use Make.com for free-tier reliability and predictable monthly ops.
  • Store your Linear API key in ~/.clawdbot/linear.env and keep IDs in linear-config.json.
  • Map Linear states to your workflow states (todo, inProgress, done) before activating webhooks.
  • Configure the Discord task channel in clawdbot.json and set allowBots for webhook messages.
  • Enable git autoPush only if the repo remote and credentials are preconfigured.

Example use cases

  • Research task: Linear issue spawns a sub-agent to research a topic and save notes to research/topic.md, then commit results.
  • Content creation: Create a brief in Linear, have the agent draft a post in content/, and push the draft to git.
  • Code task: Ticket requests a small code change; agent edits files, runs tests, commits, and opens a PR (if configured).
  • Data processing: Upload a job spec in Linear, agent runs scripts, outputs results to data/, and notifies completion.
  • Custom workflow: Any task type mapped to a folder structure and processing script, with automated status updates and DMs.

FAQ

Which webhook platform should I choose?

Use Make.com for cost-effective, reliable 15-minute polling on the free tier; choose Pipedream for instant triggers if you can accept limited free credits.

Where do I store API keys and config?

Put the Linear API key in ~/.clawdbot/linear.env and team/state/channel/git IDs in ~/.clawdbot/linear-config.json.