Coding-Agent-Skills / linear-cli-skill
CLAUDE.md4 starsChanged 25 days agoMITView on GitHub
CLI replacement for Linear MCP. Designed for extending, modifying, and maintaining this tool. Resources: issue, user, team, project Argument parsing (linear-cli.js:12): Custom, no deps - --key value or --flag (boolean) - Multi-word args auto-joined (lines 771, 801) GraphQL usage: Direct queries for efficiency - listIssues (line 314): Preloads all relations in single query → fewer tokens - getIssue (lines 360, 404): Separate paths for identifier vs UUID - Avoids N+1 queries that bloat responses Output format (default): Error handling: Actionable…
- Reads credentials
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- I-Onlabs/claude-code-skillsword for word, first seen Oct 25, 2026
- HaZ-K/claude-skillsword for word, first seen Nov 12, 2025
Other versions2 projects use a version of this.
Word for word · 2
- I-Onlabs/claude-code-skills★ 4100% same
- HaZ-K/claude-skills★ 0100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository169 other files it gives its agents.
- epub-skill/CLAUDE.mdCLAUDE.md
- AgentDB Advanced FeaturesSkill
- AgentDB Learning PluginsSkill
- AgentDB Memory PatternsSkill
- AgentDB Performance OptimizationSkill
- AgentDB Vector SearchSkill
- agent-evalSkill
- agentic-jujutsuSkill
- agile-product-ownerSkill
- ai-tool-pickerSkill
- algorithmic-artSkill
- api-connectorSkill
- api-design-patternsSkill
- architecture-diagram-creatorSkill
- article-extractorSkill
- aws-agentic-aiSkill
- aws-cdk-developmentSkill
- aws-cost-operationsSkill
- aws-serverless-edaSkill
- biogeobearsSkill
- brainstormingSkill
- brand-guidelinesSkill
- canvas-designSkill
- capa-officerSkill
- ceo-advisorSkill
- changelog-generatorSkill
- code-auditorSkill
- codebase-documenterSkill
- code-executionSkill
- code-explainerSkill
- code-refactorSkill
- code-reviewerSkill
- code-transferSkill
- content-creatorSkill
- content-research-writerSkill
- conversation-analyzerSkill
- csv-data-summarizerSkill
- cto-advisorSkill
- d3-vizSkill
- dashboard-creatorSkill
- defense-in-depthSkill
- deploy-itSkill
- developer-growth-analysisSkill
- dispatching-parallel-agentsSkill
- doc-coauthoringSkill
- docxSkill
- domain-name-brainstormerSkill
- dwa-councilSkill
- error-fixerSkill
- escalation-reasoningSkill
- evaluator-optimizerSkill
- executing-plansSkill
- extract-from-pdfsSkill
- fda-consultant-specialistSkill
- feature-planningSkill
- file-operationsSkill
- file-organizerSkill
- finishing-a-development-branchSkill
- firebase-buddySkill
- flowchart-creatorSkill
- The first 60 shown.
The file
We split this CLAUDE.md into the rules it gives an agent
9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 60
Tab-separated output: - No tables, no formatting, no decorations
- Distinctive: line 67
When extending, always ask: "Can this output be shorter?"
- Very specific: line 73
Create help function (see showUserHelp, line 64)
- Very specific: line 74
Create action handler (see listUsers, line 260)
- Very specific: line 75
Add switch case in main() (line 714)
- Distinctive: line 130
Use raw GraphQL for:
- Distinctive: line 174
No formal test suite. Manual testing only.
- Distinctive: line 178
No TypeScript: - Keep install fast
- Distinctive: line 179
Minimal deps: - Only @linear/sdk + dotenv
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Linear CLI - Development Guide
CLI replacement for Linear MCP. Designed for extending, modifying, and maintaining this tool.
Project Philosophy
- Token efficiency - PRIMARY GOAL: Minimize output tokens. Tab-separated format, no decorations, concise errors
- GitHub CLI pattern -
resource → actionstructure:./linear issue list(likegh) - No TypeScript - JavaScript only, reduces install overhead
- Unix-friendly - Easy to pipe, parse, compose with standard tools
- Self-contained - Auto-installs deps, clear error messages
Architecture
Structure
linear/
├── linear # Executable (calls scripts/linear-cli.js)
├── scripts/
│ └── linear-cli.js # Main implementation (~840 lines)
├── package.json # Deps: @linear/sdk, dotenv only
├── .env # Optional: LINEAR_API_KEY
└── SKILL.md # User-facing docsCommand Pattern
./linear <resource> <action> [arguments] [options]Resources: issue, user, team, project
Key Implementation Details
Argument parsing (linear-cli.js:12): Custom, no deps
--key valueor--flag(boolean)- Multi-word args auto-joined (lines 771, 801)
GraphQL usage: Direct queries for efficiency
listIssues(line 314): Preloads all relations in single query → fewer tokensgetIssue(lines 360, 404): Separate paths for identifier vs UUID- Avoids N+1 queries that bloat responses
Output format (default):
#<id> <field1> <field2>#prefix on IDs for parsing- Tab-separated, no pretty tables
--jsonfor raw JSON when needed
Error handling: Actionable messages, no stack traces
- API key error (line 235): Shows exact setup steps
- Exit 0 = success, 1 = error
Token Reduction Strategies
This is a key requirement. Every design decision optimizes for minimal output:
- Tab-separated output - No tables, no formatting, no decorations
#ID prefix - Visual separator without verbose labels like "ID: "- Single GraphQL queries - Preload relations, avoid multiple roundtrips
- Concise help - Examples only where essential
- No colors/ASCII art - Plain text only
- Terse errors - Short message + fix, nothing extra
When extending, always ask: "Can this output be shorter?"
Extending the CLI
Add New Resource
- Create help function (see
showUserHelp, line 64) - Create action handler (see
listUsers, line 260) - Add switch case in
main()(line 714)
Add New Action
Example: Adding issue archive:
// 1. Help function
function showIssueArchiveHelp() {
console.log(`Usage: linear-cli issue archive <id-or-key>
Archive an issue
Arguments:
id-or-key Issue identifier
Examples:
linear-cli issue archive ENG-123`)
}
// 2. Handler
async function archiveIssue(identifier, flags) {
const client = getLinearClient()
// Implementation...
}
// 3. Add to issue switch (line 749)
case "archive":
if (args.length === 0) {
console.error(`Error: Missing issue identifier
Run 'linear-cli issue archive --help' for usage`)
process.exit(1)
}
await archiveIssue(args[0], flags)
break
// 4. Update showIssueHelp() to list new actionGraphQL Pattern
const graphQLClient = client.client
const response = await graphQLClient.rawRequest(
`query name($var: Type!) {
field {
subfield
}
}`,
{ var: value }
)
const data = response.data.fieldUse raw GraphQL for:
- Preloading nested relations
- Complex filters
- Custom field selection to reduce payload
Finding Issues by Identifier
Pattern at lines 356-444:
if (identifier.includes("-")) {
// Parse as TEAM-NUMBER
const [teamKey, issueNumber] = identifier.toUpperCase().split("-")
// Query by team key + number
} else {
// Treat as UUID
// Query by ID
}Common Patterns
Multi-word arguments: Joined automatically
./linear issue create Fix the bug --team abc # Works without quotesStatus lookup: Case-insensitive comparison (lines 545, 604)
const state = states.nodes.find(s =>
s.name.toLowerCase() === flags.status.toLowerCase()
)Priority mapping (lines 460-466): 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
Testing Changes
cd linear/
npm install
./linear issue list --limit 3
./linear team listNo formal test suite. Manual testing only.
Key Constraints
- No TypeScript - Keep install fast
- Minimal deps - Only @linear/sdk + dotenv
- No CLI frameworks - Custom parsing keeps it lean
- No formatting libs - Raw tab-separated output
- Self-documenting errors - Include fix in error message
Quick Reference
# Commands follow: resource → action
./linear user list
./linear team list
./linear project list
./linear issue list [--team <id>] [--assignee <id>] [--status <name>]
./linear issue view <id>
./linear issue create <title> --team <id> [options]
./linear issue update <id> [options]
./linear issue comment <id> <text>
./linear issue delete <id>User-facing docs in SKILL.md and README.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

