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 🙏

© 2026 – Pkg Stats / Ryan Hefner

projectsync-cli

v1.0.0

Published

<p align="center"> <img src=".github/assets/banner.svg" alt="projectsync-cli banner" width="800"/> </p>

Downloads

26

Readme

projectsync-cli

Unified project management CLI — sync issues across Linear, Jira, GitHub Issues, and Asana from your terminal.

Provider pattern with mock data fallback. No API keys required to try it out. --json flag on every command for CI/scripting.

Install

npm install -g projectsync-cli
# or run without installing:
npx projectsync-cli list

Architecture

graph LR
  A[terminal] --> B[projectsync CLI]
  B --> C[provider factory]
  C --> D[Linear adapter]
  C --> E[Jira adapter]
  C --> F[GitHub adapter]
  C --> CA[Asana adapter]
  C --> G[Mock adapter]
  D --> H[results]
  E --> H
  F --> H
  CA --> H
  G --> H
  H --> I[formatters]
  I --> J[human-readable output]
  H --> K[--json flag]
  K --> L[JSON output]

Commands

Free Commands (7)

projectsync list

List issues with optional filters.

projectsync list
projectsync list --project "Backend API" --status open
projectsync list --assignee alice --label bug --limit 10
projectsync list --json

Options:

  • --project <name> — filter by project name
  • --status <status> — filter by status (open, in-progress, done)
  • --assignee <user> — filter by assignee
  • --label <label> — filter by label
  • --limit <n> — max issues to return (default: 20)
  • --json — output as JSON

projectsync get <issue-id>

Get detailed information about an issue.

projectsync get ISS-1
projectsync get ISS-7 --json

Options:

  • --json — output as JSON

projectsync create

Create a new issue.

projectsync create --title "Fix login bug"
projectsync create --title "Dark mode" --description "Add dark mode toggle" --project "Frontend App" --labels feature --assignee bob --priority high
projectsync create --title "Critical fix" --json

Options:

  • --title <title> — issue title (required)
  • --description <text> — issue description
  • --project <name> — project name
  • --labels <labels> — comma-separated labels
  • --assignee <user> — assign to user
  • --priority <level> — priority (critical, high, medium, low)
  • --json — output as JSON

projectsync update <issue-id>

Update an existing issue.

projectsync update ISS-1 --status done
projectsync update ISS-2 --title "New title" --assignee charlie --priority low
projectsync update ISS-3 --labels bug,urgent --json

Options:

  • --title <title> — new title
  • --status <status> — new status
  • --assignee <user> — new assignee
  • --labels <labels> — comma-separated labels
  • --priority <level> — new priority
  • --description <text> — new description
  • --json — output as JSON

projectsync search <query>

Search issues by keyword.

projectsync search "login"
projectsync search "dark mode" --limit 5 --json

Options:

  • --limit <n> — max results (default: 20)
  • --json — output as JSON

projectsync projects

List all projects.

projectsync projects
projectsync projects --json

Options:

  • --json — output as JSON

projectsync labels

List all labels.

projectsync labels
projectsync labels --json

Options:

  • --json — output as JSON

Pro Commands (6)

Pro commands require a PRO_LICENSE environment variable. Get one at craftpipe.dev/projectsync-cli.

projectsync sprint list

List sprints.

projectsync sprint list
projectsync sprint list --project "Backend API" --json

projectsync sprint create

Create a new sprint.

projectsync sprint create --name "Sprint 4" --start 2026-02-01 --end 2026-02-14
projectsync sprint create --name "Sprint 5" --start 2026-02-15 --end 2026-02-28 --project "Mobile App" --json

projectsync sprint add <sprint-id>

Add issues to a sprint.

projectsync sprint add spr-2 --issues ISS-1,ISS-2,ISS-3

projectsync bulk-update

Bulk update multiple issues at once.

projectsync bulk-update --issues ISS-1,ISS-2,ISS-3 --status done
projectsync bulk-update --issues ISS-4,ISS-5 --assignee alice --priority high --json

projectsync analytics

Issue analytics and metrics.

projectsync analytics
projectsync analytics --project "Backend API" --days 14 --json

projectsync report

Cross-project report.

projectsync report
projectsync report --projects "Backend API,Frontend App" --json

projectsync grooming

Backlog grooming analysis — find stale, unassigned, and duplicate issues.

projectsync grooming
projectsync grooming --project "Backend API" --stale-days 14 --json

projectsync automation

Workflow automation with rules.

projectsync automation --rule "status:done->label:shipped"
projectsync automation --rule "priority:critical->assignee:alice" --json

Providers

Set PROJECTSYNC_PROVIDER to choose a provider, or let it auto-detect from available credentials.

| Provider | Env Vars Required | |----------|-------------------| | mock | None (default) | | linear | LINEAR_API_KEY | | jira | JIRA_URL, JIRA_EMAIL, JIRA_TOKEN | | github | GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPO | | asana | ASANA_ACCESS_TOKEN, ASANA_WORKSPACE_GID |

# Use mock data (no API keys needed)
PROJECTSYNC_PROVIDER=mock projectsync list

# Auto-detect from credentials
LINEAR_API_KEY=lin_xxx projectsync list

# Explicit provider
PROJECTSYNC_PROVIDER=jira projectsync list

JSON Output

Every command supports --json for CI/scripting:

projectsync list --json | jq '.[].title'
projectsync analytics --json > report.json

Exit Codes

| Code | Meaning | |------|---------| | 0 | Success | | 1 | Error (missing args, API failure, etc.) | | 2 | Threshold failure |

Pro License

6 commands require a pro license. Set the PRO_LICENSE environment variable:

export PRO_LICENSE=your-license-key
projectsync analytics --json

Get a license at craftpipe.dev/projectsync-cli.

Development

git clone https://github.com/craftpipe/projectsync-cli.git
cd projectsync-cli
npm install
npm run build
npm test

License

MIT