Skip to main content

Overview

This page is the second step in the Linear setup flow:
  1. Linear — save a shared API-key connection.
  2. Linear Automation (Auto-Pickup) — this page — have Genesis automatically claim matching Linear issues and dispatch coding work.
  3. Linear Connector Tools — for ad-hoc, manual Linear operations from inside an agent thread.
Genesis polls Linear for issues delegated to the configured Linear delegate name or ID (default Eve) across all accessible teams, regardless of their current state. When a match is found, Genesis transitions the issue to the working state before dispatch so two workers cannot claim the same ticket, opens or resumes a stable orchestrator thread, and keeps the Linear workflow aligned through review and needs info states.
All Linear automation controls are admin-scoped. You need Genesis admin access or manage_all_connections to see the Automation tab in the Linear connection modal on Config -> Connections. Open + New Connection, choose Linear under Dev Tools, or edit an existing Linear connection to switch tabs.
Linear automation requires a shared api_key connection. Personal connections and user_oauth connections are not supported for automation — the poller runs as a system principal and must continue work without the setup user’s OAuth session. The Automation tab lists only shared connections; a previously saved personal connection appears as unsupported.

Prerequisites

Before configuring automation, make sure all of the following are true:
  1. A shared Linear api_key connection has been saved in Genesis. See Linear.
  2. Your Linear teams use workflow states that match the lifecycle mapping you plan to configure (defaults: Agent-Working, HumanReview, Clarify).
  3. You have decided which Linear delegate name or ID should identify issues for pickup. The default is Eve.
  4. The selected coding backend is enabled and supports concurrent runs. Cursor’s local single-worktree adapter cannot safely run concurrent ticket claims, so the poller stays gated for that adapter. You can save intended settings before the gate opens; polling starts once a capable backend is active.

How pickup works

On each poll Genesis:
  1. Lists issues assigned to the configured Linear delegate name or ID across all accessible teams, regardless of status.
  2. For each candidate, transitions the issue to State on pickup before dispatch so concurrent pollers cannot double-claim.
  3. Opens or resumes a stable thread (linear-<connection>-<issue-key>) for the configured Genesis orchestrator.
  4. Dispatches a kickoff or resume prompt into that thread.
  5. Records every claim, dispatch, duplicate suppression, and provider status change in the Genesis observation ledger (visible on Requests when enabled).
Genesis resolves the delegate by name or ID and applies the configured state names in each issue’s team. Removing the delegate stops the attempt on the next poll.

Setup workflow

1

Save a shared Linear connection

In Config -> Connections, create or edit a Linear connection with Connection scope set to Shared connection and auth mode API Key. Test and save. See Linear.
2

Configure automation rules

Open the Linear connection modal, select the Automation tab, and set:
  • Enable Linear automation: on.
  • Linear connection: the shared connection (for example linear.shared).
  • Linear delegate name or ID: the delegate whose assigned issues Genesis should handle across all teams (default Eve).
  • Genesis orchestrator: usually Eve.
  • Poll interval (seconds): between 30 and 3600 (default 60).
  • Lifecycle mapping: working, review, and needs-info state names.
Save automation settings.
3

Verify the runtime gate

When the selected coding backend is disabled or cannot run concurrent tickets, the panel shows Automation runtime is gated with the reason. Settings can be saved; Poll now stays disabled until polling is allowed. Enable a capable backend, then use Poll now or wait for the next interval.
4

Verify end-to-end

Assign a test issue to the configured delegate in Linear. Within one poll interval, Genesis should claim it, transition it to the working state, and start orchestrator work in the linked thread.

Automation parameter reference

These fields are saved on the Automation tab. Read-only telemetry returned by GET /api/config/linear/automation:

Troubleshooting

Automation saves but never claims issues

  1. Enable Linear automation is on and a shared connection is selected.
  2. The issue’s state exactly matches Trigger state in the configured team scope.
  3. feature_enabled is true (the selected coding backend is enabled and supports concurrent runs). The UI blocks Poll now while gated.
  4. The shared API key can read and transition issues in the target team.

Personal connection appears in the dropdown

Automation requires a shared connection. Create or migrate to a shared api_key connection and re-select it on the Automation tab. Personal selections are shown as unsupported and cannot be saved while automation is enabled.

Two workers claimed the same issue

Genesis transitions to State on pickup before dispatch specifically to prevent this. If it still happens, verify only one Genesis deployment polls the same Linear workspace and that state names are unique within the team workflow.

Observing automation activity

See Requests for Linear issue activity. The Automation tab in the Linear connection modal includes a View requests → link to the Requests page.