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

workctl

v0.1.3

Published

Unified CLI for task management across providers (ClickUp, Jira, etc.)

Downloads

34

Readme

workctl

Unified CLI for task management across providers. One interface, multiple backends.

Currently supports ClickUp with Jira and others on the roadmap.

Install

npm install -g workctl

Requires Node.js >= 20.

Setup

Interactive:

workctl config init

Non-interactive (for CI/agents):

workctl config init --api-key pk_xxx --team-id 12345 --format json

Configuration is stored in ~/.config/workctl/config.json. Environment variables WORKCTL_API_KEY and WORKCTL_TEAM_ID override file values.

Commands

| Command | Description | |---------|-------------| | task search | Search tasks across the entire workspace | | task list --list <ID> | List tasks from a specific list | | task view <ID> | View task details | | task create <NAME> --list <ID> | Create a new task | | task update <ID> | Update a task (status, priority, name, description) | | task delete <ID> | Delete a task | | task move <ID> --to-list <ID> | Move a task to a different list | | task bulk | Bulk update tasks matching search filters | | config init | Configure API keys and provider | | introspect | Show the full API contract (for agents/tooling) |

Task IDs

All commands accept both internal IDs (abc123) and custom IDs (DEV-123). Custom IDs are auto-detected.

Search with date ranges

workctl task search --created-after "2025-01-01" --updated-before "2025-03-31" --format json

Bulk updates

workctl task bulk --filter-status "in review" --set-status "done" --format json

Move between lists

workctl task move DEV-123 --to-list list456 --format json

Markdown descriptions

Descriptions support full Markdown. Pass inline or from a file:

workctl task create "Bug report" --list abc123 --description "## Steps to reproduce
- Open login page
- Enter credentials
- Click submit

**Expected:** Dashboard loads
**Actual:** 500 error" --format json

Or load from a file:

workctl task create "Feature spec" --list abc123 --description-file ./spec.md
workctl task update DEV-123 --description-file ./updated-spec.md

In task view (human mode), Markdown is rendered with formatting for the terminal.

Agent / Programmatic Use

All commands support --format json for structured output:

  • stdout: JSON result data
  • stderr: JSON error objects
  • Exit codes: 0 success, 2 config, 3 auth, 4 provider, 5 rate limit

Get the full API contract:

workctl introspect --format json

Generate a .cursor/rules/workctl.mdc file for LLM workspace context:

workctl introspect --emit-rules

Architecture

src/
  commands/         CLI commands (oclif)
  domain/           Models and ports (TaskProvider interface)
  providers/        Provider implementations (ClickUp, ...)
  shared/           Base command, errors, contract, formatters
  lib/              HTTP client, config service, logger

Hexagonal architecture: commands depend on ports (interfaces), not implementations. Adding a new provider means implementing TaskProvider and registering it in the factory.

Development

git clone https://github.com/itboxful/workctl.git
cd workctl
npm install
npm run build
./bin/dev.js task search

Run tests:

npm test

License

MIT