Introducing Linear Task plugin for IntelliJ IDE

An IntelliJ Task server plugin to view and manage Linear issues from within the IDE

What's Linear?

Linear.app is a modern issue tracking tool that is fast, easy to use, beautiful, and enjoyable. Its keyboard-centric design provides numerous shortcuts to make you more efficient in managing your projects, tasks, roadmap, and sprints. Integrate with your favorite services using its various integrations like Github, GitLab, Slack, Figma, Sentry, Zapier, Zendesk, and Google Sheets. If that's not enough, you can even create your own custom workflow with their GraphQL based API.

Why the plugin?

I, like many other developers, spend a lot of my time within the IDE. I thought "what if I could manage the Linear tasks straight from the comfort of my IDE?" The Generic Task server in IntelliJ should do the job but unfortunately, it doesn't support GraphQL. That's why I created the Linear Tasks plugin for IntelliJ-based IDE using which you can view the task list, open and close a task, updating the issue status right within your IDE.

In this article, we'll walk through the plugin features, install the plugin and configure it. We'll then see the plugin in action, viewing the task list, the task description, open a task and close it, watching the task change its state on the Linear board as we perform these operations. Let's get started!

Features

View Tasks

View the task list within the IDE along with the description and comments. View tasks.png

See it in browser

Want to see the task in the browser. Just click the link in the task description to view it on the Linear website. SeeTaskInBrowser.png

Open Task

Double click any task in the list to start working on it. Create a branch and a changelist from the dialog. Update the task state by selecting one of the Linear states from the dropdown. No need to go to the Linear page to update the status manually. Open task.png

Close Task

When you have completed the work, close the task committing changes, merging the branch, and updating the Linear state. Close task.png

Installation

  1. Open any JetBrains IDE
  2. Navigate to Settings/Preferences | Plugins | Marketplace Marketplace.png
  3. Search for Linear Tasks LinearTasksPlugin.png
  4. Install the plugin and click Apply pluginInstalled.png

Configuration

  1. Navigate to Settings | Tools | Tasks | Servers TasksServer.png
  2. Click on add button and select Linear from the dropdown. SelectLinearTaskServer.png
  3. Set your Linear Team ID and API Key configuration.png
  4. Click on Test to validate the settings testConfiguration.png
  5. Apply the changes and click OK

Viewing tasks

  • To view the list of tasks, you can use any of the following 2 ways:

    • Using dropdown in Toolbar, click on Open Task OpenTaskDropdown.png

    • Using Menubar. Navigate to Tools | Tasks and Contexts | Open Task OpenTaskFromMenuBar.png

  • A dialog showing tasks will open TasksListDialog.png

  • You can view the details of any Task including the description and comments by using the Quick documentation lookup shortcut i.e. F1 for Mac and Ctrl + Q for Windows and Linux TaskDetails.png

Opening a task

  • Select the task from the list and double-click on it. Open Task dialog will appear having various options like creating a new branch and changelist. OpenTaskDailog.png

  • Check Update issue state. The dropdown shows all the states present in your Linear board. Select the desired state from the dropdown you want the issue to move to. Let's select In Progress UpdateIssueState.png

  • You will see that issue has moved to the selected state on your Linear board LinearBoardAfterOpeningTask.png

Closing the task

  • To close the task, go to the menu bar and navigate to Tools | Tasks and Contexts | Close Active Task CloseActiveTask.png

  • Close Task dialog will open with options to commit changes, merge branch, and update issue state CloseTaskDialog.png

  • Check Update issue state and select the desired state from the dropdown. Let's select Done. UpdateStateCloseIssue.png

  • You will see that issue has moved to the Done state on your Linear board LinearBoardDoneState.png

That's All Folks!

I made the plugin to fulfill my needs but decided to share it with you all. Hope you like it! Also, the project linear-app-plugin is completely open-source, so feel free to dive into the code, raise an issue or create a PR and I'll be waiting for your feedback to make it even better.

Give it a try and share the joy! Install the plugin now.

Thanks

  • Linear for creating the awesome tool
  • JetBrains, the creators of some of the best IDEs in the world for providing support for creating plugins
  • Mikhail Golubev and Jakub Chrzanowski from JetBrains for helping me get started with the implementation of the plugin
  • Umbert and Ekion for being the early adopters