# Linear AI employee

Viktor works in Linear for you. Ask in Slack or Microsoft Teams.

Viktor is an AI employee that connects to Linear and helps you plan, assign, and track project tasks, running 106 Linear actions for you like Fetch, Search, and Get diff. Ask in plain English from your workspace; Viktor does the work in Linear and reports back. Viktor connects natively.

- Tool: Linear
- Category: Productivity
- Connection: Managed connector (native integration)
- Actions available: 106
- Currently available in: Slack, Microsoft Teams, and Discord
- Page: https://viktor.com/integrations/linear

## What can your AI employee do in Linear?

Viktor connects to your Linear account and completes work in it. He doesn't just answer questions about Linear, he takes the actions on your behalf and delivers the finished result to your workspace.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Linear actions, chains them with the other 9,800+ tools he connects to, and asks for approval before anything sensitive runs.

### About Linear

Create and manage issues, projects, and workflows

### How a run works

1. **You ask in your workspace** - Describe what you need in plain English
2. **Viktor picks the actions** - Selects from 106 Linear actions, chains them together
3. **Runs in Linear** - Helps you plan, assign, and track project tasks - your real data.
4. **Reports back** - Delivers the finished result to your workspace

## Use Linear from Slack and Microsoft Teams

Message Viktor in a Slack channel, a Microsoft Teams chat or a direct message. He opens Linear, does the work and posts the result in the same thread, so nobody has to switch tabs.

He can also run Linear work on a schedule, like a weekly Linear summary posted to your team's channel. Anything sensitive waits for your approval before it runs.

## Security and permissions

- Native integration - Viktor handles authorization itself, never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive Linear actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.
- Viktor is not affiliated with or endorsed by Linear.

## What can you ask Viktor to do in Linear?

- "Create tasks in Linear from the action items in this thread."
- "Summarize what changed in Linear this week and post it here every Friday."
- "Find the tasks in Linear that are overdue and draft a status update."
- "Keep Linear in sync with our roadmap and flag anything at risk."

## How does Viktor work with Linear?

1. Open Viktor in a supported workspace.
2. Connect Linear natively - Viktor handles authentication.
3. Ask in plain English. Viktor runs the Linear actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What can Viktor do in Linear? (106 actions)

