How to Export Linear Issues to Markdown (2026 Guide)
Linear is fast and opinionated — exactly what engineering teams want. It’s also where you accumulate enormous amounts of institutional knowledge: bug repros, design decisions, retrospectives, customer reports. Getting that content out as Markdown unlocks AI workflows, doc generation, and archival.
This guide covers every practical method to export Linear content.
Why Export Linear to Markdown?
- AI-assisted triage — feed recent issues to Claude or ChatGPT and ask “what themes are recurring?”
- Release notes from closed issues — Linear’s native “Build changelog” is great but inflexible; Markdown lets you mix and match
- Post-mortems — pull the incident issue plus all linked parents/children into a single Markdown doc for the retro
- RAG knowledge base — ingest closed issues into a vector store so future incidents surface relevant past ones
- Portfolio review — export a project’s issues as a single file for a stakeholder update
- Backup — sleep easier knowing you can reconstruct anything if Linear goes down
Method 1: Save Chrome Extension (fastest for 1–20 issues)
Save converts any Linear issue, project, or document page to clean Markdown with one click.
What Save captures from Linear:
- Issue title, status, priority, assignee, cycle, project
- Full description body with headings, code blocks, lists, and embedded attachments
- Labels and due dates as frontmatter
- Comment thread in posting order, with author + timestamp per comment
- Reactions inline (e.g.
[:tada: × 3]) - Linked-to issues (parent/child/blocks/blocked-by) as Markdown links
- Attachments (images, linked docs) as Markdown references
What Save strips:
- Linear sidebar, command bar, keyboard-shortcut hints
- Workspace chrome and account widgets
When it’s the right tool: pulling a handful of issues for a writeup, extracting an incident’s parent issue plus all children for a post-mortem, quick one-offs.
Method 2: Linear GraphQL API
For bulk exports or scripted integration, Linear’s GraphQL API is the canonical path.
Typical flow:
- Create a personal API key from Linear → Settings → API
- POST GraphQL queries to
https://api.linear.app/graphqlwith headerAuthorization: <api-key> - Query issues, comments, attachments, and linked issues
- Walk the response and emit Markdown
A starter query:
query {
issues(first: 100, filter: { project: { id: { eq: "PROJECT_ID" } } }) {
nodes {
identifier
title
description
state { name }
assignee { name }
priority
labels { nodes { name } }
comments { nodes { body user { name } createdAt } }
}
}
}
Pros: programmatic, supports filtering and pagination, perfect for recurring exports.
Cons: you write the Markdown serialiser; pagination for large projects.
Method 3: Linear CLI (@linear/cli)
Linear ships a CLI that wraps common GraphQL operations. Good for ad-hoc queries, less so for full Markdown exports.
Example:
npx @linear/cli issues list --project "Engineering Migration"
Output is plain text or JSON. Pipe through a converter (e.g. a small Node script or jq + template) to emit Markdown.
When it shines: quick scripted queries, CI jobs that don’t need full-fidelity export.
Method 4: Linear’s Built-in Export
Linear → Settings → Workspace → Export currently exports a CSV of issues. Useful for spreadsheet analysis; not Markdown. You’d still need to script the CSV-to-Markdown step.
The engineering-team workflow
Most Linear users fall into one of three buckets:
Bucket A: “I want this issue in my notes”
- Open the issue in Linear
- Click Save in your Chrome toolbar
- Markdown file lands in your downloads → drag into Obsidian / Notion / your RAG system
Bucket B: “Generate a release note from closed issues this cycle”
Use the GraphQL API:
query {
issues(filter: { cycle: { id: { eq: "CYCLE_ID" } }, state: { type: { eq: "completed" } } }) {
nodes { identifier title description labels { nodes { name } } }
}
}
Pipe to a Node script that emits a templated Markdown changelog. Open-source starter: linear-cli-tools.
Bucket C: “Pull a full project into a Markdown archive for a stakeholder”
- If it’s 20 or fewer issues: Save each one manually (fast).
- If it’s 100+: script the GraphQL API.
What AI agents want from Linear exports
When the goal is feeding the export to Claude or ChatGPT for synthesis:
- Keep the issue identifier (
ENG-1234) — the LLM often needs to reference it back - Preserve status transitions — “Backlog → In Progress → Done over 3 weeks” is more informative than just “Done”
- Flatten comment threads in chronological order — not grouped by author
- Include linked-issue titles, not just their IDs — “blocks ENG-1230 (broken onboarding flow)” is useful; “blocks ENG-1230” alone isn’t
Save’s extraction already does all of this — Linear is a tier-1 supported site and the output is tuned for LLM consumption.
The practical call
- Ad-hoc, 1–10 issues: Save. Free tier → 3/mo, Plus → unlimited for $5.99.
- Regular changelog generation: GraphQL API script, run from CI.
- Full workspace archival: GraphQL API + a serialisation script, one-time run.
- “Where did we decide X last quarter”: Save on the decision issue, drop into Claude with “summarise the thread’s decision” → answer in 5 seconds.
Linear is fast. Your exports should be too.
## Continue reading
How to Export Google Docs to Markdown (2026 Guide)
Every way to export Google Docs to clean Markdown — headings, tables, images, comments intact. One-click extension, built-in options, and API methods compared.
Obsidian Daily Notes + Web Clipping: A Simple System That Works
Combine Obsidian's Daily Notes with web clipping for a lightweight knowledge capture system. Clip articles, log insights, and build context over time.
PARA Method in Obsidian: Organize Your Web Clips Like a Pro
Use the PARA method (Projects, Areas, Resources, Archives) to organize web content saved to Obsidian. A practical guide to clipping and filing with purpose.
7 Obsidian Plugins That Make Web Clipping Actually Useful (2026)
The best Obsidian plugins for organizing, querying, and connecting web content saved as Markdown. Turn saved articles into a working knowledge system.
Written by
Jean-Sébastien Wallez
I've been making internet products for 10+ years. Built Save on weekends because I wanted my own reading library in clean markdown for Claude and Obsidian. Write here about web clipping, AI workflows, and the small things that make a personal knowledge base actually useful.