Linear CLI Skill
Manage Linear issues through a lightweight CLI so Claude can list, create, update, and delete issues on your behalf.
Source shows minimal dependencies (@linear/sdk, dotenv), API key supplied via env var or local .env; no covert exfiltration or malicious behavior found; delete is soft delete and recoverable. Deductions: write operations (delete/update) have no user-confirmation mechanism, plaintext .env key storage lacks security warnings, no rollback guidance, publisher unverified.
Clear inconsistencies: SKILL.md documents `--description` while the CLI actually uses `--body`/`--body-file`; SKILL.md claims multi-word args auto-combine without quotes, unsupported by the code. No tests or CI coverage. Error messages for missing key/labels/date are decent, but edge paths are not reproducible statically.
Trigger conditions (any Linear/issue request) and scenarios are clearly declared, with options and JSON output documented. Deductions: capability boundaries (permissions, batch ops) unstated; core function depends entirely on the overseas Linear cloud service with no mainland-China reachability note and no Chinese support.
Docs are well structured; README and layered help are thorough; version 0.1.0 present. Deductions: unknown license metadata (dependencies MIT/BSD but repo declares none), no changelog, SKILL.md drifts from actual CLI parameters, maintenance ownership and update path unclear.
gh-style CLI covering CRUD plus comments, rich README examples, plausible marginal value over raw API calls. However, static review cannot verify outputs, and the SKILL.md/code parameter mismatch (--description vs --body) could cause first-use failure.
Primary material (source, lockfile with integrity hashes) is auditable, but there are no committed tests or CI execution evidence; behavior claims remain inferential and thin in coverage.
- SKILL.md documents `--description` but the CLI actually uses `--body`/`--body-file`; trust the --help output over SKILL.md.
- Write operations (delete/update) perform no confirmation; verify target issues manually before automation.
- API key is stored in plaintext in linear/.env; secure file permissions and keep it out of version control.
- Nothing was executed; validate in a controlled Linear workspace before production use.
- Core function depends on the overseas Linear cloud service; mainland-China reachability is undeclared.
What does this skill do, and when should you use it?
This is a Claude skill bundling a lightweight JavaScript CLI for Linear's issue tracking system. Commands follow GitHub CLI conventions (resource → action), covering users, teams, projects, and full issue lifecycle: view, create, comment, update, and soft delete. Dependencies are minimal (only the Linear SDK and dotenv) and install automatically on first run. A LINEAR_API_KEY is required to connect to Linear.
Runs the ./linear executable, which calls the Linear API: issue list filters by team, assignee, status, and limit; issue view prints full issue details including comments; issue create supports team, description, assignee, priority, labels, project, parent issue, estimate, and due date; issue update changes multiple fields at once; issue delete performs a recoverable soft delete; issue comment adds comments. Output is tab-separated text by default, JSON with --, and every command supports --help.
- A developer using Claude Code who wants to create or modify Linear issues via natural language without switching windows
- A team lead quickly listing all issues in a given status (e.g., In Progress) for a team
- An individual assigning tasks to themselves (--assignee @me) or bulk-updating priorities
- An engineering manager piping issue lists through cut/awk/grep for reports or board stats
- Users writing long descriptions into new issues from a markdown file or stdin
What are this skill's strengths and limitations?
- Minimal dependencies (Linear SDK and dotenv only); auto-installs on first run
- GitHub CLI-style conventions keep the learning curve low
- Covers the full issue lifecycle: view, create, comment, update, soft delete
- Advanced features: labels, sub-issues, projects, estimates, due dates, @me shortcut, --body-file with stdin support
- Unix-friendly default output plus -- for machine parsing
- No license declared in the repo, so commercial use requires caution
- Labels must already exist in the team or the CLI errors (it lists available labels)
- Status names are case-sensitive and easy to get wrong
- --team is required for issue creation, forcing a UUID lookup first
- README mentions no test suite and no verified Windows support
How do you install this skill?
Install via the Claude Code plugin marketplace:
claude plugin marketplace add Valian/linear-cli-skill
claude plugin install linear
Or manually: clone the repo, cd linear/ and run npm install (dependencies also auto-install on first run). Create a Personal API Key at https://linear.app/settings/api, then provide it via export LINEAR_API_KEY="..." or a linear/.env file. Note: license is unknown.
How do you use this skill?
Prompt Claude with e.g. "Create an issue in the ENG team to fix the login bug, high priority" or "List all issues assigned to me that are In Progress." Or run the CLI directly:
./linear team list # get team ID
./linear issue list --team <id> --limit 10
./linear issue view ENG-123
./linear issue create "Title" --team <id> --priority 2
./linear issue update ENG-123 --status "Done" --assignee @me
Caveats: issue keys are case-insensitive but status names are case-sensitive; user/team IDs are UUIDs, obtain them via list commands first.
How does this skill compare with similar options?
The README explicitly states the CLI follows GitHub CLI (gh) resource → action conventions for consistency; versus hand-writing Linear API scripts, its value is bundled auth handling and structured output formats.