- **Create attachment** - Deprecated fallback for tiny files only. Accepts base64 file content, verifies SHA-256 checksum, and uploads it through the MCP worker.
- **Create attachment from upload** - Link an already-uploaded Linear assetUrl to an existing issue as an attachment.
- **Create comment** - Create a comment on a specific Linear issue.
- **Create document** - Create a new document in Linear.
- **Create initiative** - Create a new initiative in Linear.
- **Create initiative label** - Create a new Linear initiative label. Deprecated: use saveinitiativelabel, which can also update labels.
- **Create initiative update** - Create a new initiative update in Linear.
- **Create issue** - Create a new Linear issue.
- **Create issue label** - Create a new Linear issue label. Deprecated: use saveissuelabel, which can also update labels.
- **Create milestone** - Create a new milestone in a Linear project.
- **Create project** - Create a new project in Linear.
- **Create project update** - Create a new project update in Linear.
- **Delete attachment** - Remove an attachment link from an issue's Resources. This does not delete the stored file. Use the attachment ID from getissue's attachments array, not a UUID from the upload URL.
- **Delete comment** - Delete a Linear comment. Inline description comments (those with non-null quotedText) anchor a mark in the editor, so their root cannot be deleted — delete the replies individually or resolve the thread instead.
- **Delete customer** - Delete a customer in Linear.
- **Delete customer need** - Archive a customer need (request) in Linear.
- **Delete diff comment** - Delete a comment or persisted draft from a Linear diff.
- **Delete initiative update** - Delete (archive) an existing Linear initiative update.
- **Delete status update** - Delete (archive) a project or initiative status update.
- **Extract images** - Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. Pass the markdown content (e.g., issue description) and receive the images as viewable data.
- **Fetch** - Fetch a Linear issue, project, initiative, or document by entity-prefixed ID. Use to get full details for results returned by the search tool. Also works with any known identifier.
- **Get agent skill** - Retrieve a Linear Agent skill by ID, including its full markdown instructions.
- **Get attachment** - Retrieve an issue attachment by ID. Use format=url to get its title and download URL without fetching the file content. Linear upload URLs are signed for five minutes; call again to refresh. External URLs are returned unchanged. Files embedded in comments have no issue attachment ID; use the URLs in listcomments attachments instead. Download and process documents with your own file tools.
- **Get authenticated user** - Retrieve the profile of the currently authenticated user.
- **Get diff** - Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
- **Get diff threads** - Exact lookup for diff threads and the authenticated user's drafts. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
- **Get document** - Retrieve a Linear document by ID or slug.
- **Get initiative** - Retrieve detailed information about a specific initiative in Linear.
- **Get issue** - Retrieve detailed information about an issue by ID, including attachments, git branch name, and active Triage Intelligence suggestions when the issue is in triage. A nonempty fields selection overrides the include options; request optional fields directly in fields.
- **Get issue status** - Retrieve detailed information about an issue status in Linear by name or ID.
- **Get milestone** - Retrieve details of a specific milestone by ID or name.
- **Get notifications** - Get a page of notifications from the authenticated user's Linear inbox.
- **Get project** - Retrieve details of a specific project in Linear.
- **Get project update** - Retrieve a Linear project update by ID.
- **Get release** - Retrieve details of a release by ID or slug.
- **Get release note** - Retrieve release notes by ID or slug, including markdown content.
- **Get status updates** - List or get project/initiative status updates with their body, health, author, and parent project or initiative. Pass id to get one update and ignore list filters; omit id to list.
- **Get team** - Retrieve details of a specific Linear team, including its parent ID and hierarchy name. Use listteams with parentTeam or ancestorTeam to find its sub-teams.
- **Get template** - Retrieve a Linear template by ID or name: the content it pre-fills, the ids it applies, its sub-issues, and its form fields. Pass the template to saveissue or saveproject to apply it. References come back as ids, so read a name with the matching tool when you need one. A form template collects its answers through a form, so applying one here creates an issue with the form unanswered.
- **Get triage responsibility** - Retrieve who is responsible for a team's triage: the person on triage now, what happens when an issue enters triage, and the upcoming shifts of the team's triage rotation. Pass user to get only that person's shifts, for example to find when their next triage duty starts, even when it is weeks away.
- **Get user** - Retrieve one user's profile, email, admin, guest, and active flags, plus team IDs, names, and keys. Use listusers to find matching users.
- **Get workspace** - Retrieve the connected workspace's ID, name, and URL to confirm which workspace you are using.
- **List agent skills** - List Linear Agent skills available to the authenticated user.
- **List comments** - List comments on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. Provide exactly one of issueId, projectId, initiativeId, documentId, milestoneId, or statusUpdateId. For issues, projects, and initiatives this returns both top-level discussion threads and inline description comments. Inline (anchored) comments carry a non-null quotedText set to the snippet of description text they reference. Returned comments include author and nullable onBehalfOf; when set, onBehalfOf identifies the user the agent author acted for. Files uploaded in comment bodies are returned in attachments with titles and download URLs, not issue attachment IDs. Signed upload URLs expire after five minutes; call listcomments again to refresh them. Download documents using these URLs and process them with your own file tools.
- **List customer needs** - List customer needs (customer requests) for an issue, project, or initiative. Provide exactly one of issue, project, or initiative. Project results include requests linked to the project's issues; initiative results include requests on projects in the initiative or any of its sub-initiatives, and on their issues. Returns requests on closed work too; each need includes its issue's workflow state and its project's status so callers can filter. Paginated; pass cursor from the previous page to fetch the next.
- **List customers** - List customers in the user's Linear workspace.
- **List custom views** - Find saved issue, project, and initiative views accessible to the user, including personal, workspace, and team views. Excludes archived views and views scoped to a project or initiative. Returns view metadata, not the records matching its filters.
- **List cycles** - List a team's cycles with their IDs, numbers, dates, and issue and scope histories.
- **List diffs** - List Linear diff pull requests visible to the authenticated user.
- **List documents** - List documents in the user's Linear workspace.
- **List initiative labels** - List available initiative labels in the Linear workspace. A retired label carries retiredAt and cannot be applied to new initiatives.
- **List initiatives** - List initiatives in the user's Linear workspace.
- **List initiative updates** - List initiative updates in the user's Linear workspace.
- **List issue labels** - List available issue labels in a Linear workspace or team. A retired label carries retiredAt and cannot be applied to new issues.
- **List issues** - List issues in the user's Linear workspace, including active Triage Intelligence suggestions for issues in triage. For issues assigned to me, use "me" as the assignee. For issues created by me, use "me" as the creator. Use "null" for no assignee.
- **List issue statuses** - List available issue statuses in a Linear team.
- **List milestones** - List all milestones in a Linear project.
- **List project labels** - List available project labels in a Linear workspace or team. Returns workspace labels by default; pass team to also include that team's labels. A team-scoped label carries a team field; different teams can hold same-named labels, so check it before acting on an ID. A retired label carries retiredAt and cannot be applied to new projects.
- **List projects** - List projects in the user's Linear workspace.
- **List project updates** - List project updates in the user's Linear workspace.
- **List release notes** - List release notes in the workspace, optionally filtered by pipeline or covered release.
- **List release pipelines** - List release pipelines in the workspace.
- **List releases** - List releases in the workspace, with optional filtering by pipeline, stage, version, and text.
- **List teams** - List teams in the user's Linear workspace, including their parent IDs and hierarchy names.
- **List templates** - List the Linear issue, project, and document templates available to the authenticated user. Use this to find the template a team expects, then call gettemplate for its content.
- **List users** - List workspace users with their IDs, names, emails, and admin, guest, and active flags. Use getuser for team memberships.
- **Mark notification** - Mark a Linear inbox notification as read or unread, or snooze or unsnooze it.
- **Merge diff** - Merge a Linear diff or add it to the repository's merge queue.
- **Prepare attachment upload** - Prepare a direct Linear file upload for an existing issue.
- **Query data** - Query data and relationships from the Linear API with natural language.
- **Research** - Send a natural-language query to Linear and get a response. Use this tool for complex queries, analytics, multi-step actions, and any request that spans multiple entities or requires reasoning — for example "what's blocking my projects?", "summarize this week's updates for my teams", or "create an issue and assign it to the frontend team". This tool can search, create, and update issues, projects, initiatives, documents, comments, labels, customers, and more. Prefer this tool over making multiple individual API calls when the task involves cross-referencing data, generating summaries, or performing actions that require context. This tool also has access to data that is not exposed through other tools. If you are not able to find the right tool send a query to the research tool to search further. Supports multi-turn conversations by passing the returned conversationId.
- **Resolve diff thread** - Resolve or reopen a top-level comment thread on a Linear diff.
- **Restore initiative label** - Restore a retired Linear initiative label, making it available for use on initiatives again. Restoring a label group also restores every child label, including any that were retired separately.
- **Restore issue label** - Restore a retired Linear issue label, making it available for use on issues again. Restoring a label group also restores every child label, including any that were retired separately.
- **Restore project label** - Restore a retired Linear project label, making it available for use on projects again. Restoring a label group also restores every child label, including any that were retired separately.
- **Retire initiative label** - Retire a Linear initiative label so it cannot be applied to new initiatives. The label stays visible on initiatives that already have it. Retiring a label group also retires its child labels. Undo with restoreinitiativelabel.
- **Retire issue label** - Retire a Linear issue label so it cannot be applied to new issues. The label stays visible on issues that already have it. Retiring a label group also retires its child labels. Undo with restoreissuelabel.
- **Retire project label** - Retire a Linear project label so it cannot be applied to new projects. The label stays visible on projects that already have it. Retiring a label group also retires its child labels. Undo with restoreprojectlabel.
- **Save comment** - Create or update a comment on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. If id is provided, updates the existing comment; otherwise creates a new one. To start a new thread, pass body and exactly one of issueId, projectId, initiativeId, documentId, milestoneId, or statusUpdateId — comments on issues/projects/initiatives become top-level discussion threads; comments on documents/milestones become description comments. A status update holds a single thread, so a comment on an update that already has one is added to it as a reply. To reply to an existing thread, pass parentId and body; the reply inherits the parent's thread type, so no entity reference is needed. Parent reference fields are ignored when id or parentId is provided (statusUpdateType is rejected instead).
- **Save customer** - Create or update a Linear customer. If id is provided, updates the existing customer; otherwise creates a new one. When creating, name is required.
- **Save customer need** - Create or update a customer need (request) in Linear. If id is provided, updates the existing need; otherwise creates a new one. When creating, body is required.
- **Save diff comment** - Create, reply to, or edit a comment or persisted draft on a Linear diff. Set draft to true to save without submitting. Provide draftId to edit or submit a persisted draft, and commentId only to edit a submitted comment. Submitting an inline draft reuses its saved anchor; submitting a reply draft requires parentId again.
- **Save document** - Create or update a Linear document. If id is provided, edits the existing document; otherwise creates a new one. When creating, title is required and exactly one parent (project, issue, initiative, cycle, or team) must be specified. On update, passing a parent reparents the document. To change parts of the content without resending all of it, pass patch instead of content.
- **Save initiative** - Create or update a Linear initiative. If id is provided, updates the existing initiative; otherwise creates a new one. When creating, name is required. To change parts of the description without resending all of it, pass patch instead of description.
- **Save initiative label** - Create or update a Linear initiative label. If id is provided, updates the existing label; otherwise creates a new one. When creating, name is required.
- **Save issue** - Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, team is required, and title is required unless template is set. Note: use assignee (not assigneeId) to set the assignee — it accepts a user ID, name, email, or "me".
- **Save issue label** - Create or update a Linear issue label. If id is provided, updates the existing label; otherwise creates a new one. When creating, name is required.
- **Save milestone** - Create or update a milestone in a Linear project. If id is provided, updates the existing milestone; otherwise creates a new one. When creating, name is required.
- **Save project** - Create or update a Linear project. If id is provided, updates the existing project; otherwise creates a new one. When creating, name and at least one team (via addTeams or setTeams) are required. Pass template to create the project from a project template. To change parts of the description without resending all of it, pass patch instead of description. state resolves against the project statuses of the lead team, so pass leadTeam when creating a multi-team project whose teams use different statuses.
- **Save project label** - Create or update a Linear project label. If id is provided, updates the existing label; otherwise creates a new one. When creating, name is required.
- **Save release** - Create or update a release. If id is provided, updates the existing release; otherwise creates a new one. When creating, name and pipeline are required. Release status is modeled as the release pipeline stage.
- **Save release note** - Create or update release notes. If id is provided, updates the existing release notes; otherwise creates a new one. When creating, pipeline and either releases or a release range are required. To change parts of the content without resending all of it, pass patch instead of content.
- **Save status update** - Create or update a project/initiative status update and return the saved update. To create, omit id and provide body plus project or initiative matching type. To update, provide id; project and initiative are ignored.
- **Search** - Full-text search across Linear issues, projects, initiatives, and documents, ranked by relevance. Use this for keyword or natural-language queries (e.g. "memory leak in sync engine"). Supports "quoted phrases" for exact match, -term to exclude, and +term to require. For structured filtering by assignee, status, team, label, etc., use the listissues or listprojects tools instead.
- **Search documentation** - Search Linear's product documentation for feature and usage guidance. Returns up to five results with titles, URLs, and content snippets per page.
- **Share issue** - Share an issue with a workspace user who cannot otherwise access it. Use this tool only when the user explicitly asks to share the issue.
- **Submit diff review** - Approve a Linear diff, request changes, or submit a review comment.
- **Unshare issue** - Remove a workspace user's shared access to an issue. Use this tool only when the user explicitly asks to stop sharing the issue.
- **Update diff** - Update a Linear diff's title, description, reviewer requests, issue links, or status. Provide at least one update. Combined updates can partially succeed; inspect the result before retrying. Use mergediff to merge and submitdiffreview to approve or request changes.
- **Update document** - Update an existing Linear document.
- **Update initiative** - Update an existing Linear initiative.
- **Update initiative update** - Update an existing Linear initiative update.
- **Update issue** - Update an existing Linear issue.
- **Update milestone** - Update an existing milestone in a Linear project.
- **Update project** - Update an existing Linear project.
- **Update project update** - Update an existing Linear project update.

## Viktor uses Linear together with

- [Slack](https://viktor.com/integrations/slack)
- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Salesforce](https://viktor.com/integrations/salesforce)
- [Stripe](https://viktor.com/integrations/stripe)

## More Productivity integrations

- [GitHub](https://viktor.com/integrations/github)
- [Jira & Confluence](https://viktor.com/integrations/jira-confluence)
- [Asana](https://viktor.com/integrations/asana)
- [Monday.com](https://viktor.com/integrations/monday-com)
- [Notion](https://viktor.com/integrations/notion)
- [Miro](https://viktor.com/integrations/miro)
- [ServiceM8](https://viktor.com/integrations/servicem8)
- [ClickUp](https://viktor.com/integrations/clickup)

## FAQ

### Does Viktor integrate with Linear?

Yes. Linear is one of the 9,800+ tools Viktor connects to, as one of Viktor's native, deepest integrations. Once connected, anyone on your team can put Viktor to work in Linear from their workspace - no workflow builder, no code.

### How do I connect Linear to Viktor?

Ask Viktor in your workspace to connect Linear. It's one of Viktor's native integrations, so Viktor handles authorization itself and starts working right away. Setup takes about two minutes, and you can revoke access at any time.

### What can Viktor do in Linear?

Viktor can run 106 Linear actions, including Fetch, Search, and Get diff - and chain them with other tools in a single request. In practice that means Viktor helps you plan, assign, and track project tasks. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows for Linear?

No. Viktor isn't a workflow builder - there are no triggers to map and nothing to maintain. You ask for the outcome in plain English in your workspace, and Viktor decides which Linear actions to take, runs them, and reports back.

### Is my Linear data secure with Viktor?

Yes. Viktor connects to Linear natively, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the Linear integration cost?

Nothing extra - every integration, including Linear, is available on every plan. You can start free with up to $100 in credits, no credit card required; the Team plan is $100 a month.

### Can Viktor use Linear together with my other tools?

Yes - that's the point. Viktor connects to 9,800+ tools and works across them in a single run: he can pull data from Linear, cross-reference it with another tool - for example Slack or Gmail, and deliver the finished result in your workspace.

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 9,800+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
