Skip to content

Feature: Label-based Runner Selection (Claude vs Codex vs Cursor) #1160

@hugolrf

Description

@hugolrf

Feature Request

Problem

Currently, label-based routing supports:

  • Model selection (opus, sonnet, gemini-*)
  • Mode selection (debugger, builder, scoper, orchestrator)
  • Tool restrictions

But there's no way to route issues to different AI providers/runners (Claude Code vs Codex vs Cursor) based on Linear labels.

Use Case

Users want to:

  • Route quick fixes to @cursor label → uses Cursor
  • Route complex tasks to @claude label → uses Claude Code
  • Route specific code tasks to @codex label → uses Codex

Proposed Solution

Add runner to labelPrompts configuration:

{
  "labelPrompts": {
    "debugger": {
      "labels": ["Bug"],
      "runner": "claude"
    },
    "fast-fix": {
      "labels": ["QuickFix"],
      "runner": "cursor"
    },
    "code-review": {
      "labels": ["CodeReview"],
      "runner": "codex"
    }
  }
}

Or via runner-specific labels:

{
  "runnerLabels": {
    "claude": ["@claude", "complex"],
    "codex": ["@codex", "refactor"],
    "cursor": ["@cursor", "quick-fix"]
  }
}

Alternatives Considered

  1. Multiple Cyrus instances - each with different defaultRunner - adds complexity
  2. Manual assignment in Linear - requires manual work

Environment

  • Cyrus version: latest
  • Installation: self-hosted
  • Platform: macOS/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions