LLM Skills
~/catalog/project management//SKILL
Project managementGitHub source

Linear Todo Sync

/SKILL

Automatically fetch assigned Linear tasks and generate a comprehensive markdown todo list in your project root. This skill queries the Linear GraphQL API to retrieve all open tasks assigned to you, or

qdhenryqdhenry
1.3k
March 1, 2026
// skill content

--- name: Linear Todo Sync description: This skill fetches open tasks assigned to the user from the Linear API and generates a markdown todo list file in the project root. This skill should be used when the user asks about their work items, wants to see what they need to work on, or requests to load/sync their Linear tasks. Requires Python 3.7+, requests, mdutils, and python-dotenv packages. Requires LINEARAPIKEY in .env file. allowed-tools: Read, Write, Bash, Glob license: MIT --- # Linear Todo Sync Automatically fetch assigned Linear tasks and generate a comprehensive markdown todo list in your project root. This skill queries the Linear GraphQL API to retrieve all open tasks assigned to you, organizing them by project with full details including status, priority, labels, estimates, and due dates. ## Setup ### 1. Install Required Packages Install the Python dependencies: ``bash pip install requests mdutils python-dotenv ` Or using conda: `bash conda install requests python-dotenv pip install mdutils ` ### 2. Obtain Linear API Key 1. Navigate to [Linear API Settings](https://linear.app/settings/api) 2. Click "Create new key" under Personal API Keys 3. Give it a descriptive name (e.g., "Claude Code Sync") 4. Copy the generated API key ### 3. Configure Environment Create a .env file in your project root: `bash cp .claude/skills/linear-todo-sync/assets/.env.example .env ` Edit .env and add your API key: ` LINEAR_API_KEY=lin_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ` **Important**: Ensure .env is in your .gitignore to protect your API key. ### 4. Verify Setup Test the configuration by running: `bash python .claude/skills/linear-todo-sync/scripts/sync_linear_tasks.py ` A markdown file named linear-todos-YYYY-MM-DD.md should appear in your project root. ## How It Works When triggered, this skill: 1. **Loads credentials** from the .env file in your project root 2. **Queries Linear API** using GraphQL to fetch all assigned issues in non-completed states 3. **Retrieves task details** including title, description, status, priority, labels, estimates, due dates, project, and URL 4. **Groups tasks by project** for better organization 5. **Generates markdown file** with filename linear-todos-YYYY-MM-DD.md in the project root 6. **Outputs summary** showing total tasks and project count The generated markdown file provides a comprehensive view of your work with all relevant task metadata, making it easy to review priorities and plan your day. ## Usage Trigger this skill with phrases like: - "What do I need to work on this morning" - "Show me my work" - "Load work" - "Sync my Linear tasks" - "Get my todo list from Linear" The skill will execute the sync script and create a dated markdown file in your project root. ## Generated File Format The markdown file follows this structure: `markdown # Linear Tasks - January 18, 2025 Generated: 2025-01-18 09:30:45 Total Tasks: 12 ## Project Alpha ### Implement user authentication (High) - **Status**: In Progress - **Labels**: backend, security - **Estimate**: 5 points - **Due**: 2025-01-20 - **Link**: https://linear.app/team/issue/PROJ-123 Add JWT-based authentication to the API endpoints... ### Fix login bug (Urgent) - **Status**: Todo - **Labels**: bug, frontend - **Estimate**: 2 points - **Due**: 2025-01-19 - **Link**: https://linear.app/team/issue/PROJ-124 Users cannot log in when using Safari... ## Project Beta ... ` ## Customization To modify the skill's behavior, edit scripts/synclineartasks.py: ### Change GraphQL Query Modify the QUERY variable to fetch additional fields: `python QUERY = """ query { viewer { assignedIssues(filter: { state: { type: { nin: ["completed", "canceled"] } } }) { nodes { id title description state { name } priority labels { nodes { name } } estimate dueDate project { name } url # Add more fields here createdAt updatedAt assignee { name } } } } } """ ` ### Adjust Task Filtering Modify the filter in the GraphQL query to change which tasks are fetched: `python # Include completed tasks from the last week filter: { state: { type: { nin: ["canceled"] } } completedAt: { gte: "2025-01-11" } } ` ### Modify Output Format Customize the markdown generation in the generate_markdown() function to change structure, add sections, or include different metadata. ### Change Output Location Update the output_path variable in main(): `python # Save to a different directory output_path = os.path.join(project_root, "docs", filename) ` ## Troubleshooting ### Error: "LINEAR_API_KEY not found in environment" **Cause**: The .env file is missing or doesn't contain the API key. **Solution**: 1. Verify .env exists in your project root (not in the skill directory) 2. Check that it contains: LINEARAPIKEY=linapi...` 3. En

// original public source
qdhenry/Claude-Command-Suite
/.claude/skills/linear-todo-sync/SKILL.md
License: License not specified. Review the repository before reusing it.
Independent project, not affiliated with Anthropic. This skill remains the property of its original author.
// install this skill
Paste this command in your terminal at the root of your project:
mkdir -p .claude/commands && curl -o ".claude/commands/SKILL.md" "https://raw.githubusercontent.com/qdhenry/Claude-Command-Suite/main/.claude/skills/linear-todo-sync/SKILL.md"
Then in Claude Code, type /SKILL to activate it.
open_in_newOpen original source
// save
Save available after sign in.
loginSign in to save
// information
Creatorqdhenry
Stars 1.3k
UpdatedMarch 1, 2026
Format.md
AccessFree
// similar

Skills Project management

View allarrow_forward