mdcontext 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changeset/README.md +28 -0
- package/.changeset/config.json +11 -0
- package/.claude/settings.local.json +25 -0
- package/.github/workflows/ci.yml +83 -0
- package/.github/workflows/claude-code-review.yml +44 -0
- package/.github/workflows/claude.yml +85 -0
- package/.github/workflows/release.yml +113 -0
- package/.tldrignore +112 -0
- package/BACKLOG.md +338 -0
- package/CONTRIBUTING.md +186 -0
- package/NOTES/NOTES +44 -0
- package/README.md +434 -11
- package/biome.json +36 -0
- package/cspell.config.yaml +14 -0
- package/dist/chunk-23UPXDNL.js +3044 -0
- package/dist/chunk-2W7MO2DL.js +1366 -0
- package/dist/chunk-3NUAZGMA.js +1689 -0
- package/dist/chunk-7TOWB2XB.js +366 -0
- package/dist/chunk-7XOTOADQ.js +3065 -0
- package/dist/chunk-AH2PDM2K.js +3042 -0
- package/dist/chunk-BNXWSZ63.js +3742 -0
- package/dist/chunk-BTL5DJVU.js +3222 -0
- package/dist/chunk-HDHYG7E4.js +104 -0
- package/dist/chunk-HLR4KZBP.js +3234 -0
- package/dist/chunk-IP3FRFEB.js +1045 -0
- package/dist/chunk-KHU56VDO.js +3042 -0
- package/dist/chunk-KRYIFLQR.js +88 -0
- package/dist/chunk-LBSDNLEM.js +287 -0
- package/dist/chunk-MNTQ7HCP.js +2643 -0
- package/dist/chunk-MUJELQQ6.js +1387 -0
- package/dist/chunk-MXJGMSLV.js +2199 -0
- package/dist/chunk-N6QJGC3Z.js +2636 -0
- package/dist/chunk-OBELGBPM.js +1713 -0
- package/dist/chunk-OT7R5XTA.js +3192 -0
- package/dist/chunk-P7X4RA2T.js +106 -0
- package/dist/chunk-PIDUQNC2.js +3185 -0
- package/dist/chunk-POGCDIH4.js +3187 -0
- package/dist/chunk-PSIEOQGZ.js +3043 -0
- package/dist/chunk-PVRT3IHA.js +3238 -0
- package/dist/chunk-QNN4TT23.js +1430 -0
- package/dist/chunk-RE3R45RJ.js +3042 -0
- package/dist/chunk-S7E6TFX6.js +803 -0
- package/dist/chunk-SG6GLU4U.js +1378 -0
- package/dist/chunk-SJCDV2ST.js +274 -0
- package/dist/chunk-SYE5XLF3.js +104 -0
- package/dist/chunk-T5VLYBZD.js +103 -0
- package/dist/chunk-TOQB7VWU.js +3238 -0
- package/dist/chunk-VFNMZ4ZQ.js +3228 -0
- package/dist/chunk-VVTGZNBT.js +1629 -0
- package/dist/chunk-W7Q4RFEV.js +104 -0
- package/dist/chunk-XTYYVRLO.js +3190 -0
- package/dist/chunk-Y6MDYVJD.js +3063 -0
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +5458 -0
- package/dist/index.d.ts +653 -0
- package/dist/index.js +79 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +472 -0
- package/dist/schema-BAWSG7KY.js +22 -0
- package/dist/schema-E3QUPL26.js +20 -0
- package/dist/schema-EHL7WUT6.js +20 -0
- package/docs/019-USAGE.md +625 -0
- package/docs/020-current-implementation.md +364 -0
- package/docs/021-DOGFOODING-FINDINGS.md +175 -0
- package/docs/BACKLOG.md +80 -0
- package/docs/CONFIG.md +1123 -0
- package/docs/DESIGN.md +439 -0
- package/docs/ERRORS.md +383 -0
- package/docs/PROJECT.md +88 -0
- package/docs/ROADMAP.md +407 -0
- package/docs/summarization.md +320 -0
- package/docs/test-links.md +9 -0
- package/justfile +40 -0
- package/package.json +74 -9
- package/pnpm-workspace.yaml +5 -0
- package/research/INDEX.md +315 -0
- package/research/code-review/README.md +90 -0
- package/research/code-review/cli-error-handling-review.md +979 -0
- package/research/code-review/code-review-validation-report.md +464 -0
- package/research/code-review/main-ts-review.md +1128 -0
- package/research/config-analysis/01-current-implementation.md +470 -0
- package/research/config-analysis/02-strategy-recommendation.md +428 -0
- package/research/config-analysis/03-task-candidates.md +715 -0
- package/research/config-analysis/033-research-configuration-management.md +828 -0
- package/research/config-analysis/034-research-effect-cli-config.md +1504 -0
- package/research/config-analysis/04-consolidated-task-candidates.md +277 -0
- package/research/config-docs/SUMMARY.md +357 -0
- package/research/config-docs/TEST-RESULTS.md +776 -0
- package/research/config-docs/TODO.md +542 -0
- package/research/config-docs/analysis.md +744 -0
- package/research/config-docs/fix-validation.md +502 -0
- package/research/config-docs/help-audit.md +264 -0
- package/research/config-docs/help-system-analysis.md +890 -0
- package/research/dogfood/consolidated-tool-evaluation.md +373 -0
- package/research/dogfood/strategy-a/a-synthesis.md +184 -0
- package/research/dogfood/strategy-a/a1-docs.md +226 -0
- package/research/dogfood/strategy-a/a2-amorphic.md +156 -0
- package/research/dogfood/strategy-a/a3-llm.md +164 -0
- package/research/dogfood/strategy-b/b-synthesis.md +228 -0
- package/research/dogfood/strategy-b/b1-architecture.md +207 -0
- package/research/dogfood/strategy-b/b2-gaps.md +258 -0
- package/research/dogfood/strategy-b/b3-workflows.md +250 -0
- package/research/dogfood/strategy-c/c-synthesis.md +451 -0
- package/research/dogfood/strategy-c/c1-explorer.md +192 -0
- package/research/dogfood/strategy-c/c2-diver-memory.md +145 -0
- package/research/dogfood/strategy-c/c3-diver-control.md +148 -0
- package/research/dogfood/strategy-c/c4-diver-failure.md +151 -0
- package/research/dogfood/strategy-c/c5-diver-execution.md +221 -0
- package/research/dogfood/strategy-c/c6-diver-org.md +221 -0
- package/research/effect-cli-error-handling.md +845 -0
- package/research/effect-errors-as-values.md +943 -0
- package/research/errors-task-analysis/00-consolidated-tasks.md +207 -0
- package/research/errors-task-analysis/cli-commands-analysis.md +909 -0
- package/research/errors-task-analysis/embeddings-analysis.md +709 -0
- package/research/errors-task-analysis/index-search-analysis.md +812 -0
- package/research/frontmatter/COMMENTS-ARE-SKIPPED.md +149 -0
- package/research/frontmatter/LLM-CODE-NAVIGATION.md +276 -0
- package/research/issue-review.md +603 -0
- package/research/llm-summarization/agent-cli-tools-2026.md +1082 -0
- package/research/llm-summarization/alternative-providers-2026.md +1428 -0
- package/research/llm-summarization/anthropic-2026.md +367 -0
- package/research/llm-summarization/claude-cli-integration.md +1706 -0
- package/research/llm-summarization/cli-integration-patterns.md +3155 -0
- package/research/llm-summarization/openai-2026.md +473 -0
- package/research/llm-summarization/openai-compatible-providers-2026.md +1022 -0
- package/research/llm-summarization/opencode-cli-integration.md +1552 -0
- package/research/llm-summarization/prompt-engineering-2026.md +1426 -0
- package/research/llm-summarization/prototype-results.md +56 -0
- package/research/llm-summarization/provider-switching-patterns-2026.md +2153 -0
- package/research/llm-summarization/typescript-llm-libraries-2026.md +2436 -0
- package/research/mdcontext-error-analysis.md +521 -0
- package/research/mdcontext-pudding/00-EXECUTIVE-SUMMARY.md +282 -0
- package/research/mdcontext-pudding/01-index-embed.md +956 -0
- package/research/mdcontext-pudding/02-search-COMMANDS.md +142 -0
- package/research/mdcontext-pudding/02-search-SUMMARY.md +146 -0
- package/research/mdcontext-pudding/02-search.md +970 -0
- package/research/mdcontext-pudding/03-context.md +779 -0
- package/research/mdcontext-pudding/04-navigation-and-analytics.md +803 -0
- package/research/mdcontext-pudding/04-tree.md +704 -0
- package/research/mdcontext-pudding/05-config.md +1038 -0
- package/research/mdcontext-pudding/06-links-summary.txt +87 -0
- package/research/mdcontext-pudding/06-links.md +679 -0
- package/research/mdcontext-pudding/07-stats.md +693 -0
- package/research/mdcontext-pudding/BUG-FIX-PLAN.md +388 -0
- package/research/mdcontext-pudding/P0-BUG-VALIDATION.md +167 -0
- package/research/mdcontext-pudding/README.md +168 -0
- package/research/mdcontext-pudding/TESTING-SUMMARY.md +128 -0
- package/research/npm_publish/011-npm-workflow-research-agent2.md +792 -0
- package/research/npm_publish/012-npm-workflow-research-agent1.md +530 -0
- package/research/npm_publish/013-npm-workflow-research-agent3.md +722 -0
- package/research/npm_publish/014-npm-workflow-synthesis.md +556 -0
- package/research/npm_publish/031-npm-workflow-task-analysis.md +134 -0
- package/research/research-quality-review.md +834 -0
- package/research/semantic-search/002-research-embedding-models.md +490 -0
- package/research/semantic-search/003-research-rag-alternatives.md +523 -0
- package/research/semantic-search/004-research-vector-search.md +841 -0
- package/research/semantic-search/032-research-semantic-search.md +427 -0
- package/research/semantic-search/embedding-text-analysis.md +156 -0
- package/research/semantic-search/multi-word-failure-reproduction.md +171 -0
- package/research/semantic-search/query-processing-analysis.md +207 -0
- package/research/semantic-search/root-cause-and-solution.md +114 -0
- package/research/semantic-search/threshold-validation-report.md +69 -0
- package/research/semantic-search/vector-search-analysis.md +63 -0
- package/research/task-management-2026/00-synthesis-recommendations.md +295 -0
- package/research/task-management-2026/01-ai-workflow-tools.md +416 -0
- package/research/task-management-2026/02-agent-framework-patterns.md +476 -0
- package/research/task-management-2026/03-lightweight-file-based.md +567 -0
- package/research/task-management-2026/04-established-tools-ai-features.md +541 -0
- package/research/task-management-2026/linear/01-core-features-workflow.md +771 -0
- package/research/task-management-2026/linear/02-api-integrations.md +930 -0
- package/research/task-management-2026/linear/03-ai-features.md +368 -0
- package/research/task-management-2026/linear/04-pricing-setup.md +205 -0
- package/research/task-management-2026/linear/05-usage-patterns-best-practices.md +605 -0
- package/research/test-path-issues.md +276 -0
- package/review/ALP-76/1-error-type-design.md +962 -0
- package/review/ALP-76/2-error-handling-patterns.md +906 -0
- package/review/ALP-76/3-error-presentation.md +624 -0
- package/review/ALP-76/4-test-coverage.md +625 -0
- package/review/ALP-76/5-migration-completeness.md +440 -0
- package/review/ALP-76/6-effect-best-practices.md +755 -0
- package/scripts/apply-branch-protection.sh +47 -0
- package/scripts/branch-protection-templates.json +79 -0
- package/scripts/prototype-summarization.ts +346 -0
- package/scripts/rebuild-hnswlib.js +58 -0
- package/scripts/setup-branch-protection.sh +64 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/active-provider.json +7 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.json +541 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.meta.json +5 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/config.json +8 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/documents.json +60 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/links.json +13 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/sections.json +1197 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/configuration-management.md +99 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/distributed-systems.md +92 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/error-handling.md +78 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/failure-automation.md +55 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/job-context.md +69 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/process-orchestration.md +99 -0
- package/src/cli/argv-preprocessor.test.ts +210 -0
- package/src/cli/argv-preprocessor.ts +202 -0
- package/src/cli/cli.test.ts +627 -0
- package/src/cli/commands/backlinks.ts +54 -0
- package/src/cli/commands/config-cmd.ts +642 -0
- package/src/cli/commands/context.ts +285 -0
- package/src/cli/commands/duplicates.ts +122 -0
- package/src/cli/commands/embeddings.ts +529 -0
- package/src/cli/commands/index-cmd.ts +480 -0
- package/src/cli/commands/index.ts +16 -0
- package/src/cli/commands/links.ts +52 -0
- package/src/cli/commands/search.ts +1281 -0
- package/src/cli/commands/stats.ts +149 -0
- package/src/cli/commands/tree.ts +128 -0
- package/src/cli/config-layer.ts +176 -0
- package/src/cli/error-handler.test.ts +235 -0
- package/src/cli/error-handler.ts +655 -0
- package/src/cli/flag-schemas.ts +341 -0
- package/src/cli/help.ts +588 -0
- package/src/cli/index.ts +9 -0
- package/src/cli/main.ts +435 -0
- package/src/cli/options.ts +41 -0
- package/src/cli/shared-error-handling.ts +199 -0
- package/src/cli/typo-suggester.test.ts +105 -0
- package/src/cli/typo-suggester.ts +130 -0
- package/src/cli/utils.ts +259 -0
- package/src/config/file-provider.test.ts +320 -0
- package/src/config/file-provider.ts +273 -0
- package/src/config/index.ts +72 -0
- package/src/config/integration.test.ts +667 -0
- package/src/config/precedence.test.ts +277 -0
- package/src/config/precedence.ts +451 -0
- package/src/config/schema.test.ts +414 -0
- package/src/config/schema.ts +603 -0
- package/src/config/service.test.ts +320 -0
- package/src/config/service.ts +243 -0
- package/src/config/testing.test.ts +264 -0
- package/src/config/testing.ts +110 -0
- package/src/core/index.ts +1 -0
- package/src/core/types.ts +113 -0
- package/src/duplicates/detector.test.ts +183 -0
- package/src/duplicates/detector.ts +414 -0
- package/src/duplicates/index.ts +18 -0
- package/src/embeddings/embedding-namespace.test.ts +300 -0
- package/src/embeddings/embedding-namespace.ts +947 -0
- package/src/embeddings/heading-boost.test.ts +222 -0
- package/src/embeddings/hnsw-build-options.test.ts +198 -0
- package/src/embeddings/hyde.test.ts +272 -0
- package/src/embeddings/hyde.ts +264 -0
- package/src/embeddings/index.ts +10 -0
- package/src/embeddings/openai-provider.ts +414 -0
- package/src/embeddings/pricing.json +22 -0
- package/src/embeddings/provider-constants.ts +204 -0
- package/src/embeddings/provider-errors.test.ts +967 -0
- package/src/embeddings/provider-errors.ts +565 -0
- package/src/embeddings/provider-factory.test.ts +240 -0
- package/src/embeddings/provider-factory.ts +225 -0
- package/src/embeddings/provider-integration.test.ts +788 -0
- package/src/embeddings/query-preprocessing.test.ts +187 -0
- package/src/embeddings/semantic-search-threshold.test.ts +508 -0
- package/src/embeddings/semantic-search.ts +1270 -0
- package/src/embeddings/types.ts +359 -0
- package/src/embeddings/vector-store.ts +708 -0
- package/src/embeddings/voyage-provider.ts +313 -0
- package/src/errors/errors.test.ts +845 -0
- package/src/errors/index.ts +533 -0
- package/src/index/ignore-patterns.test.ts +354 -0
- package/src/index/ignore-patterns.ts +305 -0
- package/src/index/index.ts +4 -0
- package/src/index/indexer.ts +684 -0
- package/src/index/storage.ts +260 -0
- package/src/index/types.ts +147 -0
- package/src/index/watcher.ts +189 -0
- package/src/index.ts +30 -0
- package/src/integration/search-keyword.test.ts +678 -0
- package/src/mcp/server.ts +612 -0
- package/src/parser/index.ts +1 -0
- package/src/parser/parser.test.ts +291 -0
- package/src/parser/parser.ts +394 -0
- package/src/parser/section-filter.test.ts +277 -0
- package/src/parser/section-filter.ts +392 -0
- package/src/search/__tests__/hybrid-search.test.ts +650 -0
- package/src/search/bm25-store.ts +366 -0
- package/src/search/cross-encoder.test.ts +253 -0
- package/src/search/cross-encoder.ts +406 -0
- package/src/search/fuzzy-search.test.ts +419 -0
- package/src/search/fuzzy-search.ts +273 -0
- package/src/search/hybrid-search.ts +448 -0
- package/src/search/path-matcher.test.ts +276 -0
- package/src/search/path-matcher.ts +33 -0
- package/src/search/query-parser.test.ts +260 -0
- package/src/search/query-parser.ts +319 -0
- package/src/search/searcher.test.ts +280 -0
- package/src/search/searcher.ts +724 -0
- package/src/search/wink-bm25.d.ts +30 -0
- package/src/summarization/cli-providers/claude.ts +202 -0
- package/src/summarization/cli-providers/detection.test.ts +273 -0
- package/src/summarization/cli-providers/detection.ts +118 -0
- package/src/summarization/cli-providers/index.ts +8 -0
- package/src/summarization/cost.test.ts +139 -0
- package/src/summarization/cost.ts +102 -0
- package/src/summarization/error-handler.test.ts +127 -0
- package/src/summarization/error-handler.ts +111 -0
- package/src/summarization/index.ts +102 -0
- package/src/summarization/pipeline.test.ts +498 -0
- package/src/summarization/pipeline.ts +231 -0
- package/src/summarization/prompts.test.ts +269 -0
- package/src/summarization/prompts.ts +133 -0
- package/src/summarization/provider-factory.test.ts +396 -0
- package/src/summarization/provider-factory.ts +178 -0
- package/src/summarization/types.ts +184 -0
- package/src/summarize/budget-bugs.test.ts +620 -0
- package/src/summarize/formatters.ts +419 -0
- package/src/summarize/index.ts +20 -0
- package/src/summarize/summarizer.test.ts +275 -0
- package/src/summarize/summarizer.ts +597 -0
- package/src/summarize/verify-bugs.test.ts +238 -0
- package/src/types/huggingface-transformers.d.ts +66 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/tokens.test.ts +142 -0
- package/src/utils/tokens.ts +186 -0
- package/tests/fixtures/cli/.mdcontext/active-provider.json +7 -0
- package/tests/fixtures/cli/.mdcontext/config.json +8 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/indexes/documents.json +33 -0
- package/tests/fixtures/cli/.mdcontext/indexes/links.json +12 -0
- package/tests/fixtures/cli/.mdcontext/indexes/sections.json +247 -0
- package/tests/fixtures/cli/README.md +9 -0
- package/tests/fixtures/cli/api-reference.md +11 -0
- package/tests/fixtures/cli/getting-started.md +11 -0
- package/tests/integration/embed-index.test.ts +712 -0
- package/tests/integration/search-context.test.ts +469 -0
- package/tests/integration/search-semantic.test.ts +522 -0
- package/tsconfig.json +26 -0
- package/vitest.config.ts +16 -0
- package/vitest.setup.ts +12 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Linear AI Features Analysis (2026)
|
|
2
|
+
|
|
3
|
+
## Executive Summary
|
|
4
|
+
|
|
5
|
+
Linear has positioned itself as a genuinely **AI-native** task management tool rather than having AI features bolted on as an afterthought. The platform treats AI agents as first-class team members with dedicated APIs, authentication flows, and workspace integration. This represents a fundamental architectural difference from competitors who have retrofitted AI capabilities onto traditional project management systems.
|
|
6
|
+
|
|
7
|
+
**Verdict**: Linear is truly AI-native, not AI bolt-on. The depth of agent integration, the Agent Interaction SDK, and the delegation model all point to AI being a core architectural consideration, not a feature layer.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Native AI Features
|
|
12
|
+
|
|
13
|
+
### Triage Intelligence
|
|
14
|
+
|
|
15
|
+
Linear's flagship AI feature uses an **agentic approach** where models actively pull context from workspace data to make intelligent decisions.
|
|
16
|
+
|
|
17
|
+
**How it works**:
|
|
18
|
+
|
|
19
|
+
- Analyzes every issue entering triage against existing backlog data
|
|
20
|
+
- Uses GPT-5 and Gemini 2.5 Pro for complex reasoning
|
|
21
|
+
- Learns from how similar work was organized historically
|
|
22
|
+
- Runs in background with no manual trigger required
|
|
23
|
+
|
|
24
|
+
**Capabilities**:
|
|
25
|
+
|
|
26
|
+
- **Duplicate detection**: Automatically merges duplicate requests into existing issues
|
|
27
|
+
- **Related issue linking**: Surfaces connections between related work
|
|
28
|
+
- **Property suggestions**: Recommends teams, projects, assignees, and labels
|
|
29
|
+
- **Auto-apply options**: Configurable automation for trusted suggestion types
|
|
30
|
+
|
|
31
|
+
**Architecture**: The system uses a combination of search, ranking, and LLM-based reasoning. Smaller models proved insufficient, leading Linear to adopt an agentic architecture where larger models can request additional context as needed.
|
|
32
|
+
|
|
33
|
+
> "The limitation of smaller models led Linear to an agentic approach, where the model could pull in whatever additional context it needed from Linear's data."
|
|
34
|
+
|
|
35
|
+
### AI Workflows
|
|
36
|
+
|
|
37
|
+
Linear's AI assists with routine manual tasks across the product:
|
|
38
|
+
|
|
39
|
+
- Summarizing issues and projects
|
|
40
|
+
- Drafting updates
|
|
41
|
+
- Organizing work
|
|
42
|
+
- Managing routine triage operations
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## The "AI as Teammate" Model
|
|
47
|
+
|
|
48
|
+
### Core Philosophy
|
|
49
|
+
|
|
50
|
+
Linear treats agents as **full workspace members**, not external tools:
|
|
51
|
+
|
|
52
|
+
- Agents appear in team rosters
|
|
53
|
+
- Can be @mentioned like human teammates
|
|
54
|
+
- Can be assigned to issues
|
|
55
|
+
- Can be added to projects
|
|
56
|
+
- Participate in comment threads
|
|
57
|
+
- Activity tracked in Insights analytics
|
|
58
|
+
|
|
59
|
+
### Delegation vs Assignment
|
|
60
|
+
|
|
61
|
+
Critical distinction in Linear's model:
|
|
62
|
+
|
|
63
|
+
> "Agents are not traditional assignees. Assigning an issue to an agent triggers delegation - the agent acts on the issue, but the human teammate remains responsible for its completion."
|
|
64
|
+
|
|
65
|
+
This **human accountability** model means:
|
|
66
|
+
|
|
67
|
+
- Humans maintain ownership while agents execute
|
|
68
|
+
- Clear visibility into what agents are doing
|
|
69
|
+
- Agents act on behalf of the responsible human
|
|
70
|
+
- No "orphaned" work where AI took over without oversight
|
|
71
|
+
|
|
72
|
+
### Agent Sessions
|
|
73
|
+
|
|
74
|
+
The core interaction model centers on **Agent Sessions**:
|
|
75
|
+
|
|
76
|
+
- Sessions track the lifecycle of agent tasks
|
|
77
|
+
- Created automatically on mention or delegation
|
|
78
|
+
- State visible to users in real-time
|
|
79
|
+
- Updated automatically based on agent activities
|
|
80
|
+
- No manual state management required
|
|
81
|
+
|
|
82
|
+
Agents communicate through **Agent Activities**:
|
|
83
|
+
|
|
84
|
+
- Thoughts (reasoning)
|
|
85
|
+
- Actions (what they're doing)
|
|
86
|
+
- Clarification prompts
|
|
87
|
+
- Final responses
|
|
88
|
+
- Error states
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Cursor Integration (@Cursor Assignment)
|
|
93
|
+
|
|
94
|
+
Linear has deep integration with Cursor, allowing issues to be assigned directly to Cursor's cloud agent.
|
|
95
|
+
|
|
96
|
+
### How It Works
|
|
97
|
+
|
|
98
|
+
1. **Trigger methods**:
|
|
99
|
+
- Assign issue to @Cursor from assignee menu
|
|
100
|
+
- Mention @Cursor in a comment
|
|
101
|
+
- Create triage rules for automatic assignment
|
|
102
|
+
|
|
103
|
+
2. **Execution**:
|
|
104
|
+
- Cursor cloud agent spins up automatically
|
|
105
|
+
- Pulls full issue context (description, comments, linked references)
|
|
106
|
+
- Works in context of the issue
|
|
107
|
+
- Tracks progress directly in Linear, Cursor web app, or IDE
|
|
108
|
+
|
|
109
|
+
3. **Completion**:
|
|
110
|
+
- Agent updates issue automatically with PR
|
|
111
|
+
- Team can review diffs directly from Linear
|
|
112
|
+
- Full audit trail maintained
|
|
113
|
+
|
|
114
|
+
### Capabilities
|
|
115
|
+
|
|
116
|
+
- Answer questions about codebase
|
|
117
|
+
- Fix bugs
|
|
118
|
+
- Implement features
|
|
119
|
+
- Take first pass on triage queue issues
|
|
120
|
+
- Open pull requests
|
|
121
|
+
|
|
122
|
+
### Automatic Triage Rules
|
|
123
|
+
|
|
124
|
+
Configure rules to auto-assign issues to Cursor based on:
|
|
125
|
+
|
|
126
|
+
- Labels
|
|
127
|
+
- Projects
|
|
128
|
+
- T-shirt size (e.g., "small or less")
|
|
129
|
+
- Team assignments
|
|
130
|
+
|
|
131
|
+
> "In this project, with this label, and t-shirt size small or less, let the agent handle it."
|
|
132
|
+
|
|
133
|
+
### Technical Integration
|
|
134
|
+
|
|
135
|
+
Linear built an **API specifically for agents**:
|
|
136
|
+
|
|
137
|
+
- "Agent session" concept provides full context to agents
|
|
138
|
+
- Structured webhooks with issue details, comments, references
|
|
139
|
+
- Bi-directional communication
|
|
140
|
+
|
|
141
|
+
**Requirements**: Cursor Pro or Ultra plan, admin installation
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## GitHub Copilot Integration
|
|
146
|
+
|
|
147
|
+
Available in public preview since October 2025.
|
|
148
|
+
|
|
149
|
+
### How It Works
|
|
150
|
+
|
|
151
|
+
1. **Trigger**: Mention @GitHub or assign Copilot to a Linear issue
|
|
152
|
+
2. **Analysis**: Copilot captures entire issue description and comments as context
|
|
153
|
+
3. **Execution**: Works in ephemeral development environment (GitHub Actions powered)
|
|
154
|
+
4. **Output**: Opens draft pull request
|
|
155
|
+
|
|
156
|
+
### Capabilities
|
|
157
|
+
|
|
158
|
+
- Explore codebase
|
|
159
|
+
- Make code changes
|
|
160
|
+
- Run automated tests and linters
|
|
161
|
+
- Create pull requests
|
|
162
|
+
- Update Linear issue with progress
|
|
163
|
+
|
|
164
|
+
### Key Features
|
|
165
|
+
|
|
166
|
+
- Asynchronous, autonomous background agent
|
|
167
|
+
- Works independently without blocking developer
|
|
168
|
+
- Uses full issue context for implementation decisions
|
|
169
|
+
- Isolated cloud environment for safety
|
|
170
|
+
|
|
171
|
+
**Requirements**: Copilot Pro, Pro+, Business, or Enterprise; Linear team membership; org owner GitHub permissions
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## OpenAI Codex Integration
|
|
176
|
+
|
|
177
|
+
Launched December 2025.
|
|
178
|
+
|
|
179
|
+
### Capabilities
|
|
180
|
+
|
|
181
|
+
- Answer questions about codebase
|
|
182
|
+
- Fix bugs
|
|
183
|
+
- Write features
|
|
184
|
+
- Propose pull requests for review
|
|
185
|
+
- Take first pass at triage queue issues
|
|
186
|
+
|
|
187
|
+
### How It Works
|
|
188
|
+
|
|
189
|
+
1. **Trigger**: Assign to Codex or @mention in comment
|
|
190
|
+
2. **Execution**: Codex creates cloud task, runs in sandbox with repo preloaded
|
|
191
|
+
3. **Communication**: Replies with progress and results
|
|
192
|
+
4. **Completion**: Typically 1-30 minutes depending on complexity
|
|
193
|
+
|
|
194
|
+
### Automatic Assignment
|
|
195
|
+
|
|
196
|
+
Via triage rules:
|
|
197
|
+
|
|
198
|
+
1. Navigate to Settings > Team > Workflow > Triage
|
|
199
|
+
2. Create rule: Delegate > Codex
|
|
200
|
+
3. New issues matching criteria auto-assigned
|
|
201
|
+
|
|
202
|
+
### Sandbox Capabilities
|
|
203
|
+
|
|
204
|
+
- Read and edit files
|
|
205
|
+
- Run commands
|
|
206
|
+
- Execute test harnesses
|
|
207
|
+
- Run linters and type checkers
|
|
208
|
+
- Real-time progress monitoring
|
|
209
|
+
|
|
210
|
+
**Requirements**: ChatGPT paid plan, GitHub account connection
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Other Agent Integrations
|
|
215
|
+
|
|
216
|
+
Linear's agent ecosystem includes specialized tools:
|
|
217
|
+
|
|
218
|
+
| Agent | Capabilities |
|
|
219
|
+
| ----------- | ------------------------------------------------------------------ |
|
|
220
|
+
| **Devin** | Scopes issues, drafts PRs, built-in Linear tool |
|
|
221
|
+
| **Sentry** | Root cause analysis with Seer, diagnoses and fixes issues |
|
|
222
|
+
| **ChatPRD** | Writes requirements, manages issues, provides feedback |
|
|
223
|
+
| **Warp** | Investigates bugs, suggests fixes, opens PRs |
|
|
224
|
+
| **Factory** | Codes, tests, creates pull requests in isolated cloud environments |
|
|
225
|
+
|
|
226
|
+
### Sentry Agent Details
|
|
227
|
+
|
|
228
|
+
- Runs Seer diagnostics directly from Linear issues
|
|
229
|
+
- Posts back insights without context switching
|
|
230
|
+
- OAuth-secured webhook communication
|
|
231
|
+
- Handles issue detail requests and fix operations
|
|
232
|
+
|
|
233
|
+
### Factory (Droids) Details
|
|
234
|
+
|
|
235
|
+
- Autonomous Droids work in isolated cloud environments
|
|
236
|
+
- Pull full context: descriptions, comments, linked tickets, dependencies
|
|
237
|
+
- End-to-end task completion
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Building Custom AI Agents
|
|
242
|
+
|
|
243
|
+
Linear provides a full developer platform for custom agents.
|
|
244
|
+
|
|
245
|
+
### Agent Interaction SDK
|
|
246
|
+
|
|
247
|
+
- TypeScript-based SDK
|
|
248
|
+
- Cloudflare-ready demo agent ("Weather Bot") as starting point
|
|
249
|
+
- No cost to develop agents
|
|
250
|
+
- Agents don't count as billable seats
|
|
251
|
+
|
|
252
|
+
### Authentication
|
|
253
|
+
|
|
254
|
+
Uses OAuth2 with special `actor=app` parameter:
|
|
255
|
+
|
|
256
|
+
- Creates dedicated user for the agent
|
|
257
|
+
- Token tied to specific scopes and teams
|
|
258
|
+
- Workspace admin controls installation
|
|
259
|
+
|
|
260
|
+
### Required Scopes
|
|
261
|
+
|
|
262
|
+
- Mention capability: separate scope
|
|
263
|
+
- Assignment capability: separate scope
|
|
264
|
+
- Team access: configurable per-team
|
|
265
|
+
|
|
266
|
+
### Agent Activity System
|
|
267
|
+
|
|
268
|
+
Agents emit structured activities to Linear:
|
|
269
|
+
|
|
270
|
+
- `thought`: Agent's reasoning
|
|
271
|
+
- `action`: Current execution step
|
|
272
|
+
- `prompt`: Clarification needed
|
|
273
|
+
- `response`: Final result
|
|
274
|
+
- `error`: Failure states
|
|
275
|
+
|
|
276
|
+
Linear renders appropriate UI automatically based on activity types.
|
|
277
|
+
|
|
278
|
+
### Distribution Options
|
|
279
|
+
|
|
280
|
+
1. **Private**: Internal workspace use only
|
|
281
|
+
2. **Public**: Submit to Linear's Integration Directory for community use
|
|
282
|
+
|
|
283
|
+
### Developer Resources
|
|
284
|
+
|
|
285
|
+
- Documentation: <https://linear.app/developers/agents>
|
|
286
|
+
- Agent Docs: <https://linear.app/docs/agents-in-linear>
|
|
287
|
+
- Agents Overview: <https://linear.app/agents>
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## AI-Native Architecture Assessment
|
|
292
|
+
|
|
293
|
+
### Evidence of AI-Native Design
|
|
294
|
+
|
|
295
|
+
1. **Dedicated Agent APIs**: Not retrofitted - purpose-built for AI interaction
|
|
296
|
+
2. **Agent Sessions**: First-class concept in the data model
|
|
297
|
+
3. **Delegation model**: Architectural distinction from assignment
|
|
298
|
+
4. **Activity system**: Standardized agent-to-human communication
|
|
299
|
+
5. **Agent Authentication**: Separate OAuth flow (`actor=app`)
|
|
300
|
+
6. **No billable seats for agents**: Pricing model anticipates AI teammates
|
|
301
|
+
7. **Agentic Triage Intelligence**: Core feature, not add-on
|
|
302
|
+
|
|
303
|
+
### Comparison with Bolt-On Approaches
|
|
304
|
+
|
|
305
|
+
| Aspect | AI-Native (Linear) | AI Bolt-On (Typical) |
|
|
306
|
+
| ---------------- | ------------------------------ | ----------------------------- |
|
|
307
|
+
| Agent identity | First-class workspace member | External integration |
|
|
308
|
+
| Authentication | Dedicated OAuth flow | API key or user impersonation |
|
|
309
|
+
| State management | Automatic via sessions | Manual tracking |
|
|
310
|
+
| UI integration | Native rendering | Webhook comments |
|
|
311
|
+
| Pricing | Agents don't count | Often per-seat |
|
|
312
|
+
| Delegation model | Human accountability preserved | Full transfer or nothing |
|
|
313
|
+
|
|
314
|
+
### Limitations
|
|
315
|
+
|
|
316
|
+
- **Not a general PM tool**: Built specifically for engineering/product teams
|
|
317
|
+
- **Customer conversation processing**: Requires bridging tools for support workflows
|
|
318
|
+
- **Not for compliance-heavy workflows**: Tools like Jira may be better for regulatory needs
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Future Direction
|
|
323
|
+
|
|
324
|
+
Linear has signaled continued AI investment:
|
|
325
|
+
|
|
326
|
+
> "Linear intends to move in the direction of more automation and decisions based on richer context. Triage Intelligence will improve as it draws on a deeper understanding of your workspace and as they adopt newer models and techniques."
|
|
327
|
+
|
|
328
|
+
Expected developments:
|
|
329
|
+
|
|
330
|
+
- More automation options with user control
|
|
331
|
+
- Richer context understanding
|
|
332
|
+
- Adoption of newer models and techniques
|
|
333
|
+
- Expanded agent capabilities
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Industry Context (2026)
|
|
338
|
+
|
|
339
|
+
Linear's approach aligns with broader industry trends:
|
|
340
|
+
|
|
341
|
+
- **40% of enterprise apps** will embed AI agents by end of 2026 (Gartner)
|
|
342
|
+
- **MCP adoption** surging for agent-to-tool communication
|
|
343
|
+
- **75% of API gateway vendors** expected to have MCP features by 2026
|
|
344
|
+
- Shift from chatbots to **autonomous agentic systems**
|
|
345
|
+
|
|
346
|
+
Linear appears well-positioned as this transition accelerates, having built agent-first architecture before the wave of retrofitting began.
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Sources
|
|
351
|
+
|
|
352
|
+
- [Linear AI Agents Documentation](https://linear.app/docs/agents-in-linear)
|
|
353
|
+
- [Linear for Agents](https://linear.app/agents)
|
|
354
|
+
- [Triage Intelligence Documentation](https://linear.app/docs/triage-intelligence)
|
|
355
|
+
- [How Linear Built Triage Intelligence](https://linear.app/now/how-we-built-triage-intelligence)
|
|
356
|
+
- [Cursor Integration](https://linear.app/integrations/cursor)
|
|
357
|
+
- [How Cursor Integrated with Linear for Agents](https://linear.app/now/how-cursor-integrated-with-linear-for-agents)
|
|
358
|
+
- [Bringing the Cursor Agent to Linear](https://cursor.com/blog/linear)
|
|
359
|
+
- [GitHub Copilot Integration](https://linear.app/integrations/github-copilot)
|
|
360
|
+
- [GitHub Copilot for Linear Documentation](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/integrate-coding-agent-with-linear)
|
|
361
|
+
- [OpenAI Codex Agent Changelog](https://linear.app/changelog/2025-12-04-openai-codex-agent)
|
|
362
|
+
- [Codex Linear Integration](https://developers.openai.com/codex/integrations/linear/)
|
|
363
|
+
- [Linear Agent Interaction SDK Approach](https://linear.app/now/our-approach-to-building-the-agent-interaction-sdk)
|
|
364
|
+
- [Linear Developer Documentation](https://linear.app/developers/agents)
|
|
365
|
+
- [Sentry Agent Integration](https://linear.app/integrations/sentry-agent)
|
|
366
|
+
- [Factory Integration](https://linear.app/integrations/factory)
|
|
367
|
+
- [Linear AI Overview (eesel.ai)](https://www.eesel.ai/blog/linear-ai)
|
|
368
|
+
- [Linear Reviews 2026 (G2)](https://www.g2.com/products/linear/reviews)
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Linear Pricing and Setup Guide
|
|
2
|
+
|
|
3
|
+
Research date: January 2026
|
|
4
|
+
|
|
5
|
+
## Pricing Overview
|
|
6
|
+
|
|
7
|
+
Linear uses a per-user pricing model with a generous free tier that works well for small teams and open source projects.
|
|
8
|
+
|
|
9
|
+
### Plan Comparison
|
|
10
|
+
|
|
11
|
+
| Plan | Price | Key Features |
|
|
12
|
+
| -------------- | ----------------------------- | --------------------------------------------------------------------------------------- |
|
|
13
|
+
| **Free** | $0 | Unlimited members, up to 250 active issues, 2 teams, all integrations, API access |
|
|
14
|
+
| **Basic** | $8/user/month ($6.40 annual) | Unlimited issues, 5 teams, admin roles, unlimited file uploads |
|
|
15
|
+
| **Business** | $12/user/month ($9.60 annual) | Private teams, guest accounts, Linear Insights analytics, Zendesk/Intercom integrations |
|
|
16
|
+
| **Enterprise** | Custom | SAML/SCIM, granular security controls, workspace owner role, custom SLAs |
|
|
17
|
+
|
|
18
|
+
Annual billing provides a 20% discount.
|
|
19
|
+
|
|
20
|
+
## Free Plan Details
|
|
21
|
+
|
|
22
|
+
### What's Included
|
|
23
|
+
|
|
24
|
+
- **Unlimited members** - No charge for non-technical stakeholders or reviewers
|
|
25
|
+
- **Up to 250 active issues** - Archived issues don't count toward this limit
|
|
26
|
+
- **Up to 2 teams** - Sufficient for solo/small team organization
|
|
27
|
+
- **All integrations** - GitHub, GitLab, Slack, Figma, etc. (no feature gating)
|
|
28
|
+
- **API and webhook access** - Full automation capabilities
|
|
29
|
+
- **10 MB file upload limit** - Per file
|
|
30
|
+
|
|
31
|
+
### Key Limitations
|
|
32
|
+
|
|
33
|
+
1. **250 active issue cap** - Once exceeded, you cannot create new issues until you archive or delete existing ones
|
|
34
|
+
2. **2 team limit** - May matter as organization grows
|
|
35
|
+
3. **No admin roles** - All members are admins on Free plan
|
|
36
|
+
4. **No private teams** - All content visible to all members
|
|
37
|
+
5. **No guest accounts** - Cannot add external collaborators with limited access
|
|
38
|
+
6. **No template customization** - Default templates only
|
|
39
|
+
|
|
40
|
+
### Practical Assessment: 250 Issues
|
|
41
|
+
|
|
42
|
+
The 250 active issue limit sounds restrictive but is quite workable:
|
|
43
|
+
|
|
44
|
+
- **Archived issues don't count** - Close completed work regularly
|
|
45
|
+
- **For a solo developer or small OSS project** - 250 active issues is substantial
|
|
46
|
+
- **Good practice anyway** - Forces issue hygiene and prevents backlog bloat
|
|
47
|
+
|
|
48
|
+
If you maintain a clean backlog (archive completed/stale issues), you can likely stay on Free indefinitely for a small open source project.
|
|
49
|
+
|
|
50
|
+
## Features Requiring Paid Plans
|
|
51
|
+
|
|
52
|
+
### Basic Plan ($8/user/month)
|
|
53
|
+
|
|
54
|
+
- **Unlimited active issues** - No cap on open work
|
|
55
|
+
- **Up to 5 teams** - Better organization for growing projects
|
|
56
|
+
- **Admin roles** - Control who can manage workspace settings
|
|
57
|
+
- **Unlimited file uploads** - No size restrictions
|
|
58
|
+
|
|
59
|
+
### Business Plan ($12/user/month)
|
|
60
|
+
|
|
61
|
+
- **Private teams** - Restrict access to sensitive work (e.g., security issues)
|
|
62
|
+
- **Guest accounts** - External collaborators with limited access (billed as regular users)
|
|
63
|
+
- **Linear Insights** - Analytics and reporting dashboards
|
|
64
|
+
- **Linear Asks** - Customer feedback collection
|
|
65
|
+
- **Zendesk/Intercom integrations** - Support platform connections
|
|
66
|
+
|
|
67
|
+
### Enterprise Plan (Custom)
|
|
68
|
+
|
|
69
|
+
- **SAML/SCIM provisioning** - SSO and automated user management
|
|
70
|
+
- **Workspace owner role** - Granular permission control
|
|
71
|
+
- **Audit log retention** - Extended compliance features
|
|
72
|
+
- **Custom SLAs** - Dedicated support
|
|
73
|
+
|
|
74
|
+
## Discount Programs
|
|
75
|
+
|
|
76
|
+
### Nonprofits
|
|
77
|
+
|
|
78
|
+
- **75% off** Basic and Business plans
|
|
79
|
+
- Contact <support@linear.app> with proof of nonprofit status
|
|
80
|
+
|
|
81
|
+
### Education
|
|
82
|
+
|
|
83
|
+
- Discounted rates for accredited institutions
|
|
84
|
+
- Contact <support@linear.app> from .edu email with proof of status
|
|
85
|
+
|
|
86
|
+
### Startups
|
|
87
|
+
|
|
88
|
+
- **Up to 6 months free** through Linear for Startups program
|
|
89
|
+
- Requires affiliation with a partner program
|
|
90
|
+
|
|
91
|
+
### Open Source Projects
|
|
92
|
+
|
|
93
|
+
- **No dedicated OSS program** publicly advertised
|
|
94
|
+
- Contact <support@linear.app> to inquire - they may offer something case-by-case
|
|
95
|
+
- The Free tier is often sufficient for OSS project management
|
|
96
|
+
|
|
97
|
+
## Solo Developer / Small Team Setup
|
|
98
|
+
|
|
99
|
+
### Quick Start Steps
|
|
100
|
+
|
|
101
|
+
1. **Sign up** at linear.app (no credit card required)
|
|
102
|
+
2. **Create workspace** - Name it after your project
|
|
103
|
+
3. **Create one team** (e.g., "Development" or project name)
|
|
104
|
+
4. **Connect GitHub** via Settings > Integrations
|
|
105
|
+
5. **Start creating issues**
|
|
106
|
+
|
|
107
|
+
### Recommended Structure for Small OSS Project
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Workspace: [Project Name]
|
|
111
|
+
Team: Development (or just project name)
|
|
112
|
+
Labels:
|
|
113
|
+
- bug
|
|
114
|
+
- feature
|
|
115
|
+
- documentation
|
|
116
|
+
- enhancement
|
|
117
|
+
- good-first-issue (for contributors)
|
|
118
|
+
Statuses (defaults work well):
|
|
119
|
+
- Backlog
|
|
120
|
+
- Todo
|
|
121
|
+
- In Progress
|
|
122
|
+
- Done
|
|
123
|
+
- Canceled
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### GitHub Integration (Free)
|
|
127
|
+
|
|
128
|
+
The GitHub integration is fully available on the Free plan and is highly valuable for OSS projects:
|
|
129
|
+
|
|
130
|
+
- **Auto-link PRs to issues** - Use issue ID in branch name (e.g., `ABC-123-fix-bug`)
|
|
131
|
+
- **Automatic status updates** - Issues move to "In Progress" when PR opens, "Done" when merged
|
|
132
|
+
- **Sync GitHub Issues to Linear** - Import community-reported issues
|
|
133
|
+
- **Two-way comment sync** - Comments sync between platforms
|
|
134
|
+
|
|
135
|
+
Setup:
|
|
136
|
+
|
|
137
|
+
1. Settings > Integrations > GitHub
|
|
138
|
+
2. Authenticate and select repositories
|
|
139
|
+
3. Enable PR linking and commit linking per team
|
|
140
|
+
|
|
141
|
+
### Best Practices for Small Teams
|
|
142
|
+
|
|
143
|
+
1. **Keep cycles short** - 1-2 weeks for momentum
|
|
144
|
+
2. **Use clear issue titles** - Start with action verb: "Fix calendar loading bug"
|
|
145
|
+
3. **Archive completed work** - Keeps active issue count low (critical for Free plan)
|
|
146
|
+
4. **Use projects for milestones** - Group related issues under a project (e.g., "v1.0 Release")
|
|
147
|
+
5. **Keyboard shortcuts** - Linear is keyboard-first; learn `Cmd+K` for command palette
|
|
148
|
+
|
|
149
|
+
### Solo Developer Workflow
|
|
150
|
+
|
|
151
|
+
- Create a single team for all work
|
|
152
|
+
- Use labels to categorize (bug, feature, chore)
|
|
153
|
+
- Projects for larger initiatives or releases
|
|
154
|
+
- Cycles optional for solo work - use if you want time-boxed sprints
|
|
155
|
+
|
|
156
|
+
## Assessment for Small OSS Project
|
|
157
|
+
|
|
158
|
+
### Strengths
|
|
159
|
+
|
|
160
|
+
- **Generous free tier** - 250 active issues with unlimited archived, unlimited members
|
|
161
|
+
- **Full GitHub integration on Free** - Critical for OSS workflow
|
|
162
|
+
- **Modern, fast interface** - Developer-friendly design
|
|
163
|
+
- **API access on Free** - Automation possibilities
|
|
164
|
+
- **No per-seat minimum** - Works for true solo use
|
|
165
|
+
|
|
166
|
+
### Considerations
|
|
167
|
+
|
|
168
|
+
- **No dedicated OSS discount** - Unlike some competitors
|
|
169
|
+
- **250 active issue limit** - Need disciplined archiving
|
|
170
|
+
- **No private teams on Free** - Security issues visible to all members
|
|
171
|
+
- **No guest accounts on Free** - External collaborators need full membership
|
|
172
|
+
|
|
173
|
+
### Recommendation
|
|
174
|
+
|
|
175
|
+
Linear's Free plan is well-suited for small open source projects that:
|
|
176
|
+
|
|
177
|
+
- Have a manageable backlog (under 250 active issues with good archiving habits)
|
|
178
|
+
- Don't need private security issue tracking
|
|
179
|
+
- Want tight GitHub integration
|
|
180
|
+
- Value a modern, fast interface
|
|
181
|
+
|
|
182
|
+
For an OSS project, you likely don't need paid features unless:
|
|
183
|
+
|
|
184
|
+
- Your active issue count consistently exceeds 250
|
|
185
|
+
- You need private teams for security vulnerability tracking
|
|
186
|
+
- You want to add external guest collaborators
|
|
187
|
+
|
|
188
|
+
### Cost Comparison
|
|
189
|
+
|
|
190
|
+
For a solo developer or 3-person team on annual billing:
|
|
191
|
+
|
|
192
|
+
- **Free**: $0/month - likely sufficient
|
|
193
|
+
- **Basic**: $6.40-$19.20/month (1-3 users) - if you exceed 250 issues
|
|
194
|
+
- **Business**: $9.60-$28.80/month (1-3 users) - if you need private teams
|
|
195
|
+
|
|
196
|
+
## Sources
|
|
197
|
+
|
|
198
|
+
- [Linear Pricing](https://linear.app/pricing)
|
|
199
|
+
- [Linear Billing and Plans Documentation](https://linear.app/docs/billing-and-plans)
|
|
200
|
+
- [Linear GitHub Integration](https://linear.app/docs/github-integration)
|
|
201
|
+
- [Linear Members and Roles](https://linear.app/docs/members-roles)
|
|
202
|
+
- [Linear Private Teams](https://linear.app/docs/private-teams)
|
|
203
|
+
- [Linear Start Guide](https://linear.app/docs/start-guide)
|
|
204
|
+
- [Linear Insights](https://linear.app/insights)
|
|
205
|
+
- [How to Use Linear - Morgen](https://www.morgen.so/blog-posts/linear-project-management)
|