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/linearBehavior 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/linearBehavior 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-activityBehavior 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-syncBehavior 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 |