Skip to main content

LINEAR EXTENSIONS

Every Swamp extension that covers Linear, as published in the registry. Install any of them with swamp extension pull.

Extensions

Extension Version License Contents
@hivemq/linear 2026.03.30.14 - 1 behavior types
@mgreten/linear 2026.10.14.1 MIT 1 behavior types
@mgreten/linear-activity 2026.10.14.1 MIT 1 behavior types
@mgreten/graphite-linear-sync 2026.10.14.1 MIT 1 behavior types

@hivemq/linear

swamp extension pull @hivemq/linear

Behavior type @hivemq/linear

Global arguments, set with --global-arg on swamp behavior create:

Name Type Required Description
apiKey string yes Linear personal API key
defaultTeamId string no Default team ID used when no teamId is specified in a method call

Methods, run with swamp behavior run:

Method Description Arguments
createIssue Create a new issue in a Linear team, optionally inside a project title, description (optional), teamId (optional), projectId (optional), priority (optional), stateId (optional), assigneeId (optional)
listTeams List all Linear teams and sync them as resources -
listProjects List Linear projects, optionally filtered by team, and sync them as resources teamId (optional), filter (optional)
listStates List workflow states for a team and sync them as resources teamId (optional)

Data written:

Resource Description
issue A Linear issue created via the API
team A Linear team
project A Linear project
workflowState A Linear workflow state (e.g. Backlog, In Progress, Done)

@mgreten/linear

swamp extension pull @mgreten/linear

Behavior type @mgreten/linear

Global arguments, set with --global-arg on swamp behavior create:

Name Type Required Description
apiKey string yes Linear personal API key
defaultTeamId string no Default team ID used when no teamId is specified
defaultProjectId string no Default project ID for createMyIssue

Methods, run with swamp behavior run:

Method Description Arguments
getViewer Resolve the authenticated user's ID, name, and email -
createMyIssue Create an issue auto-assigned to the authenticated user with team/project defaults title, description (optional), priority (optional), projectId (optional), labels (optional)
getIssue Fetch a single issue by identifier (e.g. ENG-123) or UUID identifier
updateIssue Update fields on an existing issue identifier, title (optional), description (optional), stateId (optional), priority (optional), assigneeId (optional), projectId (optional)
deleteIssue Permanently delete one issue only after its live identifier and team match the caller's expectations identifier, expectedTeamKey, confirm
listIssues Query issues with filters teamId (optional), assignedToMe (optional), stateType (optional), projectId (optional), labelName (optional)
addLabels Attach labels to an issue by name (additive — preserves existing labels) identifier, labels
listLabels List available labels for a team teamId (optional)
createIssue Create an issue with full control over all fields title, description (optional), teamId (optional), projectId (optional), priority (optional), stateId (optional), assigneeId (optional), parentId (optional), estimate (optional)
createEpic Create an epic: a parent issue plus N child sub-issues linked to it. Children are created after the parent and inherit its teamId unless they set their own. parent, children
listTeams List all Linear teams and sync them as resources -
listProjects List Linear projects, optionally filtered by team or name substring teamId (optional), filter (optional)
getDocument Fetch a Linear document by UUID, slug ID, or canonical document URL idOrUrl
listProjectResources Fetch all documents and external links in a Linear project's Resources section projectId
listStates List workflow states for a team and sync them as resources teamId (optional)
listComments Fetch all comments on an issue as a single thread resource identifier
createComment Post a markdown comment on an issue identifier, body

Data written:

Resource Description
issue A Linear issue with resolved relations
team A Linear team
project A Linear project
document A Linear document with Markdown content
projectExternalLink An external link in a Linear project's Resources section
workflowState A Linear workflow state (e.g. Backlog, In Progress, Done)
viewer The authenticated Linear user
label A Linear issue label
commentThread The full comment thread on a Linear issue
issueDeletion Audit record for a verified Linear issue deletion

@mgreten/linear-activity

swamp extension pull @mgreten/linear-activity

Behavior type @mgreten/linear-activity

Global arguments, set with --global-arg on swamp behavior create:

Name Type Required Description
apiKey string yes Linear personal API key (lin_api_...)
teamKeys array of string no Linear team keys to scope activity to (e.g. ['ENG']). Empty = all teams.

Methods, run with swamp behavior run:

Method Description Arguments
daily_activity Gather today's Linear activity for the viewer: issues completed, moved to In Review, created, comments authored, and current in-flight assignments. When teamKeys is configured, results are scoped to those teams; otherwise all teams visible to the viewer are included. date (optional)

Data written:

Resource Description
linear_activity Linear activity for a viewer on a given date -- completed, in-review, created, comments, in-flight

@mgreten/graphite-linear-sync

swamp extension pull @mgreten/graphite-linear-sync

Behavior type @mgreten/graphite-linear-sync

Global arguments, set with --global-arg on swamp behavior create:

Name Type Required Description
apiKey string yes Linear personal API key (lin_api_...)
teamKeys array of string yes Linear team keys to scope to (e.g. ['ENG']). Used for extracting ticket IDs from PR bodies.
repo string yes GitHub owner/repo for PR lookups (e.g. 'myorg/my-repo')
repoPath string yes Local path to the repo for Graphite stack detection (e.g. '/home/user/repos/my-repo')

Methods, run with swamp behavior run:

Method Description Arguments
scan_stack Scan open PRs (optionally filtered to a Graphite stack) for Linear ticket references, compare PR merge status against Linear issue state, and produce a reconciliation report. When multiple PRs reference the same issue, the expected state is gated by the least-progressed open PR. branch (optional), includeRecent (optional)
true_up Transition Linear issues to match their linked PR states. Reads the latest scan_result and applies state changes. Only transitions issues that need updating. Defaults to dry-run mode. dryRun (optional)

Data written:

Resource Description
scan_result Reconciliation scan: PRs grouped by Linear issue with state comparison
true_up_result Results of transitioning Linear issues to match PR states