Introducing Linear Task plugin for IntelliJ IDE
An IntelliJ Task server plugin to view and manage Linear issues from within the IDE
4 min read
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!
View the task list within the IDE along with the description and comments.
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.
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.
When you have completed the work, close the task committing changes, merging the branch, and updating the Linear state.
- Open any JetBrains IDE
- Navigate to Settings/Preferences | Plugins | Marketplace
- Search for Linear Tasks
- Install the plugin and click Apply
- Navigate to Settings | Tools | Tasks | Servers
- Click on add button and select Linear from the dropdown.
- Set your Linear Team ID and API Key
- Click on Test to validate the settings
- Apply the changes and click OK
To view the list of tasks, you can use any of the following 2 ways:
Using dropdown in Toolbar, click on Open Task
Using Menubar. Navigate to Tools | Tasks and Contexts | Open Task
A dialog showing tasks will open
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
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.
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
You will see that issue has moved to the selected state on your Linear board
Closing the task
To close the task, go to the menu bar and navigate to Tools | Tasks and Contexts | Close Active Task
Close Task dialog will open with options to commit changes, merge branch, and update issue state
Check Update issue state and select the desired state from the dropdown. Let's select Done.
You will see that issue has moved to the Done state on your Linear board
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.
- 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