Linear Integration for Obsidian
Convert Linear issue shortcodes like [TEAM-465] into clickable links with status-based styling in your Obsidian notes.
Linian is inspired by the excellent Jira Issue plugin for Obsidian created by marc0l92. We aimed to create a spiritual cousin that brings the same seamless issue integration experience to Linear users. Special thanks to marc0l92 for pioneering this workflow in the Obsidian ecosystem - their work showed us how powerful inline issue references can be for note-taking and project management.
Our goal was to match that same level of functionality and user experience, but tailored specifically for Linear's modern issue tracking approach.
- Automatic Detection: Recognizes Linear issue shortcodes in your notes (e.g.,
[TEAM-123]) - Rich Visual Feedback: Color-coded status indicators that match your issue states
- Inline Issue Cards: Render compact badges or expanded cards directly in your notesβno hover required
- Priority Icons: Visual priority indicators (π΄ Urgent, π High, π‘ Medium, π΅ Low)
- Assignee Avatars: See who's working on each issue at a glance
- Smart Caching: Efficient caching system to minimize API calls
- Customizable: Configure display options, cache settings, and more
- Open Obsidian Settings
- Go to Community Plugins and disable Safe Mode
- Click Browse and search for "Linian"
- Install and enable the plugin
Option 1: Download Plugin Folder (Recommended)
- Go to GitHub Releases
- Download the latest
linian-x.x.x.zipfile - Extract the zip file to get the
linianfolder - Copy the
linianfolder to your vault's.obsidian/plugins/directory - Enable the plugin in Obsidian Settings β Community Plugins
Option 2: Download Individual Files
- Go to GitHub Releases
- Download
main.js,manifest.json, andstyles.css - Create a folder named
linianin your vault's.obsidian/plugins/directory - Place the downloaded files in the
linianfolder - Enable the plugin in Obsidian Settings β Community Plugins
Tip: Prefer automated updates? Add
https://github.com/dotMavriQ/Linianto the BRAT community plugin and it will track the latestreleasebranch build for you.
For the latest development version:
- Clone this repository
- Run
npm install && npm run build - Copy the built files to your plugins directory using
./deploy.sh
-
Get your Linear API Key:
- Go to Linear Settings β API β Personal API Keys
- Create a new API key
- Copy the key (starts with
lin_api_)
-
Configure Linian:
- Open Obsidian Settings β Linian
- Paste your API key
- Test the connection
- Customize display options as needed
Simply type Linear issue identifiers in your notes using square brackets:
Working on [TEAM-465] and [DESIGN-123] today.
The bug in [ENG-789] is blocking [TEAM-466].
# Need more context?
[L_TEAM-465] will render the full title and metadata inline, similar to the Jira Issue plugin.Linian will automatically:
- Convert shortcodes to clickable links
- Add status-based color coding
- Show priority icons and assignee avatars
- Render expanded summaries when you prefix the shortcode with
L_
Issues are color-coded based on their Linear status:
- Backlog: Gray
- Todo/Unstarted: Purple
- In Progress: Blue
- Done/Completed: Green
- Canceled: Red
- π΄ Urgent (Priority 4)
- π High (Priority 3)
- π‘ Medium (Priority 2)
- π΅ Low (Priority 1)
- βͺ No Priority (Priority 0)
- Show Priority Icons: Display priority indicators
- Show Assignee Avatars: Show profile pictures
- Cache Timeout: How long to cache issue data (1-60 minutes)
- Max Cache Size: Maximum number of issues to cache (100-5000)
- View current cache statistics
- Clear cache when needed
- Automatic cache cleanup
- Refresh Linear Cache: Clear cached data and re-fetch issues
- Node.js 16+
- npm or yarn
git clone https://github.com/dotMavriQ/linian.git
cd linian
npm installnpm run devnpm run buildLinian uses the Linear GraphQL API. Make sure your API key has the following permissions:
- Read issues
- Read teams
- Read users (for assignee information)
- Verify your API key is correct
- Check your internet connection
- Test the connection in settings
- Clear the cache and try again
- Reduce cache timeout
- Decrease max cache size
- Disable avatars if not needed
- Ensure shortcodes follow the pattern
[TEAM-123](or[L_TEAM-123]for the expanded view) - Team keys must be uppercase
- Issue numbers must be numeric
- API keys are stored locally in your Obsidian vault
- Issue data is cached temporarily to improve performance
- No data is sent to third-party services except Linear's API
- All connections use HTTPS
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub Issues: Report bugs or request features
- Discussions: Join the community discussion
- Support development: Liberapay
- Linear for their excellent API
- Obsidian for the amazing platform
- The Obsidian community for inspiration and support
Made with β€οΈ for the Obsidian community