Linear
approvedby Casey Becking
Integrate Linear issues with advanced filtering, sorting, and visual enhancements. Features include due date indicators, status colors, and comprehensive debug logging.
Linear Plugin for Obsidian
This plugin integrates Linear (https://linear.app) with Obsidian (https://obsidian.md), allowing you to embed and filter Linear issues directly in your notes.
Note: This plugin is currently desktop-only and does not support mobile devices.
Features
- Fetch and embed one or more Linear issues by their IDs directly in your notes
Fetch Linear Issues by ID
You can pull one or more specific Linear issues into your notes using a code block with the issue IDs:
Single Issue
```linear
id: ISSUE_ID
```
- Replace
ISSUE_IDwith the actual Linear issue ID (e.g.,1234,LIN-123, or the unique identifier from Linear). - You can also use
issueIdas the key if you prefer.
Multiple Issues
```linear
ids:
- LIN-123
- LIN-456
- LIN-789
```
- List as many IDs as you want under
ids:(YAML array format). - The plugin will fetch and render each issue in the order listed.
- If an ID is not found, an error message will be shown for that ID.
This is useful for referencing or embedding individual issues from your team's projects directly into your Obsidian notes.
Display Options
You can customize how issues are displayed using YAML options in the code block:
Limit Number of Issues
To limit the number of issues displayed, use the limit option:
limit: 5
This will show only the 5 most recent issues. If no limit is specified, all issues will be displayed.
Filter by Team
To show issues from a specific team, use the team option with the team's name:
team: Engineering
Filter by Status
To show issues with a specific status, use the status option with the status name:
status: In Progress
The status name matching is case-insensitive and forgiving of special characters, so "inprogress" and "In Progress" will work the same way.
Filter by Assignee
To show issues assigned to a specific person, use the assignee option with their email address:
assignee: user@example.com
Sort by Due Date
To sort issues by their due date, use the sorting option:
sorting: dateascending # Sort by due date, oldest first
sorting: datedescending # Sort by due date, newest first
Hide Description
To show only issue titles without descriptions, use the hideDescription option:
hideDescription: true
Combining Options
You can combine multiple options to create specific views:
team: Engineering
status: In Progress
assignee: user@example.com
sorting: dateascending
hideDescription: true
limit: 3
This will show the 3 oldest In Progress issues from the Engineering team that are assigned to the specified user, without descriptions.
Visual Enhancements
Due Date Indicators
Issues display due dates with color-coded badges and emoji indicators:
- 📅 Due Today (orange)
- 📅 Due Tomorrow (blue)
- ⚠️ Overdue (red)
- 📅 Upcoming (green)
- 📅 No due date (gray)
Status Colors
Each status is displayed with a color-coded badge matching your Linear workflow states.
Debug Mode
The plugin includes a debug mode that can be enabled in settings. When enabled, it provides comprehensive logging (prefixed with 🔄) in the developer console, helping you troubleshoot:
- Plugin initialization and settings changes
- API requests and responses
- Filter applications and option parsing
- Due date calculations
- Status matching
- Team identification
- Description rendering decisions
To use debug mode:
- Open Obsidian Settings
- Go to Community Plugins > Linear
- Enable the "Debug Mode" toggle
- Open the developer console (Ctrl+Shift+I or Cmd+Option+I)
- Look for messages prefixed with 🔄
Debug logs are only shown when debug mode is enabled, keeping your console clean during normal operation.
Error Handling
The plugin includes comprehensive error handling:
- Detailed error messages showing both team and status context
- Graceful fallback for invalid status names
- Automatic status name normalization
- Cache management for workflow states
- Clear distinction between expected conditions and actual errors
Installation
Requirements:
- Obsidian Desktop (Mobile devices are not supported)
- Open Obsidian Settings
- Go to Community Plugins and disable Safe Mode
- Click Browse and search for "Linear"
- Install the plugin and enable it
Configuration
- Get your Linear API key from Linear's settings
- Open the plugin settings in Obsidian
- Enter your Linear API key
- (Optional) Enable debug mode to see detailed logs in the developer console
Development
Prerequisites
- NodeJS v16 or higher
- npm or yarn
Setup
- Clone this repository
- Run
npm installoryarnto install dependencies - Run
npm run devto start compilation in watch mode
Building
Run npm run build to create a production build.
Testing
To test the plugin in Obsidian:
- Build the plugin using
npm run build - Copy
main.js,manifest.json, andstyles.cssto your Obsidian plugins directory - Enable the plugin in Obsidian
- Create a code block with the language set to
linear - Check the developer console (Ctrl+Shift+I or Cmd+Option+I) for debug logs
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.