npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@medtrics/linear

v2.0.0

Published

TypeScript CLI for Linear API

Downloads

47

Readme

Linear CLI

A command-line interface for Linear project management, built with TypeScript.

Features

  • 📋 List issues from your Linear project
  • ✨ Create new issues with labels, assignees, and states
  • ✏️ Update existing issues
  • 🚀 Move issues between workflow states
  • 🗄️ Archive issues (recoverable)
  • 🗑️ Delete issues permanently
  • ⚡ Fast and type-safe with TypeScript
  • 🎨 Beautiful table output

Installation

# Clone the repository
git clone https://github.com/medtrics/linear.git
cd linear

# Install dependencies (requires pnpm)
pnpm install

Prerequisites

  • Node.js 18+
  • pnpm (install with npm install -g pnpm)
  • Linear account with API access

Configuration

  1. Get your Linear API key from: https://linear.app/settings/api

  2. Create a .env.local file in the project root:

LINEAR_API_KEY=lin_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LINEAR_TEAM_NAME=Your Team Name
LINEAR_PROJECT_NAME=Your Project Name

Note: Team and project names must match exactly as shown in Linear.

Usage

List Issues

Display all issues from your configured project:

pnpm linear list-issues

Create Issue

Create a new issue with various options:

# Basic issue
pnpm linear create-issue --title "Fix login bug"

# Full example with all options
pnpm linear create-issue \
  --title "Implement user authentication" \
  --description "Add OAuth2 login support" \
  --state "In Progress" \
  --labels "Feature,Backend" \
  --assignee "[email protected]"

Update Issue

Modify an existing issue:

# Update title and state
pnpm linear update-issue --issue M2-123 --title "Updated title" --state "In Review"

# Unassign an issue
pnpm linear update-issue -i M2-123 --assignee none

# Replace all labels
pnpm linear update-issue -i M2-123 --labels "Bug,Critical"

Move Issue

Quickly change an issue's workflow state:

pnpm linear move-issue --issue M2-123 --state "In Progress"
pnpm linear move-issue -i M2-123 -s "Done"

Archive Issue

Soft delete an issue (can be restored in Linear):

# With confirmation prompt
pnpm linear archive-issue --issue M2-123

# Skip confirmation
pnpm linear archive-issue -i M2-123 --force

Delete Issue

⚠️ Permanently delete an issue (cannot be undone):

# With double confirmation
pnpm linear delete-issue --issue M2-123

# Skip confirmation (use with caution!)
pnpm linear delete-issue -i M2-123 --force

Help

Get detailed help for any command:

pnpm linear --help
pnpm linear create-issue --help

Command Options Reference

| Option | Commands | Description | | --------------- | -------------------- | ----------------------------------------------- | | --title | create, update | Issue title | | --description | create, update | Issue description | | --state | create, update, move | Workflow state (e.g., "Backlog", "In Progress") | | --labels | create, update | Comma-separated labels (replaces all) | | --assignee | create, update | Email address or "none" to unassign | | --force | archive, delete | Skip confirmation prompts |

Development

Requirements

  • TypeScript knowledge
  • Familiarity with Linear's workflow

Commands

# Run type checking and linting
pnpm check

# Format code
pnpm format

Project Structure

src/
├── commands/      # Individual command implementations
├── lib/           # Shared utilities and helpers
└── cli.ts         # Main entry point

Troubleshooting

Common Issues

"Team not found" error

  • Ensure LINEAR_TEAM_NAME matches exactly (case-sensitive)
  • Check you have access to the team in Linear

"Issue not found" error

  • Verify the issue ID format (e.g., M2-123)
  • Ensure the issue exists and you have access

"State not found" error

  • State names are case-insensitive but must match existing states
  • Use pnpm linear list-issues to see available states

Contributing

Contributions are welcome! Please:

  1. Follow the existing code style
  2. Run pnpm check before committing
  3. Use conventional commit messages
  4. Keep changes focused and simple

License

MIT © Medtrics